input子系統 linux驅動學習筆記(一)

2021-06-20 08:01:52 字數 1565 閱讀 2210

我們下面通過自己編譯個最簡單的按鍵輸入程式,來學習和理解input子系統。

程式的功能就是乙個單獨的按鍵,按下後產生中斷並執行相應的程式,**如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include//s3c2410_gpf0_eint

#include

module_license("gpl");

module_author("daisy");

module_description("this is my input button driver for daisy");

#define device_name  "button_daisy"

static struct input_dev *button_dev;

static irqreturn_t button_interrupt(int irq, void* dummy)

static int __init input_button_init(void)

button_dev = input_allocate_device();

if(!button_dev)

button_dev->evbit[0] = bit(ev_key);

button_dev->keybit[bit_word(btn_0)] = bit(btn_0);

err = input_register_device(button_dev);

if (err)

err_free_irq:

free_irq(irq_eint0, button_interrupt);

err_free_dev:

input_free_device(button_dev);

return err;

}static void input_button_exit(void)

module_init(input_button_init);

module_exit(input_button_exit);

說明:2、對於input子系統的使用,首先就是

button_dev = input_allocate_device();

接著設定一些button_dev的引數,我們先來看struct input_dev這個結構體:

struct input_dev cdev;

struct list_head

h_list;

struct list_head

node;

};初始化的最後一步就是input_register_device(button_dev)把自己的input裝置註冊進input子系統。

下面的文章將會繼續介紹input子系統的其他部分,從而對input子系統的整體有乙個全面的認識。

linux驅動 Input 輸入子系統

1,哪些驅動裝置使用驅動子系統更方便簡單?像按鍵,觸控螢幕,滑鼠等輸入裝置我們可以採用input介面函式來實現裝置驅動,那麼採用input輸入子系統有什麼優點?其實一句話,採用input輸入子系統可以使驅動程式變得異常簡單。2,input輸入子系統的體系結構 主要包括三大體系結構 裝置驅動層driv...

Linux裝置驅動之 input子系統

什麼是input input子系統處理輸入事務,任何輸入裝置的驅動程式都可以通過input輸入子系統提供的介面註冊到核心,利用子系統提供的功能來與使用者空間互動。輸入裝置一般包括鍵盤,滑鼠,觸控螢幕等,在核心中都是以輸入裝置出現的。下面分析input輸入子系統的結構,以及功能實現。linux中inp...

Linux裝置驅動 input輸入子系統

不同的輸入裝置 如按鍵 鍵盤 觸控螢幕 滑鼠等 都有它們的差異性 如中斷 讀鍵值 座標值是裝置相關的 及共同性 如輸入事件的緩衝區管理以及字元裝置驅動的file operations介面則對輸入裝置是通用的 因此在linux核心中設計了input輸入子系統來完成輸入裝置之間的共性工作,而我們只需要使...