輸入子系統簡單(按鍵)測試
//input_key.c
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include /* for -ebusy */
8 #include /* for request_region */
9 #include /* for loops_per_jiffy */
10 #include 11 #include /* for wait_queue */
12 #include /* for __init, module_ */
13 #include /* for pollin, etc. */
14 #include 15 #include 16 #include 17
18 #include 19 #include 20 #include 21 //#include 22 #include 23 #include 24
25 #include /* for inb_p, outb_p, inb, outb, etc. */
26 #include /* for get_user, etc. */
27 #include 28 #include 29 #include 30
31 struct pin_desc
37 38 static struct pin_desc buttons_pin[4] = ,
40 ,
41 ,
42 ,
43 };
44 45 static volatile char key_values = ;
46 47 //所有的輸入事件裝置 核心都用這個統一個資料結構來描述
48 static struct input_dev *buttons_input;
49 50 static irqreturn_t buttons_interrupt(int irq, void *dev_id)
51 76
77 static int buttons_init(void)
78 113
114 // 2. 把k10的引腳配置為中斷引腳並且設定觸發方式 註冊中斷
115 for (i = 0; i < sizeof(buttons_pin)/sizeof(buttons_pin[0]); i++)
118 return 0;
119 }
120
121
122 static void buttons_exit(void)
123
129
130 input_unregister_device(buttons_input);
131 input_free_device(buttons_input);
132
133 }
134
135 module_init(buttons_init);
136 module_exit(buttons_exit);
137
138 module_license("gpl");
測試應用程式:
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12
13 int main(void)
14 25
26 for (;;)
37 close(buttons_fd);
38 return 0;
39 }
ubuntu的抓圖功能用不了,只能複製終端的列印上來:
輸入子系統測試
下面對測試方法進行介紹 1.使用hexdump dev event1 其中的event1是本機的,這個根據不同的驅動而定,你所寫的可能不是1,而是2,3,4等 hexdump的意思是十六進製制顯示 裝置 dev event1,他就相當於是實現了 open dev event1 read write ...
linux輸入子系統之按鍵驅動
上一節中,我們講解了linux input子系統的框架,到核心原始碼裡詳細分析了輸入子系統的分離分層的框架等。這一節,我們來以輸入子系統的框架來寫乙個按鍵驅動。問 怎麼寫符合輸入子系統框架的驅動程式?答 1.分配乙個input dev結構體 2.設定 3.註冊 4.硬體相關的 比如在中斷服務程式裡上...
按鍵驅動之使用輸入子系統架構
有關輸入子系統我們可以參考 gpio keys.c這個 注 這只是乙個例子,沒有實際的作用 static struct input dev button dev 1.分配乙個input device結構體 參考gpio keys.c這個例子,可以知道其分配函式是input allocate devi...