iTOP-i.MX6Q開(kāi)發(fā)板在內(nèi)核源碼中以modules的方式編譯驅(qū)動(dòng)
本文檔主要講解在iTOP-i.MX6Q開(kāi)發(fā)板,設(shè)備樹(shù)內(nèi)核中以 modules 方式編譯驅(qū)動(dòng)。
這里以 imx6q(imx6d 和 plus 的類似)的 qt 系統(tǒng)內(nèi)核編譯為例,Ubuntu16 的內(nèi)核和
qt 通用,android6.0 的配置和 qt 的類似。
文檔先介紹和驅(qū)動(dòng)編譯相關(guān)的幾個(gè)文件,Kconfig、Makefile。另外.config 文件和
menuconfig 文件,可以參考“iTOP-iMX6-設(shè)備樹(shù)內(nèi)核-缺省文件文件的配置_V1.X”文檔和
“iTOP-iMX6-設(shè)備樹(shù)內(nèi)核-menuconfig 的使用_V1.X”文檔。
這里以 led 驅(qū)動(dòng)為例,驅(qū)動(dòng)源碼為“drivers/char/”下的“itop6x_led.c”文件,如下圖
所示。

打開(kāi)“drivers/char/”下的 Makefile 文件,如下圖所示,可以看到編譯 led 的宏為
“CONFIG_LEDS_CTL”。

上面這個(gè)文件不用修改,打開(kāi)“drivers/char/”下的“Kconfig”文件,搜索
“LEDS_CTL”,如下圖所示,將 bool 修改為 tristate。

修改保存。
重新配置缺省文件,參考“iTOP-iMX6-設(shè)備樹(shù)內(nèi)核-缺省文件文件的配置_V1.X”配置缺
省文件,重新編譯內(nèi)核,如下圖所示,可以看到有“itop6x_led.ko”文件生成。

將重新生成的內(nèi)核燒寫(xiě)到開(kāi)發(fā)板(注意不能燒寫(xiě)光盤(pán)中自帶的鏡像,那個(gè)鏡像里已經(jīng)添加
了 led 驅(qū)動(dòng)),新的鏡像燒寫(xiě)之后,在控制臺(tái)查詢“/dev/led*”,應(yīng)該沒(méi)有這個(gè)設(shè)備節(jié)點(diǎn)。
將“itop6x_led.ko”拷貝到開(kāi)發(fā)板,如下圖所示,使用命令“insmod itop6x_led.ko”
加載驅(qū)動(dòng)。

使用命令“l(fā)s /dev/led8”,可以看到設(shè)備節(jié)點(diǎn)生成,如下圖所示。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
51單片機(jī)相關(guān)文章:51單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)教程
c++相關(guān)文章:c++教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
波段開(kāi)關(guān)相關(guān)文章:波段開(kāi)關(guān)原理
藍(lán)牙技術(shù)相關(guān)文章:藍(lán)牙技術(shù)原理 矢量控制相關(guān)文章:矢量控制原理