91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

驅(qū)動(dòng)之路#12:如何調(diào)試Input設(shè)備?

BSP調(diào)試從0到1 ? 來(lái)源:嵌入式分享 ? 作者:嵌入式分享 ? 2026-03-17 09:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本合集分享的是,我當(dāng)初學(xué)習(xí)Linux驅(qū)動(dòng)的來(lái)時(shí)路——《《驅(qū)動(dòng)之路》開(kāi)篇:自序&前言》。

正文

經(jīng)過(guò)前面 Input 子系統(tǒng)系列文章,我們已經(jīng)很清楚 Input 子系統(tǒng)的數(shù)據(jù)上報(bào)流程(如下圖),這正是我們調(diào)試 Input 設(shè)備時(shí)的技術(shù)自信。Input設(shè)備的工作鏈路很簡(jiǎn)單: 硬件→ 驅(qū)動(dòng)→ Linux Input子系統(tǒng) → 應(yīng)用層,調(diào)試的核心就是“從下到上”驗(yàn)證每一環(huán)是否正常,哪環(huán)斷了就針對(duì)性解決。

wKgZPGm4qL6ANwoYAABhaKdwoW4543.png

下面跟大家分享我的 Input 設(shè)備調(diào)試思路,僅供參考~

調(diào)試流程

當(dāng)我們配置完軟件并連接 Input 設(shè)備后,接下來(lái)就進(jìn)入調(diào)試流程。

第 1 步:確認(rèn)設(shè)備是否被系統(tǒng)識(shí)別

先通過(guò)cat /proc/bus/input/devices判斷Input設(shè)備有沒(méi)有被驅(qū)動(dòng)識(shí)別,這是最基礎(chǔ)的一步。

小提示:關(guān)鍵看輸出中的「Name」和「Handlers」,比如觸摸屏?xí)@示“goodix-ts”,Handlers對(duì)應(yīng)“event6”(設(shè)備節(jié)點(diǎn)); 若沒(méi)找到目標(biāo)設(shè)備,優(yōu)先排查:驅(qū)動(dòng)是否加載、硬件接線是否松動(dòng)(如I2C觸摸屏的SDA/SCL引腳)、設(shè)備樹(shù)配置是否正確(如I2C地址、中斷引腳)。

wKgZPGm4qL6AUKopAABQw8Q7G20039.png

第 2 步:驗(yàn)證原始事件是否正常

如果設(shè)備已識(shí)別,但操作沒(méi)反應(yīng),可以使用getevent/hexdump/od (Linux 與 Android 支持不同命令)等命令監(jiān)聽(tīng)原始事件,判斷驅(qū)動(dòng)是否能正常上報(bào)數(shù)據(jù)。

比如,執(zhí)行命令hexdump /dev/input/event6,然后操作Input設(shè)備(如觸摸屏幕、按按鍵),觀察輸出;

正常情況:會(huì)持續(xù)輸出事件,比如觸摸屏?xí)蠥BS_MT_POSITION_X(X坐標(biāo))、ABS_MT_POSITION_Y(Y坐標(biāo))事件。

異常情況:無(wú)輸出→驅(qū)動(dòng)未正確上報(bào)事件,檢查驅(qū)動(dòng)probe函數(shù)是否執(zhí)行、中斷是否觸發(fā)(關(guān)鍵點(diǎn))。

第 3 步:用evtest/tslib 做更細(xì)致的功能驗(yàn)證

getevent/hexdump/od 等命令看原始數(shù)據(jù),evtest/tslib(觸摸專用) 能更直觀地看到事件細(xì)節(jié),適合驗(yàn)證功能是否達(dá)標(biāo)。

排查思路

無(wú)論是硬件還是軟件都特別要留意中斷信號(hào),中斷是 Input 設(shè)備數(shù)據(jù)上報(bào)的關(guān)鍵!比如調(diào)試觸摸屏?xí)r,只要觸摸芯片正常工作,觸摸屏幕,中斷引腳的電平就應(yīng)該產(chǎn)生變化,驅(qū)動(dòng)程序通過(guò)捕獲其電平的變化觸發(fā)中斷函數(shù),從而實(shí)現(xiàn)數(shù)據(jù)上報(bào)。

說(shuō)句廢話:具體問(wèn)題具體分析。不過(guò)實(shí)際情況確實(shí)如此,這里無(wú)法列出所有情況,只能提供一些常見(jiàn)問(wèn)題的排查思路。

設(shè)備未識(shí)別

(1)驅(qū)動(dòng)未加載:看dmesg日志(dmesg | grep input)是否有報(bào)錯(cuò),根據(jù)報(bào)錯(cuò) log 進(jìn)行排查;

(2)dts 配置錯(cuò)誤:檢查設(shè)備樹(shù)中Input設(shè)備的節(jié)點(diǎn)配置(如I2C地址、中斷引腳、compatible屬性),確保與驅(qū)動(dòng)匹配。

