問題的現象
1. 客戶在NRF53832(m4)平台上調試8001,在設定PxiAlg_SetMemsScale(1)時,MCU電流異常,從設定前3uA設定後一直6mA,
2. 請客戶使用乾淨的工程測試,發現調用與API相關的函數(除讀版本號外)都會有此現象。
3. 客戶使用算法為paw8001motion36_2_m4_keil.lib,後來請客戶試用最新的算法paw8001motion3603611_m4_keil.lib現象仍舊。
問題分析:
可能是FPU enable後造成電流增加為6mA,請客戶先不要使用我們的Algorithm Library,
直接執行一段浮點數的運算, 看看是否會有一樣的現象
float test(float a, float b)
{
return a*b ;
}
void main()
{
float c = test(1.2, 1.2);
}
客戶執行上面代碼後發現就有此現象,即功耗異常問題跟算法關係不大,主要是客戶浮點數的運算FPU enable導致
解決方法:
在算法調完算法退出心率後,關掉FPU,請客戶執行NVIC_ClearPendingIRQ(FPU_IRQn);就解決了