光距感 stk3310 調試


1. 一般高通代碼驅動適合自己的HAL層框架,驅動也要適應其框架。最主要的是sys註冊的文件節點,HAL層通過統一的方式去讀取文件節點,這樣就具備通用性,後面直接添加驅動就好了。
首先要了解一下sensor的框架,從最底層到應用層中間會經過:kernel -> hal -> framework -> app,所以調試驅動要一層一層的取保數據正常,那就基本上沒什麼問題了。

2.調試需要注意的幾點
2.1.保證驅動數據正常,上報的數據正常。
2.2.註冊的設備名字和hal層sensor讀取的文件節點一致。sensor註冊的文件節點名字用getevent可以查看。
用 adb shell getevent 得到如下顯示:
add device 4: /dev/input/event3
name: "stk8313"
add device 5: /dev/input/event0
name: "Goodix-TS"
could not get driver version for /dev/input/mice, Not a typewriter
add device 6: /dev/input/event2
name: "proximity"
add device 7: /dev/input/event1
name: "light"

從上面可以看出,
add device 4 G-sensor
add device 5 TP
add device 6 P-sensor
add device 7 L-sensor

2.3.用getevent /dev/input/event1 查看是否有數據,手動使能,一般節點在sys/class/input/input*/enable 若得不到數據,那就是驅動層有問題,因爲getevent 讀取數據是kernel層的數據,還沒到hal層。
2.4.應用層若讀不到數據,那就是HAL層的問題。

3.hal層調試
hal層主要根據各種sensor去讀取數據,多添加log打印,主要看enable和readeven事件,是否調用,若果沒調到enable,查看logcat,應該會出現E/SensorManager( 2276): sensor or listener is null 這樣的錯誤,就表示HAL層沒有讀到此設備,需要修改。

注意:若果驅動層的數據正常,getevent沒數據,那就要檢查驅動上報數據是否有變化,若沒有變化,getevent是看不到數據的。
所以要檢查上報的數據是否成功,上報的數據邏輯有無問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章