有設(shè)備節(jié)點(diǎn)但無(wú)事件輸出

(1)中斷未觸發(fā):用cat /proc/interrupts查看中斷是否有計(jì)數(shù),無(wú)計(jì)數(shù)→硬件接線錯(cuò)誤或中斷配置錯(cuò)誤;

(2)驅(qū)動(dòng)未初始化:查看dmesg日志,看驅(qū)動(dòng)probe函數(shù)是否有報(bào)錯(cuò)(如資源申請(qǐng)失?。?。

(完)

本人專注 Linux 驅(qū)動(dòng) & Linux/Android BSP 開(kāi)發(fā)調(diào)試,可接外包項(xiàng)目/技術(shù)支持/問(wèn)題定位。有需求或交個(gè)朋友可加微信:【Chen_WeChat2026】。

更多原創(chuàng)技術(shù)文章:《README 2026》。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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

    文章

    1968

    瀏覽量

    88602
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11778

    瀏覽量

    219185
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    云臺(tái)電機(jī)驅(qū)動(dòng)系統(tǒng)載波參數(shù)配置與調(diào)試

    核心參數(shù)(頻率、載波比、死區(qū)時(shí)間等)的配置原則、場(chǎng)景化取值標(biāo)準(zhǔn),詳細(xì)拆解從硬件適配到軟件調(diào)試的全流程步驟,并針對(duì)常見(jiàn)問(wèn)題提供排查方案,為工程技術(shù)人員提供標(biāo)準(zhǔn)化的參數(shù)配置與調(diào)試指南,確保驅(qū)動(dòng)系統(tǒng)達(dá)到設(shè)計(jì)指標(biāo)。 一、引言 云
    的頭像 發(fā)表于 03-06 15:11 ?182次閱讀

    驅(qū)動(dòng)之路#04:LCD 驅(qū)動(dòng)程序分析(基于RK3576)

    ? 題圖:河北太行山脈,山頭密密麻麻都被太陽(yáng)能板覆蓋了。 歡迎關(guān)注,每周更新!? 本合集分享的是,我當(dāng)初學(xué)習(xí)Linux驅(qū)動(dòng)的來(lái)時(shí)路——《《驅(qū)動(dòng)之路》開(kāi)篇:自序 ? ? ?// 通用面板數(shù)據(jù)結(jié)構(gòu)
    的頭像 發(fā)表于 02-17 08:20 ?1w次閱讀
    <b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>之路</b>#04:LCD <b class='flag-5'>驅(qū)動(dòng)</b>程序分析(基于RK3576)

    驅(qū)動(dòng)之路#03:LCD 時(shí)序參數(shù)分析

    ? 題圖:浙江普陀山客運(yùn)中心最近獲得2021年度凡爾賽建筑獎(jiǎng)。 歡迎關(guān)注,每周更新!? 本合集分享的是,我當(dāng)初學(xué)習(xí)Linux驅(qū)動(dòng)的來(lái)時(shí)路——《《驅(qū)動(dòng)之路》開(kāi)篇:自序13 tvb: 垂直上寬/后肩
    的頭像 發(fā)表于 02-10 08:27 ?824次閱讀
    <b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>之路</b>#03:LCD 時(shí)序參數(shù)分析

    RK平臺(tái)新聲卡添加與驅(qū)動(dòng)調(diào)試指南

    在瑞芯微(RK)平臺(tái)的嵌入式系統(tǒng)開(kāi)發(fā)中,音頻功能的實(shí)現(xiàn)核心依賴于 Sound Card(聲卡)的正確配置與驅(qū)動(dòng)調(diào)試。
    的頭像 發(fā)表于 02-09 16:42 ?795次閱讀
    RK平臺(tái)新聲卡添加與<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>調(diào)試</b>指南

    【免費(fèi)送書(shū)】成為硬核Linux開(kāi)發(fā)者:《Linux 設(shè)備驅(qū)動(dòng)開(kāi)發(fā)(第 2 版)》

    Linux系統(tǒng)的設(shè)備驅(qū)動(dòng)開(kāi)發(fā),一直給人門檻較高的印象,主要因內(nèi)核機(jī)制抽象、需深度理解硬件原理、開(kāi)發(fā)調(diào)試難度大所致。2021年,一本講解驅(qū)動(dòng)開(kāi)發(fā)的專著問(wèn)世即獲市場(chǎng)青睞,暢銷近萬(wàn)冊(cè)——這便
    的頭像 發(fā)表于 11-18 08:06 ?1537次閱讀
    【免費(fèi)送書(shū)】成為硬核Linux開(kāi)發(fā)者:《Linux <b class='flag-5'>設(shè)備</b><b class='flag-5'>驅(qū)動(dòng)</b>開(kāi)發(fā)(第 2 版)》

    達(dá)實(shí)智能分享AI時(shí)代的心力驅(qū)動(dòng)之路

    近日,由知名媒體IP《首席訪談》發(fā)起成立的企業(yè)決策人社群“首席朋友圈”走進(jìn)達(dá)實(shí)智能,深入了解達(dá)實(shí)智能企業(yè)創(chuàng)新發(fā)展之路,共同探討企業(yè)家的“心力驅(qū)動(dòng)”實(shí)踐。
    的頭像 發(fā)表于 07-23 11:23 ?907次閱讀

    硬件調(diào)試:JLink 驅(qū)動(dòng)配置與調(diào)試技巧

    摘要: 本文深入探討了 JLink 調(diào)試器在嵌入式系統(tǒng)硬件調(diào)試中的應(yīng)用,詳細(xì)闡述了 JLink 驅(qū)動(dòng)配置的方法以及硬件調(diào)試技巧。本文以國(guó)科安芯的AS32系列MCU芯片為例,通過(guò)分析 J
    的頭像 發(fā)表于 06-12 23:20 ?1707次閱讀
    硬件<b class='flag-5'>調(diào)試</b>:JLink <b class='flag-5'>驅(qū)動(dòng)</b>配置與<b class='flag-5'>調(diào)試</b>技巧

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之基于input子系統(tǒng)的光線傳感器驅(qū)動(dòng)

    光照強(qiáng)度測(cè)量的應(yīng)用,包括自動(dòng)調(diào)光系統(tǒng)、室內(nèi)照明控制、移動(dòng)設(shè)備和環(huán)境監(jiān)測(cè)等。 驅(qū)動(dòng)編寫 例程代碼路徑:ELF 1開(kāi)發(fā)板資料包\\03-例程源碼\\03-2 驅(qū)動(dòng)例程源碼\\08_input
    發(fā)表于 04-16 11:05

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之基于input子系統(tǒng)的按鍵驅(qū)動(dòng)

    例程代碼路徑:ELF 1開(kāi)發(fā)板資料包\\03-例程源碼\\03-2 驅(qū)動(dòng)例程源碼\\08_input子系統(tǒng)\\keyboard下面以控制開(kāi)發(fā)板上的K2為例進(jìn)行講解。修改設(shè)備樹(shù)(一)查看原理圖和引腳
    發(fā)表于 04-16 10:57

    飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之基于input子系統(tǒng)的光線傳感器驅(qū)動(dòng)

    的應(yīng)用,包括自動(dòng)調(diào)光系統(tǒng)、室內(nèi)照明控制、移動(dòng)設(shè)備和環(huán)境監(jiān)測(cè)等。驅(qū)動(dòng)編寫例程代碼路徑:ELF 1開(kāi)發(fā)板資料包\\03-例程源碼\\03-2 驅(qū)動(dòng)例程源碼\\08_input子系統(tǒng)
    發(fā)表于 04-16 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之基于input子系統(tǒng)的按鍵驅(qū)動(dòng)

    例程代碼路徑:ELF 1開(kāi)發(fā)板資料包\\03-例程源碼\\03-2 驅(qū)動(dòng)例程源碼\\08_input子系統(tǒng)\\keyboard下面以控制開(kāi)發(fā)板上的K2為例進(jìn)行講解。修改設(shè)備樹(shù)(一)查看原理圖和引腳
    發(fā)表于 04-15 10:58

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之input子系統(tǒng)簡(jiǎn)單構(gòu)建流程

    _driver的輸入設(shè)備驅(qū)動(dòng)程序,它使用Input子系統(tǒng)提供的API來(lái)創(chuàng)建和注冊(cè)輸入設(shè)備。在驅(qū)動(dòng)程序的初始化函數(shù)my_
    發(fā)表于 04-15 10:54

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之input子系統(tǒng)簡(jiǎn)介

    使用了設(shè)備驅(qū)動(dòng)程序來(lái)管理輸入設(shè)備。每個(gè)輸入設(shè)備都由一個(gè)驅(qū)動(dòng)程序進(jìn)行控制,驅(qū)動(dòng)程序負(fù)責(zé)與硬件進(jìn)行通
    發(fā)表于 04-15 10:42

    飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之input子系統(tǒng)簡(jiǎn)單構(gòu)建流程

    _driver的輸入設(shè)備驅(qū)動(dòng)程序,它使用Input子系統(tǒng)提供的API來(lái)創(chuàng)建和注冊(cè)輸入設(shè)備。在驅(qū)動(dòng)程序的初始化函數(shù)my_
    發(fā)表于 04-15 10:29

    飛凌嵌入式ElfBoard ELF 1板卡-input子系統(tǒng)之input子系統(tǒng)簡(jiǎn)介

    使用了設(shè)備驅(qū)動(dòng)程序來(lái)管理輸入設(shè)備。每個(gè)輸入設(shè)備都由一個(gè)驅(qū)動(dòng)程序進(jìn)行控制,驅(qū)動(dòng)程序負(fù)責(zé)與硬件進(jìn)行通
    發(fā)表于 04-15 10:27