【Rayeager PX2分享】最簡單helloworld驅動編寫

論壇裏應該有一部分人是想學驅動,殊不知道該怎麼入門吧,在這裏我教你們寫一個helloworld的簡單隨linux內核加載的驅動。php

1.首先在/kernel/drivers下建一個新的文件夾hello,在文件夾裏添加四個文件分別是hello.c,hello.hKconfig,Makefile,linux

hello.c文件裏也有註釋,這個文件主要就是爲了註冊和初始化設備文件以及定義驅動接口,主要是用啦file_operations這個結構體,你們想了解驅動能夠先了解這個,這個程序裏的註釋能夠幫助你們理解下一個簡單驅動的結構工具

2.修改Kconfig,內容以下測試

  

3.修改Makefile,內容以下ui

  

4.返回dirvers目錄下修改Kconfig,在最後加一句:source"drivers/hello/Kconfig"spa

5.修改Makefle文件,在裏面添加一句   obj-$(CONFIG_HELLO_TEST)       += hello/接口

6.返回kernel目錄下,執行makemenuconfig 在/driver路徑下找到設備,選定(注:這裏設備的名字和咱們以前寫的Kconfig有必定的關係,修改Kconfig的相應的參數,能夠改變menu下的名字)ip

,而後返回get

makekernel.imgspark

7,而後建立測試文件,在driver目錄下建立目錄hellotest,加入兩個文件test和Android.mk

而後mm,在sdk/out/target/product/rkpx2/system/bin目錄下找到測試文件,(如mm沒法執行,可在根目錄下執行下sourcebuild/envsetup.sh)

8.最後測試下結果,在window目錄下,用adb工具把測試文件push進板中,而後在文件所在的位置給文件賦上權限,執行chmod777  test

執行./testhello 或./testgoodbye可看到結果以下,即驅動可成功加載

 


 hellotest.zip 

 hello.zip

相關文章
相關標籤/搜索