若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。
以I2C為例,SoC上可能會有多個Sensors,如下圖所示:
Porting流程大致上有幾個步驟:
- Sensor 的Linux驅動程式。
- 使用I2C tools測試。
- 對應的HAL程式(*.cpp)。
- 測試Sensor的APK。
本文要說明的是HAL成部分,而且大部分的廠商都會有linux的驅動程式,若需要從頭coding時,記得閱讀Sensor的Datasheet,另外可參考此投影片:用Raspberry Pi 學Linux I2C Driver
除了I2C tools外,也可用getevent與dumpsys來檢查Sensor Driver的功能。
getevent
dumpsys
SENSORS 函式庫介面定義在hardware/libhardware/include/hardware/sensors.h裡,所產生出來的*.so須以sensors.<product_name>.so方式命名 。
在HAL中新增SENSOR流程
2. 到hardware/<product_name>/libsensors資料夾,會看到類似下圖的檔案。
3. 找到sensors.cpp檔,並在此檔案內容裡的sSensorList 結構中增加Sensor的定義,此結構的內容含有:名稱、廠商、版本、類型(Light、Gyro等…)等。
測試SENSOR
使用現有的工具(nusensors):
在hardware/libhardware/tests/nusensors資料夾下有程式碼。
APK測試程式:AndroSensor
使用SensorManager類別自己開發:
沒有留言:
張貼留言