大家好! 好一段時間沒發文了,其實這半年來小弟我一直在鑽研MCU方面的知識,算是閉關練功吧!沒有新的板子問世深感抱歉!目前在鑽研的平台為安森美的LC823450 Cortex-M3雙核 與IMXRT1050 Cortex-M7單核, 使用的應用情境為ARM主推的神經網路CMSIS-NN,作業系統為ucLinux!
使用的範例為:https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/NN/Examples/ARM/arm_nn_examples/cifar10
這個兩個平台都跑的很順!但是當我使用喚醒詞的範例:https://github.com/ARM-software/ML-KWS-for-MCU/tree/master/Deployment/Examples/simple_test
編譯過後執行時一直出現錯誤:cmsis-kws-test: fault at 0x898a2028 [pc=0x81904e60, sp=0x819b2dac]Precise data bus errorSEGV
我stack size已經拉到2MB了,根據ARM的官方文件應該不需要這麼多,請前輩們指點一些方向,我trace一下似乎是做MFCC運算時造成crashed,謝謝!
剛用土法煉鋼找到SEGV的點是在DSP/DSP_Lib_TestSuite/RefLibs/src/TransformFunctions/bitreversal.c
底下這個arm_bitreversal_32 api, 執行迴圈的時候錯誤, 會繼續追查下去, 有什麼方向嗎?還是我call錯function了?因為我看到./DSP/Source/TransformFunctions/arm_bitreversal2.S 也有同樣的api但看起來參數不太對,謝謝
找到原因了,我是用CMSIS5的函式庫去套用KWS,但看起來KWS是用CMSIS4去實作的?我降版試試,等我好消息
已解!感謝大大的解惑