1.驅(qū)動編程注意事項

首先要編寫驅(qū)動文件,在編寫Makefile文件 ,通過make生成 .ko文件,最后加載到系統(tǒng)中去,加載命令為insmod hello.ko ?,查看命令 lsmode ,卸載命令 rmmod hello

編寫驅(qū)動文件時注意:

1. 必須遵循gpl協(xié)議,否則內(nèi)核會不識別,MODULE_LICENSE("Dual BSD/GPL");具體可以去百度,這個是必須要有的,一般寫在末尾。MODULE_AUTHOR("iTOPEET_dz");聲明作者,可寫可不寫。當(dāng)然還有其他,按你自己需要去加

2. module_init(hello_init);

module_exit(hello_exit);聲明開始和結(jié)束函數(shù)。

編寫Makefile文件時需要注意:

第一個紅框,必須和你的驅(qū)動模塊名字相同。

第二個紅框表明你要用的內(nèi)核和路徑。

3.簡單示例

#!/bin/bash

#通知編譯器我們要編譯模塊的哪些源碼

#這里是編譯itop4412_hello.c這個文件編譯成中間文件mini_linux_module.o

obj-m += mini_linux_module.o

#源碼目錄變量,這里用戶需要根據(jù)實際情況選擇路徑

#作者是將Linux的源碼拷貝到目錄/home/topeet/android4.0下并解壓的

KDIR := /home/topeet/android/iTop4412_Kernel_3.0

#當(dāng)前目錄變量

PWD ?= $(shell pwd)

#make命名默認(rèn)尋找第一個目標(biāo)

#make -C就是指調(diào)用執(zhí)行的路徑

#$(KDIR)Linux源碼目錄,作者這里指的是/home/topeet/android4.0/iTop4412_Kernel_3.0

#$(PWD)當(dāng)前目錄變量

#modules要執(zhí)行的操作

all:

? ? ? ? make -C $(KDIR) M=$(PWD) modules

#make clean執(zhí)行的操作是刪除后綴為o的文件

clean:

? ? ? ? rm -rf *.o

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容