標(biāo)題:
又一次Hardfault
[打印本頁]
作者:
xuwei
時間:
2015-6-13 00:34
標(biāo)題:
又一次Hardfault
多少年沒出現(xiàn)過hardfault 了。終于又讓我碰上了。
最近在調(diào)試的時候需要一個外部中斷,于是乎添加之,本想到?jīng)]啥事的。結(jié)果直接Hardfault
心說來就來吧,反正又不是第一次,開始定位PC指針打開一看是ETX線程的MEMcpy出錯。
找吧
坑爹的找了一晚上沒找到,這是標(biāo)準(zhǔn)庫啊,怎么會有問題、
之后就是各種的加保護,各種保護。
鎖內(nèi)核,關(guān)中斷。
最后還是依舊如此
過去看了變量
發(fā)現(xiàn)有個dst 指針為0x00000000;而他應(yīng)該是DMA的RAM地址
這不是非法修改么?我操。
找啊找找啊找
沒找到
后來把M3的內(nèi)核參考翻出來了,看寄存器,反而更糊涂了
實在沒招了......
開始排除法
反復(fù)測試發(fā)現(xiàn)中斷發(fā)送郵箱后就死。
打開線程入口
開始逐步的排除全刪了一點點加,終于在
找到問題。
這是個信號,沒什么奇怪的,但是
此信號為全局變量,這樣我在引用的時候需要用extern 聲明
結(jié)果
變成了這樣
這是什么鳥貨?
嘖嘖少了一個char /////
加上編譯,運行OK
實際上這個內(nèi)存越界、野指針、除零一樣,是非法操作,會導(dǎo)致Hardfault的。因為不再是一個變量。所以然。
2晚上終于讓我找到根了!馬丹的哥從來不熬夜。為此耗費兩個晚上,今天還他媽的想了一天。
搞定了也值得!
2015 05 25
比特老王
作者:
admin
時間:
2015-9-13 20:36
謝謝 hardfault這個問題我也遇到過.回顧一下
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1