Linux input子系統(tǒng)框架--Apple的學(xué)習(xí)筆記

按鍵中斷解決irq_of_parse_and_map返回0的問題--Apple的學(xué)習(xí)筆記我為了復(fù)習(xí)相關(guān)函數(shù)和io模型,所以自己寫按鍵中斷员魏,其實(shí)linux中有input子系統(tǒng)就像pinctrl子系統(tǒng)一樣,已經(jīng)抽象的寫好了按鍵驅(qū)動。因?yàn)橐话愕尿?qū)動就是要實(shí)現(xiàn)open,read芹敌,write的io模型痊远。所以linux內(nèi)核都幫我們寫好了。我們可以復(fù)用氏捞。到document的input文件夾中看相關(guān)幫助資料碧聪。網(wǎng)上資料也一大堆。

A.今天的學(xué)習(xí)目標(biāo):

  1. 看內(nèi)核代碼液茎,熟悉input子系統(tǒng)框逞姿。
  2. 會參考已經(jīng)有的input子系統(tǒng)driver,自己使用input子系統(tǒng)框架來實(shí)現(xiàn)按鍵中斷driver捆等。
  3. 直接使用gpio-key的driver來實(shí)現(xiàn)按鍵中滞造。

B.input子系統(tǒng)框?qū)W習(xí)

image.png

linux內(nèi)核空間主要分三層
a,驅(qū)動層:輸入設(shè)備的具體驅(qū)動程序
b, 核心層:承上啟下栋烤,為驅(qū)動層提供輸入設(shè)備注冊的操作接口谒养,通知事件層對輸入事件進(jìn)行處理
c,事件層:和用戶空間交互班缎。

C.input子系統(tǒng)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)

input_dev 輸入設(shè)備
input_handler 事件處理器
input_handle 連接結(jié)構(gòu)體
我本來在想為什么要加一個(gè)input_handle蝴光,直接連接dev和handler不就可以了。后來網(wǎng)上查了达址,因?yàn)椴皇且粚σ欢强梢?對多的關(guān)系。一個(gè)設(shè)備可以對應(yīng)多個(gè)事件趁耗,一個(gè)事件也可以對應(yīng)多個(gè)設(shè)備沉唠。

D.內(nèi)核代碼分析

input_register_handler開始到最后connect,可以參考
12.Linux之輸入子系統(tǒng)分析(詳解)苛败,此文描述的比較好满葛。

image.png

E.實(shí)踐

實(shí)驗(yàn)1,使用input子系統(tǒng)罢屈,自己寫驅(qū)動嘀韧。--已完成
實(shí)驗(yàn)2,直接使用gpio-key缠捌,通過修改設(shè)備樹完成驅(qū)動锄贷。--已完成

F.小結(jié)

一,關(guān)于中斷中的鎖使用

  1. spin_lock--不會關(guān)中斷曼月,某進(jìn)程鎖住了谊却,然后中斷處理程序中也使用了此時(shí)由于某進(jìn)程被掛起,導(dǎo)致中斷程序獲取不了資源而產(chǎn)生死鎖哑芹。
  2. spin_lock_irq--進(jìn)入中斷會關(guān)閉中斷炎辨,退出的時(shí)候是開啟的。
  3. spin_lock_irqsave--進(jìn)入的時(shí)候會關(guān)閉中斷聪姿,退出的時(shí)候會恢復(fù)之前的中斷狀態(tài)碴萧。

G.參考網(wǎng)址

4. Linux - 輸入子系統(tǒng)框架詳解
Linux 輸入子系統(tǒng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乙嘀,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子破喻,更是在濱河造成了極大的恐慌虎谢,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件低缩,死亡現(xiàn)場離奇詭異嘉冒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咆繁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門讳推,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玩般,你說我怎么就攤上這事银觅。” “怎么了坏为?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵究驴,是天一觀的道長。 經(jīng)常有香客問我匀伏,道長洒忧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任够颠,我火速辦了婚禮熙侍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘履磨。我一直安慰自己蛉抓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布剃诅。 她就那樣靜靜地躺著巷送,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矛辕。 梳的紋絲不亂的頭發(fā)上笑跛,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音如筛,去河邊找鬼堡牡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛杨刨,可吹牛的內(nèi)容都是我干的晤柄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼妖胀,長吁一口氣:“原來是場噩夢啊……” “哼芥颈!你這毒婦竟也來了惠勒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤爬坑,失蹤者是張志新(化名)和其女友劉穎纠屋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盾计,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡售担,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了署辉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族铆。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖哭尝,靈堂內(nèi)的尸體忽然破棺而出哥攘,到底是詐尸還是另有隱情,我是刑警寧澤材鹦,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布逝淹,位于F島的核電站,受9級特大地震影響桶唐,放射性物質(zhì)發(fā)生泄漏栅葡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一尤泽、第九天 我趴在偏房一處隱蔽的房頂上張望妥畏。 院中可真熱鬧,春花似錦安吁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至黔龟,卻和暖如春妇智,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氏身。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工巍棱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛋欣。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓航徙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陷虎。 傳聞我的和親對象是個(gè)殘疾皇子到踏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345