|
昨晚用J-LINK調(diào)試個小程序,在主函數(shù)里多調(diào)用了一個函數(shù),編譯通過后,點擊DEBUG,就發(fā)覺會提示“verification failed @address 0x08000000”,一路點擊確定后,發(fā)現(xiàn)程序不走,停在了HardFault_Handler這個中斷函數(shù)這里,但是把這個函數(shù)注釋掉,重新調(diào)用另外一個函數(shù),且這個函數(shù)里調(diào)用了剛剛注釋掉的那個函數(shù),這回DEBUG又好了,突然不知所措了,這怎么會和函數(shù)有關(guān)呢,不可能啊。經(jīng)過多次試驗后發(fā)現(xiàn)這貌似和代碼量有關(guān),之前沒問題的時候就主函數(shù)里有幾個函數(shù),自從多加了一些函數(shù)后,代碼量變大了,他就會提示這個問題。但是這不科學(xué)啊,這么一小個小程序的代碼量就大了,那以后干工程還怎么搞啊。于是抓耳撓腮,到處找答案,各種網(wǎng)搜,各種無果。最后把DEBUG選項下RDI接口換成J-LINK/Cotex,并且相應(yīng)的flash下載選項也換成J-LINK(補(bǔ)充,之前的調(diào)試一直是用RDI interface。),這回就好了,多大代碼都沒問題了。前段剛接觸的時候也是,點擊DEBUG不運行主函數(shù)而停在HardFault_Handler這里,需要按一下復(fù)位鍵并重新點運行才正常進(jìn)入主函數(shù)運行,剛開始也是被搞暈,這個問題也是RDI的問題,最后也是把RDI接口換成J-LINK就好了的。這其中原因?qū)嵲谑遣唤�,不知道為什么這樣,在網(wǎng)上找也沒找到答案。這個RDI接口調(diào)試真是問題多多啊。
更正:貌似這問題和調(diào)試選擇的接口也沒關(guān),可能是我自己的J-LINK的問題,現(xiàn)在是一時好一時壞。關(guān)于RDI和J-LINK/Cotex,通過測試,只是下載速度不同,RDI比J-LINK慢很多。保留這段文字還是為了記錄一下學(xué)習(xí)的過程吧。
|
|