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

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

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

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

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

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