国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

電子工程網

標題: i.MX8MP開發板移植驅動全過程 [打印本頁]

作者: 繁花之語    時間: 2022-11-4 11:44
標題: i.MX8MP開發板移植驅動全過程

各位工程師用戶在對飛凌嵌入式OKMX8MP-C開發板進行開發的過程中,可能會遇到需要移植驅動的情況。為避免用戶因不了解移植驅動的過程而影響開發進度,今天小編會以寫一個hello驅動為例,演示移植驅動的過程,有需求的小伙伴可參考此方法自行操作。



01進入源碼的drivers目錄下,并創建一個名為hello的目錄:


02進入hello目錄,創建hello.c:


在hello.c中寫入如下內容:


程序含義:insmod驅動掛載時打印Hello world,rmmod驅動卸載時打印 Goodbye world


03​​​​​​​在該文件夾下創建Kconfig,Makefile兩個文件。

forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$ vi  Kconfig

在Kconfig文件中寫入如下內容:


表示如果使能了CONFIG_HAVE_HELLO,在內核裁剪配置文件中,將顯示hellodrivers菜單,默認編譯進內核:

y:編譯進內核

m:編譯為模塊.ko文件

n:表示不編譯,未使能。

forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers/hello$ vi  Kconfig

在Makefile文件中寫入如下內容:

obj-$(CONFIG_HAVE_HELLO)        +=      hello.o

注意:

宏定義的名字要和Kconfig中的一樣。后面添加需要編譯的文件名,因為內核會自動添加前綴CONFIG,所以我們這里也要在名字前面添加CONFIG_,表示CONFIG_HAVE_HELLO使能時,編譯規則指定的文件為hello.c。


給添加的這三個文件權限:​​​​​​​


04編輯drivers頂層的Kconfig,Makefile文件。​​​​​​​


在Kconfig文件中寫入如下內容:​​​​​​​


如此一來,配置系統就會按照這個配置去解析hello文件夾下的Kconfig。


編輯Makefile:

forlinx@ubuntu:~/work/OK8MP-linux-sdk/OK8MP-linux-kernel/drivers$ vi Makefile

在Makefile文件中寫入如下內容:


這句話的作用是當CONFIG_HAVE_HELLO使能后,在哪里去找源文件。再結合hello文件下模塊Makefile就形成了層次式Makefile。注意不要少了/,這里添加自定義文件夾的名字,表示把這個文件夾編譯進內核。


5開始編譯:



編譯完成后,即可在OK8MP-linux-kernel/drivers/hello目錄下看到編譯生成的驅動了:​​​​​​​


6



將hello.ko使用U盤或TF卡拷貝到開發板里進行驗證:​​​​​​​


由上述測試可看,hello.ko驅動可正常運行。


以上就是小編為大家演示的自行書寫并添加一個驅動的過程,若您想要移植某一個模塊,可向模塊廠家索要現成的驅動.c文件,之后再按照上述步驟配置Makefile和Kconfig即可。







歡迎光臨 電子工程網 (http://www.4huy16.com/) Powered by Discuz! X3.4