0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

迅為RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南-輸入子系統(tǒng)

北京迅為電子 ? 2024-02-23 15:11 ? 次閱讀

《iTOP-RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南》更新,本次更新內(nèi)容對(duì)應(yīng)的是驅(qū)動(dòng)(第十三篇 輸入子系統(tǒng))視頻,幫助用戶(hù)快速入門(mén),大大提升研發(fā)速度。

第13篇-輸入子系統(tǒng)目錄

第1篇 驅(qū)動(dòng)基礎(chǔ)篇

第2篇 字符設(shè)備基礎(chǔ)
第3篇 并發(fā)與競(jìng)爭(zhēng)
第4篇 高級(jí)字符設(shè)備進(jìn)階
第5篇 中斷

第6篇 平臺(tái)總線

第7篇 設(shè)備樹(shù)

第8篇 設(shè)備樹(shù)插件

第9篇 設(shè)備模型

第10篇 熱插拔

第11篇 pinctrl子系統(tǒng)

第12篇GPIO子系統(tǒng)

第13篇輸入子系統(tǒng)

驅(qū)動(dòng)基礎(chǔ)-進(jìn)階篇

未完待續(xù),持續(xù)更新中...

初識(shí) input 子系統(tǒng)

137.1 什么是輸入子系統(tǒng)?

Linux 中,input 子系統(tǒng)是專(zhuān)門(mén)為處理輸入類(lèi)設(shè)備而設(shè)計(jì)的一個(gè)子系統(tǒng)或框架。它提供了一套通用的接口和機(jī)制,用于驅(qū)動(dòng)開(kāi)發(fā)人員編寫(xiě)和管理輸入設(shè)備的驅(qū)動(dòng)程序。輸入設(shè)備包括鍵盤(pán)、鼠標(biāo)、觸摸屏、游戲手柄等,具體示意圖如下所示:

wKgZomXYROOAM4BvAABxMYZPrxs895.pngwKgZomXYROuAEBbQAADJhDNflF4891.png

使用 input 子系統(tǒng)的主要目的是規(guī)范和簡(jiǎn)化輸入設(shè)備驅(qū)動(dòng)的開(kāi)發(fā)過(guò)程,以提高驅(qū)動(dòng)的通用性和兼容性。它通過(guò)將輸入設(shè)備的共同功能和處理邏輯提取出來(lái),編寫(xiě)成通用的代碼,將差異化的代碼留給具體的設(shè)備驅(qū)動(dòng)開(kāi)發(fā)人員,這種分工合作的方式使得驅(qū)動(dòng)開(kāi)發(fā)人員可以更專(zhuān)注地處理設(shè)備特定的細(xì)節(jié),從而大大降低工程師的開(kāi)發(fā)難度。

在不使用輸入子系統(tǒng)的情況下,可能會(huì)使用不同的代碼來(lái)表示相同的動(dòng)作。例如,一個(gè)同學(xué)可能使用數(shù)字 1 來(lái)表示按鍵按下,數(shù)字 0 來(lái)表示按鍵松開(kāi);而另一個(gè)同學(xué)可能使用數(shù)字 2來(lái)表示按鍵按下,數(shù)字 3 來(lái)表示按鍵松開(kāi)。這樣的情況下,應(yīng)用程序很難適配所有不同的驅(qū)動(dòng)程序,從而導(dǎo)致程序的兼容性和移植性較差。

而在使用輸入子系統(tǒng)后就可以解決這個(gè)問(wèn)題。例如,當(dāng)不同廠家的鍵盤(pán)連接到計(jì)算機(jī)上時(shí),它們的驅(qū)動(dòng)程序都是按照輸入子系統(tǒng)框架來(lái)編寫(xiě)的。這意味著所有廠家的驅(qū)動(dòng)程序都使用相同的代碼規(guī)范來(lái)表示按鍵動(dòng)作,例如使用 1 表示按下,使用 0 表示松開(kāi)。這樣一來(lái),無(wú)論是哪個(gè)廠家的鍵盤(pán),都可以在任意計(jì)算機(jī)上正常使用。

使用輸入子系統(tǒng)的另一個(gè)好處是驅(qū)動(dòng)開(kāi)發(fā)人員不需要自己實(shí)現(xiàn)文件操作集函數(shù)。輸入子系統(tǒng)已經(jīng)提供了一套標(biāo)準(zhǔn)的接口和函數(shù),開(kāi)發(fā)人員只需要按照這些接口進(jìn)行開(kāi)發(fā),而無(wú)需關(guān)心底層的文件操作細(xì)節(jié)。這樣可以大大降低開(kāi)發(fā)的難度和復(fù)雜度。

