新聞中心

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

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

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

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

填寫(xiě)圖片摘要(選填)

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

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

解決:?

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

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

填寫(xiě)圖片摘要(選填)

進(jìn)入device_add:?

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

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

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




評(píng)論


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

關(guān)閉