資源描述:
《Gsensor調(diào)試方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Gsensor調(diào)試方法-Allwinner/*Gsensor調(diào)試方法-Version0.1*AllwinnerPlatform*2013-09-20*Author:tzx-leistzx-hkz*/----------------------------------------------------------------------------------------------------------------gsensor原理:gsensor的作用是測(cè)量重力在x,y,z3個(gè)方向的分量。重力是1G=9.8。在gsensordriver打印出的x,y,z值就是gsenso
2、r對(duì)3個(gè)分量經(jīng)ADC轉(zhuǎn)換后的原始值。故在HAL層中,對(duì)其會(huì)做一個(gè)轉(zhuǎn)換。xx=9.8*(x/(2的n次方)),n為ADC的位數(shù)。dmard10為10bitADC,故2的n次方為4*256=1024。而d06是7bit。----------------------------------------------------------------------------------------------------------------本文主要從gsensor的驅(qū)動(dòng)層、HAL層、上層校準(zhǔn)APK的添加三方面來(lái)闡述gsensor調(diào)試的簡(jiǎn)單方法。-------------------
3、---------------------------------------------------------------------------------------------1,驅(qū)動(dòng)層:文件路徑:licheelinux-3.4driversgsensor驅(qū)動(dòng)層是關(guān)鍵,有沒(méi)有數(shù)據(jù)上報(bào),是著整個(gè)gsensor是否能正常工作的基礎(chǔ)。a),確保驅(qū)動(dòng)模塊已經(jīng)加載(默認(rèn)編譯為模塊方式)$adbshell進(jìn)入小機(jī)$lsmod查看是否gsensor對(duì)應(yīng)的模塊。若沒(méi)有加載,則通過(guò)cat/proc/kmsg>gsensor.log查看開機(jī)log中加載失敗原因進(jìn)行分析。b),利用
4、getevent查看驅(qū)動(dòng)是否有數(shù)據(jù)上報(bào)。$adbshell進(jìn)入小機(jī)$getevent-p列出所有的input設(shè)備,查看對(duì)應(yīng)的event0還是event1$getevent/dev/input/event1查看數(shù)據(jù)是否連續(xù)不斷上報(bào)?若沒(méi)有數(shù)據(jù)上報(bào),則分析驅(qū)動(dòng),打印report處上報(bào)的值。通常出現(xiàn)以上問(wèn)題,常為I2C通信失敗,在軟件端可以通過(guò)驅(qū)動(dòng)log看出。此時(shí)先檢查I2C地址是否正確,然后重點(diǎn)檢查硬件I2C是否連好,可能是由于虛焊或者芯片損壞導(dǎo)致。c),輔助查看gsensor屬性,獲取gsensor設(shè)備名$adbshell進(jìn)入小機(jī)$cd/sys/devices/sw_device
5、/gsensor(文件目錄不盡相同,可從驅(qū)動(dòng)文件中獲知實(shí)際路徑)$cat即可獲取gsensorname通常還有其他的屬性可以輔助查看,以詳細(xì)了解gsensor的狀態(tài),如enable、delay等屬性。----------------------------------------------------------------------------------------------------------------2,HAL層文件路徑:androiddevicesoftwinnercommonhardwarelibsensors1Gsensor調(diào)試方法-All
6、winnerHAL主要是處理驅(qū)動(dòng)層上報(bào)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,由1024的DA值轉(zhuǎn)換為1g。此部分需要修改較少,僅注意在兼容時(shí),加入對(duì)新增gsensor的支持即可。HAL層與驅(qū)動(dòng)層的結(jié)口為delay和enable。gsensor.cfg存放在小機(jī)的system/usr/gsensor.cfg,用于記錄各gsensor的x,y,z軸的方向。調(diào)試時(shí),直接adbpull出來(lái)之后修改對(duì)應(yīng)的gsensor方向,再adbpush進(jìn)去,重啟即可生效。-----------------------------------------------------------------------
7、-----------------------------------------3,上層添加校準(zhǔn)APK文件路徑:/system/app/system/lib上層添加校準(zhǔn)的APK具體實(shí)現(xiàn)方法可參考原廠提供的文件。一般包括APK以及對(duì)應(yīng)的庫(kù)文件。設(shè)置選項(xiàng)中添加校準(zhǔn)APK后,最重要的一點(diǎn)是如何通過(guò)APK判斷gsensor的報(bào)點(diǎn)是否準(zhǔn)確,以及gsensor的x、y、z軸判定。a),報(bào)點(diǎn)是否準(zhǔn)確通常不經(jīng)過(guò)校準(zhǔn)的gsensor都不是非常準(zhǔn)的,即使在小機(jī)界面能左右旋轉(zhuǎn)畫面,一定需要通過(guò)報(bào)點(diǎn)數(shù)值進(jìn)行判定。