日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 设备驱动 百度,Linux设备驱动之input子系统

發布時間:2025/4/5 linux 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 设备驱动 百度,Linux设备驱动之input子系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

作者:武漢華嵌嵌入式培訓中心 講師 李家凱

對于輸入類設備如鍵盤、鼠標、觸摸屏之類的Linux驅動,內核提供input子系統,使得這類設備的處理變得非常便捷。總體上來講,input子系統由三部分組成: 事件驅動input核心設備驅動。

其中事件驅動負責與用戶程序打交道,諸如設備節點/dev之類的,都由他負責,我們在寫驅動時就不用實現這個了;設備驅動負責與硬件設備打交道,這里的交互很簡單,只需要讀取相關硬件的數據,然后拋給input核心就可以了;

舉個例子,以按鍵key為例,定義了設備設備號、按鍵值,配置管腳和中斷方式,然后申請中斷。在中斷服務函數中,讀取對應管腳值,用input_report函數發送給input核心,并用input_sync通知發送結束即可。另外,在模塊初始化時,定義一個input_dev的結構體,這個input_dev是input子系統設備驅動端的核心數據結構,由于輸入設備多種多樣,就是通過這個結構體告訴核心你的輸入設備類型。

其中的兩個重要成員,這些宏具體在linux/input.h中定義。

一個是,evbit,代表事件類型的指示位,常用的如

EV_SYN 0x00 同步事件

EV_KEY 0x01 按鍵事件

EV_REL 0x02 相對坐標

EV_ABS 0x03 絕對坐標

EV_MSC 0x04 其它

EV_LED 0x11 LED

EV_SND 0x12 聲音

EV_REP 0x14 Repeat

EV_FF 0x15 力反饋

EV_PWR 電源

EV_FF_STATUS 狀態

另一個是keybit,代表鍵值代碼

其他的還有

relbit 相對定位

absbit 絕對定位

mscbit Mouse Systems Corporation,大意是一些廠商使用了5字節的串口鼠標協議,但微軟使用了一種三字節協議,于是廠商造串口鼠標時,讓設備有兩種工作模式,一種是MSC模式,一種是微軟的模式

ledbit 鍵盤指示燈事件的指示位

sndbit 鍵盤發出聲音的指示位

ffbit force feedback,強制反饋設備

swbit switch,設備切換時產生的事件

下面就分別給出驅動代碼和測試程序,以供參考。

更多:www.embedhq.org/html/jsbw/2013/1121/3569.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的linux 设备驱动 百度,Linux设备驱动之input子系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。