綜上使用 input 子系統(tǒng)的作用如下所示:

(1)兼容性: 輸入子系統(tǒng)提供了一個(gè)統(tǒng)一的框架和接口,使得不同廠家的輸入設(shè)備都可 以按照相同的規(guī)范進(jìn)行驅(qū)動(dòng)開(kāi)發(fā)。無(wú)論是鍵盤(pán)、鼠標(biāo)還是其他輸入設(shè)備,只要符合輸入子系統(tǒng)定義的接口和事件格式,都可以在 Linux 系統(tǒng)中正常工作。這樣一來(lái),工程師不需要針對(duì)每個(gè)廠家的設(shè)備編寫(xiě)和維護(hù)不同的驅(qū)動(dòng)代碼,大大提高了設(shè)備的兼容性。

(2)統(tǒng)一的驅(qū)動(dòng)編程方式: 輸入子系統(tǒng)定義了一套通用的驅(qū)動(dòng)編程方式,工程師只需要按照輸入子系統(tǒng)的規(guī)范進(jìn)行開(kāi)發(fā)即可。輸入設(shè)備的驅(qū)動(dòng)模塊需要實(shí)現(xiàn)相應(yīng)的接口函數(shù),如初始化函數(shù)、事件處理函數(shù)等。這些接口函數(shù)的實(shí)現(xiàn)方式是相同的,不論是鍵盤(pán)驅(qū)動(dòng)還是鼠標(biāo)驅(qū)動(dòng),都可以按照統(tǒng)一的方式進(jìn)行開(kāi)發(fā)。這樣一來(lái),工程師可以更加專(zhuān)注于設(shè)備特定的細(xì)節(jié),而無(wú)需關(guān)心通用的驅(qū)動(dòng)框架,簡(jiǎn)化了開(kāi)發(fā)過(guò)程。

(3)統(tǒng)一的應(yīng)用操作接口: 輸入子系統(tǒng)通過(guò)提供一組統(tǒng)一的應(yīng)用操作接口,如

/dev/input/eventX,使得應(yīng)用程序可以方便地與輸入設(shè)備進(jìn)行交互。應(yīng)用程序可以通過(guò)讀取這些設(shè)備節(jié)點(diǎn),獲取輸入事件的信息,并進(jìn)行相應(yīng)的處理。無(wú)論是哪種類(lèi)型的輸入設(shè)備,應(yīng)用程序都可以使用相同的方式進(jìn)行訪問(wèn)和操作。這樣一來(lái),應(yīng)用程序的開(kāi)發(fā)人員不需要關(guān)心底層輸入設(shè)備的細(xì)節(jié),可以更加專(zhuān)注于應(yīng)用程序的邏輯開(kāi)發(fā)。

