ch582 hardfault 重啟

目前只要一開啟tmos就重啟。 我打印了hardfault。發(fā)現(xiàn)是tmos_memory_allocate() 內(nèi)存分配錯誤。 這個錯誤如何調(diào)試呢?

hardfault

mepc:20003270

mcause:00000004

mtval:bfa19522



熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

可以多測試幾次,看看是否每次pc指針都指向該地方。

在lst文件中檢查mepc是否有指向函數(shù),可以查看該函數(shù)的傳參。這里的報錯應該是沒有字節(jié)對齊。因此可以重點查看在分配內(nèi)存的時候是否有進行4字節(jié)對齊。

image.png


測試了一下,每次都是指向這個相同的位置。 load 指令訪存地址不對齊是什么原因造成? 由于錯誤指向的不是自己的寫的應用程序,不知道在哪里改。


每次都指向同一個地方,且是開啟tmos任務才會出現(xiàn)該報錯,則檢查你的那個tmos調(diào)用的函數(shù),建議的是先停止tmos任務,判斷一下具體是哪個調(diào)用的函數(shù)造成的。

tmos_memory_allocate這個函數(shù)看下是不是你自己封裝的,如果是申請內(nèi)存,則建議使用tmos_msg_allocate/tmos_msg_deallocate或者GATT_bm_alloc/GATT_bm_free。

在進行申請內(nèi)存的時候,務必注意四字節(jié)對齊,指向報錯也是該原因。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频