|
這一段調(diào)NXP的LPC2114芯片,全速運(yùn)行總是報取數(shù)據(jù)中止異常,而且還沒有規(guī)律,最終弄了大約一個多禮拜,差點(diǎn)崩潰,天可見憐,好歹發(fā)現(xiàn)了,貼于此,希望能有所幫助。
KEIL FOR ARM中的startup文件中發(fā)生異常后都是死循環(huán),當(dāng)需要尋找異常出現(xiàn)的位置時,就會不好下手,按照網(wǎng)上很多高手的經(jīng)驗,自己添加返回指令,當(dāng)發(fā)生異常時,反悔到出錯的位置查詢。
我的這個工程中出現(xiàn)的問題起始很簡單,就是在程序運(yùn)行到main函數(shù)之前進(jìn)入了中斷服務(wù)程序,由于寄存器沒有初始化,在中斷服務(wù)程序中發(fā)生取數(shù)據(jù)中止異常,具體是怎么進(jìn)入的至今沒有搞明白,我在startup文件開頭將VIC重新禁止了,調(diào)試中基本就很少出現(xiàn)取數(shù)據(jù)異常了。很簡單的東西,卻費(fèi)了這么多的時間,悲慘,注:我的工程中加入了UCOS-II,是在運(yùn)行操作系統(tǒng)的節(jié)拍函數(shù)時發(fā)生的取數(shù)據(jù)中止異常。
所有的取數(shù)據(jù)中止異常和取指令中止異常,一切源自于移植了UCOS-II操作系統(tǒng),唉,周立功的移植代碼也不好使啊,希望遇到這類問題的兄弟要么修正移植代碼,要不就干脆采用前后臺程序模式吧。
|
|