2012年8月5日 星期日

Cortex-M3 : 遇到HardFault該如何處理

寫Config週邊時最常遇到的是,週邊不動,不然就是HardFault。

若是發展中的程式,還知道現在正在加入的是那一個功能。

但拿到的是舊程式,出現HardFault就糟了,因為從那裏產生的都不知。

其實沒有如此糟,只要去看堆疊內容就行了。

SP+24的位置,就是產生HardFault的位址,一般會是標準函式庫。
就可以查出是那一個呼叫弄錯了。

另外SP+20則是Link Register的內容,可以進一步告知前一個呼叫函式位置。
往前追就可以看到是那一個應用程式弄錯了。

不過大概要會組合語言的人才會知道怎麼回事,原理不多說了。


1 則留言: