嵌入式ARM下的觸摸屏驅動(dòng)系統設計研究
在調試驅動(dòng)的過(guò)程中,出現了很多問(wèn)題,主要有以下兩個(gè):
4.1加載時(shí)報錯
在執行insmodad7873.ko時(shí),報錯為:
ad7873:noversionfor"struct_module"found:kerneltainted.
經(jīng)過(guò)檢查,發(fā)現是因為platform_data里面定義的。model="7873"被寫(xiě)成了。model="7883",造成了系統無(wú)法識別這個(gè)驅動(dòng),產(chǎn)生了錯誤,修改后執行insmodad7873.ko成功。
4.2使用tslib測試軟件測試的時(shí)候,屏幕無(wú)反應
原以為是中斷程序出了問(wèn)題,因此在中斷里面設置打印信息,發(fā)現可以打印,于是確定了中斷時(shí)正常響應了的。然后跟蹤代碼檢查,發(fā)現定時(shí)器函數很可疑,于是在定時(shí)器函數設置打印信息,發(fā)現定時(shí)器函數沒(méi)有正確執行,找到了問(wèn)題的所在。于是順藤摸瓜,終于發(fā)現原來(lái)是在這個(gè)函數中fn_get_pendown_state(void),也就是用來(lái)得到觸摸屏狀態(tài)的引腳設置不正確,導致定時(shí)器函數里面無(wú)法得到觸摸屏的狀態(tài),所以無(wú)響應。修改了定時(shí)器的引腳定義使其指向正確的引腳便一切OK。
5結論
本文從硬件到軟件設計了整個(gè)觸摸屏驅動(dòng)系統。作為家庭無(wú)線(xiàn)智能控制器的一部分,觸摸屏使整個(gè)系統使用更方便與高效。而未來(lái)隨著(zhù)對觸摸技術(shù)的越來(lái)越高的要求,如多點(diǎn)觸摸技術(shù),需要驅動(dòng)為上層應用提供更穩定的處理與更多的接口,以便上層應用可以更加高效的編寫(xiě)應用程序來(lái)應對復雜的機制。這就需要在內核驅動(dòng)層改進(jìn)驅動(dòng)的結構與算法來(lái)應對。
評論