新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 總線驅(qū)動加載設(shè)備錯誤解決

總線驅(qū)動加載設(shè)備錯誤解決

作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
今天在編寫總線驅(qū)動設(shè)備的時候,當(dāng)加載完總線和驅(qū)動,再加載設(shè)備的時候出現(xiàn)如下錯誤:?

本文引用地址:http://www.butianyuan.cn/article/201612/330457.htm

填寫圖片摘要(選填)

從顯示的錯誤回執(zhí)表,我們你可以看出,是我們的match函數(shù)里面的strncmp函數(shù)錯了問題,訪問了空指針。?源代碼如下:?

到底哪里出了問題呢??我們明明訪問的dev->init_name,和drv->name,難道他們是空指針??

解決:?

我們找到內(nèi)核代碼:??

1、先從dev->init_name出發(fā)找到device的注冊函數(shù):?

填寫圖片摘要(選填)

進(jìn)入device_add:?

我們看到其中一段代碼,如果dev->init_name不為空則dev_set_name(dev, "%s", dev->init_name);最后將dev->init_name置為空,問題找到了!!?

2、怎么修改呢?設(shè)備文件名到底放到哪里了呢?

實際上,放到了dev->kobj.name里面。




評論


技術(shù)專區(qū)

關(guān)閉