天天看點

迅為i.MX6ULL終結者Linux中斷實驗運作測試

文章目錄

1 編譯驅動程式

2 編譯應用測試程式

3 運作測試

1 編譯驅動程式

和前面章節中驅動測試程式一樣需要一個Makefile檔案,隻是将obj-m的值改為key_irq.o,Makefile檔案内容如下:

迅為i.MX6ULL終結者Linux中斷實驗運作測試

首先我們在終端輸入兩個指令(設定兩個環境變量):

迅為i.MX6ULL終結者Linux中斷實驗運作測試

然後執行“make”指令編譯子產品,編譯完成生成key_irq.ko子產品檔案。

2 編譯應用測試程式

輸入如下指令編譯應用測試程式:

arm-linux-gnueabihf-gcc -o key_irq_test key_irq_test.c

編譯完成後,會生成key_irq_test可執行檔案。

3 運作測試

啟動開發闆,将編譯好的key_irq.ko子產品檔案和key_irq_test應用測試程式拷貝到/lib/modules/4.1.15目錄下(檢查開發闆根檔案系統中有沒有“/lib/modules/4.1.15”這個目錄,如果沒有的話需要自行建立一下。開發闆中使用的是CD光牒資料裡面提供的busybox檔案系統,CD光牒資料的“i.MX6UL終結者CD光牒資料\08_開發闆系統鏡像\03_檔案系統鏡像\01_Busybox檔案系統”目錄下)。輸入下面指令加載子產品:

迅為i.MX6ULL終結者Linux中斷實驗運作測試

驅動加載成功以後可以通過檢視/proc/interrupts 檔案來檢查一下對應的中斷有沒有被注冊上,輸入如下指令:

cat /proc/interrupts

結果如圖 3.1所示:

迅為i.MX6ULL終結者Linux中斷實驗運作測試

可以看到KEY0 中斷已經存在了,觸發方式為跳邊沿(Edge),中斷号為 49。

然後使用應用測試程式測試一下,使用下面的指令:

./key_irq_test /dev/imx6uirq &

“&”表示背景運作。然後按下開發闆上的KEY0按鍵,終端會有資訊列印,如圖 3.2所示:

迅為i.MX6ULL終結者Linux中斷實驗運作測試

按鍵值擷取成功,并且不會有按鍵抖動導緻的誤判發生,說明按鍵消抖工作正常。

在解除安裝驅動之前需要先關閉key_irq_test應用程式,使用“ps”指令檢視key_irq_test程序的PID号,然後使用“kill xxx”殺死key_irq_test程序。

解除安裝驅動子產品檔案指令:

rmmod key_irq

繼續閱讀