更多關(guān)注北京迅為電子了解詳細(xì)教程

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    12

    文章

    1818

    瀏覽量

    85106
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4895

    瀏覽量

    97055
  • RK3568
    +關(guān)注

    關(guān)注

    4

    文章

    489

    瀏覽量

    4887
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3568開(kāi)發(fā)板支持銀河麒麟和開(kāi)放麒麟系統(tǒng)

    RK3568開(kāi)發(fā)板移植了銀河麒麟和開(kāi)放麒麟系統(tǒng)HOT 新增RT-Thread系統(tǒng) iTOP
    發(fā)表于 11-06 14:44

    RK3568開(kāi)發(fā)板鴻蒙OpenHarmony系統(tǒng)固件燒寫(xiě)步驟

    1、RK3568開(kāi)發(fā)板鴻蒙OpenHarmony系統(tǒng)固件燒寫(xiě)首先拷貝燒寫(xiě)器(燒寫(xiě)器在光盤(pán)資料“iTOP-
    發(fā)表于 08-26 17:45

    【教程上新】基于iTOP-RK3568開(kāi)發(fā)板的OpenCV開(kāi)發(fā)手冊(cè)

    【教程上新】基于iTOP-RK3568開(kāi)發(fā)板的OpenCV開(kāi)發(fā)手冊(cè)
    的頭像 發(fā)表于 02-08 15:22 ?1037次閱讀
    【教程上新】基于<b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>的OpenCV<b class='flag-5'>開(kāi)發(fā)</b>手冊(cè)

    RK3568開(kāi)發(fā)板資料20個(gè)+手冊(cè)+配套視頻教程

    RK3568開(kāi)發(fā)板資料20個(gè)+手冊(cè)+配套視頻教程
    的頭像 發(fā)表于 02-14 14:37 ?6866次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>資料20個(gè)+手冊(cè)+配套視頻教程

    RK3568 arm開(kāi)發(fā)板全面支持國(guó)產(chǎn)翼輝SylixOS實(shí)時(shí)操作系統(tǒng)

    RK3568開(kāi)發(fā)板全面支持國(guó)產(chǎn)翼輝SylixOS實(shí)時(shí)操作系統(tǒng)
    的頭像 發(fā)表于 04-06 16:42 ?1354次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b> arm<b class='flag-5'>開(kāi)發(fā)板</b>全面支持國(guó)產(chǎn)翼輝SylixOS實(shí)時(shí)操作<b class='flag-5'>系統(tǒng)</b>

    基于RK3568開(kāi)發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻

    基于RK3568開(kāi)發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻
    的頭像 發(fā)表于 05-19 16:30 ?915次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>基于<b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>的嵌入式學(xué)習(xí)之Linux<b class='flag-5'>驅(qū)動(dòng)</b>視頻

    RK3568開(kāi)發(fā)板系統(tǒng)編程手冊(cè)全新升級(jí)

    RK3568開(kāi)發(fā)板系統(tǒng)編程手冊(cè)全新升級(jí)
    的頭像 發(fā)表于 06-25 15:50 ?1077次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>系統(tǒng)</b>編程手冊(cè)全新升級(jí)

    RK3568開(kāi)發(fā)板GPIO之外接模塊

    RK3568開(kāi)發(fā)板GPIO之外接模塊
    的頭像 發(fā)表于 08-24 17:41 ?1273次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>GPIO之外接模塊

    RK3568開(kāi)發(fā)板可實(shí)現(xiàn)多屏異顯控方案

    RK3568開(kāi)發(fā)板可實(shí)現(xiàn)多屏異顯控方案
    的頭像 發(fā)表于 07-15 17:30 ?1788次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>可實(shí)現(xiàn)多屏異顯控方案

    RK3568開(kāi)發(fā)板外接模塊之HX711 稱(chēng)重模塊

    RK3568開(kāi)發(fā)板外接模塊之HX711 稱(chēng)重模塊
    的頭像 發(fā)表于 08-30 15:24 ?1436次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>外接模塊之HX711 稱(chēng)重模塊

    RK3568開(kāi)發(fā)板Debian系統(tǒng)使用python 進(jìn)行攝像頭開(kāi)發(fā)

    RK3568開(kāi)發(fā)板Debian系統(tǒng)使用python 進(jìn)行攝像頭開(kāi)發(fā)
    的頭像 發(fā)表于 09-14 16:58 ?1429次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>Debian<b class='flag-5'>系統(tǒng)</b>使用python 進(jìn)行攝像頭<b class='flag-5'>開(kāi)發(fā)</b>

    【北京】itop-RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南

    《iTOP-RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南》更新,本次更新內(nèi)容對(duì)應(yīng)的是驅(qū)動(dòng)(第六期_平臺(tái)總線_全新升級(jí))視頻,后續(xù)資料會(huì)不斷更新,不斷完善,
    發(fā)表于 08-29 16:32 ?29次下載

    RK3568開(kāi)發(fā)板助力智能車(chē)載產(chǎn)業(yè)快速發(fā)展

    RK3568開(kāi)發(fā)板助力智能車(chē)載產(chǎn)業(yè)快速發(fā)展
    的頭像 發(fā)表于 01-23 13:59 ?520次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>助力智能車(chē)載產(chǎn)業(yè)快速發(fā)展

    北京RK3568開(kāi)發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)全新更新-CAN+

    北京RK3568開(kāi)發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)全新更新-CAN+
    的頭像 發(fā)表于 09-04 15:29 ?355次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>嵌入式學(xué)習(xí)之Linux<b class='flag-5'>驅(qū)動(dòng)</b>全新更新-CAN+

    iTOP-RK3568/RK3588開(kāi)發(fā)板獲麒麟軟件適配認(rèn)證

    iTOP-RK3568/RK3588開(kāi)發(fā)板獲麒麟軟件適配認(rèn)證
    的頭像 發(fā)表于 10-18 14:56 ?397次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588<b class='flag-5'>開(kāi)發(fā)板</b>獲麒麟軟件適配認(rèn)證