文章目錄 1 編譯驅(qū)動程序 2 編譯應(yīng)用測試程序 3 運(yùn)行測試 1 編譯驅(qū)動程序 和前面章節(jié)中驅(qū)動測試程序一樣需要一個Makefile文件,只是將obj-m的值改為key_irq.o,Makefile文件內(nèi)容如下:
首先我們在終端輸入兩個命令(設(shè)置兩個環(huán)境變量):
然后執(zhí)行“make”命令編譯模塊,編譯完成生成key_irq.ko模塊文件。 2 編譯應(yīng)用測試程序 輸入如下命令編譯應(yīng)用測試程序: arm-linux-gnueabihf-gcc -o key_irq_test key_irq_test.c 編譯完成后,會生成key_irq_test可執(zhí)行文件。 3 運(yùn)行測試 啟動開發(fā)板,將編譯好的key_irq.ko模塊文件和key_irq_test應(yīng)用測試程序拷貝到/lib/modules/4.1.15目錄下(檢查開發(fā)板根文件系統(tǒng)中有沒有“/lib/modules/4.1.15”這個目錄,如果沒有的話需要自行創(chuàng)建一下。開發(fā)板中使用的是光盤資料里面提供的busybox文件系統(tǒng),光盤資料的“i.MX6UL終結(jié)者光盤資料\08_開發(fā)板系統(tǒng)鏡像\03_文件系統(tǒng)鏡像\01_Busybox文件系統(tǒng)”目錄下)。輸入下面命令加載模塊:
驅(qū)動加載成功以后可以通過查看/proc/interrupts 文件來檢查一下對應(yīng)的中斷有沒有被注冊上,輸入如下命令:
可以看到KEY0 中斷已經(jīng)存在了,觸發(fā)方式為跳邊沿(Edge),中斷號為 49。
按鍵值獲取成功,并且不會有按鍵抖動導(dǎo)致的誤判發(fā)生,說明按鍵消抖工作正常。 在卸載驅(qū)動之前需要先關(guān)閉key_irq_test應(yīng)用程序,使用“ps”命令查看key_irq_test進(jìn)程的PID號,然后使用“kill xxx”殺死key_irq_test進(jìn)程。 卸載驅(qū)動模塊文件命令: rmmod key_irq |