使用ulink下載代碼后,程式自動運行并進入hardfault例外中斷,在例外中斷里發送io口波形發現的。
1、工程設定flash download并未勾選reset and run,為什么程式會自動運行呢?硬體上也沒有連接復位引腳。
2、在線除錯會發生復位,程式就沒有再進入hardfault了,因此不能通過斷點方式定位程式出錯的地方。
3、下載代碼是運行flash燒寫演算法,已經debug燒寫演算法FLM檔案沒有問題,每個介面函式都進行了測驗,不會引發hardfault
我通過串口把進入例外中斷時的暫存器值列印出來,其中flash地址是0~0x40000,sram地址是0x20000000~0x20020000,
r0 0x00000000
r1 0x00000003
r2 0x50010000
r3 0x04c11db7
r12 0x61513ec0
lr 0x20000001
pc 0x20000000
psr 0x41000000
keil下載代碼是把燒寫演算法程式放到sram里運行的,也修改了RAM for Algorithm分配的大小,沒有效果
各位有碰到過這樣的問題嗎?該怎么解決呢?數字設計也無法搭平臺驗證定位問題,摸不著路了,這個問題真的很詭異
uj5u.com熱心網友回復:
網上提供定位問題方法都是在線除錯的方式,但我的程式一在線除錯運行就不會再進入了硬體錯誤中斷了,奇怪的點是為什么下載代碼后會自動運行程式uj5u.com熱心網友回復:
使用的是keil4uj5u.com熱心網友回復:
難道是配置區的設定問題?uj5u.com熱心網友回復:
將flash download 勾選reset and run,看看還會不會出現硬體出錯?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/208734.html
標籤:單片機/工控
上一篇:神經網路基礎詳解
