趙老師,
華清遠見嵌入式學院
講師。按鍵驅動程式的測試程式所下所示。在測試程式中,首先開啟按鍵裝置檔案和gpio裝置(包括4個led和蜂鳴器)檔案,接下來,根據按鍵的輸入值(按鍵id)的二進位制形式,led d9~d12發亮(例如,按下11號按鍵,則d9、d10和d12會發亮),而蜂鳴器當每次按鍵時發出聲響。
/* butt_test.c */
#include
#include
#include
#include
#include
#include
#include
#include "butt_drv.h"
#include "gpio_drv.h"
main()
gpios_fd =open(gpio_device_filename, o_rdwr); /* 開啟gpio裝置 */
if (gpios_fd == -1)
ioctl(butt_fd, 0); /* 清空鍵盤緩衝區, 後面引數沒有意義 */
printf("press no.16 key to exit/n");
doprintf("key value = %d/n", key);
for (i = 0; i < led_num; i++)
}ioctl(gpios_fd, beep_swt, beep_swt_on); /* 發聲*/
sleep(1);
for (i = 0; i < led_num; i++)
ioctl(gpios_fd, beep_swt, beep_swt_off);
} while(key != 16); /* 按16號鍵則退出 */
close(gpios_fd);
close(butt_fd);
return 0;
}首先編譯和載入按鍵驅動程式,而且要建立裝置檔案節點。
$make clean;make/* 驅動程式的編譯*/
$insmod butt_dev.ko/* 載入buttons裝置驅動 */
$cat /proc/devices/* 通過這個命令可以查到buttons裝置的主裝置號 */
$mknod /dev/buttons c 252 0/* 假設主裝置號為252, 建立裝置檔案節點*/
接下來,編譯和載入gpio驅動程式,而且要建立裝置檔案節點。
$make clean;make/* 驅動程式的編譯*/
$insmod gpio_drv.ko/* 載入gpio驅動 */
$cat /proc/devices/* 通過這個命令可以查到gpio裝置的主裝置號 */
$mknod /dev/gpio c 251 0/* 假設主裝置號為251, 建立裝置檔案節點*/
然後編譯並執行驅動測試程式。
$arm-linux-gcc –o butt_test butt_test.c
$./butt_test
字元裝置驅動之按鍵掃瞄 FS2410
一 開發環境 1 硬體平台 fs2410 2 主機 ubuntu 10.10 3 核心版本 linux 2.6.35 4 交叉編譯工具鏈 arm none linux gnueabi 二 詳細 button scan.c include include include include include...
fs4412開發板led驅動
閱讀實驗手冊第16章 led 驅動開發實驗 p275下 fs4412 led.c,fs4412 led.h,test.c 檔案 1.系統呼叫函式 test.c的main函式中,while 1 函式。函式如下 函式分析 1 函式引數中的file指標對應於應用程式傳遞的檔案描述符fd,這和傳遞open方...
飛凌ok6410開發板的按鍵驅動改程式
因為飛凌開發板自己在核心裡面整合了矩陣鍵盤的驅動,所以要用按鍵做實驗必須先禁用之前的驅動模組,否則的話無法註冊中斷,去檢視free irq的 在kernel irq manage.c中 可以發現,出現這個trying to free already free irq 101 告警的原因是 存在該中斷...