近日工程中遇到了stm32無法dubug 也無法正常執行的問題,現象如下:
程式一直在反彙編中迴圈執行,無法將程式執行至main函式,更不用說斷點除錯了。檢視了網上的說法,可能的原因有
1、output 設定沒有選中 debug information;
2、debug 選項 run to main() 沒有選中;
3、程式中使用了printf 並通過fputc進行了重定向,但未選擇「use microlib」選項;
4、debug 設定中 reset 選擇為autodetect,導致無法除錯。我這裡選為sysresetreq;
5、boot0 引腳沒有拉低,導致程式不是從flash中執行;
綜上幾種可能的原因進行逐一排除,發現本專案的問題是boot0引腳沒有拉低處理,通過導線將該引腳接地後,程式從flash中啟動,並能進行debug除錯。
由於硬體工程師將boot0引腳只進行懸空處理,讓我浪費了很長時間排查問題。所以還是應該嚴謹一些呀。
有些晶元沒有boot1引腳,改用內部暫存器代替,這樣就節省了乙個引腳的空間。
參考:
stm32 非debug模式程式無法執行
最近負責乙個專案,用到stm32f4的一款高效能晶元。研發過程中遇到乙個很詭異的現象,前前後後折騰了兩三天,最後才搞定。由於是新手,經驗不足,排故過程很糾結 現象如下 2.通過jlink除錯程式,每次均正常執行。太詭異了!其次,考慮電源供電不穩定問題。通過萬用表測量各個模組電壓,發現電壓均正常值。那...
STM32 Debug無法新增斷點的解決方法
目錄 stm32 debug無法新增斷點的解決方法 1 run to main設定錯誤 2 generate assembler src file 設定錯誤 3 hex檔案命名錯誤 4 優化等級選擇錯誤 options debug選項中未設定 run to main 勾選後故障可排除。此外,燒寫器選...
stm32如何才能正常執行的除錯筆記
想使用野火或者安福來的 模板來學習這個stm32,畢竟他買使用量挺多的,風格尤其是安福來比較好,因此想試試他們的工程,但是弄了好長一段時間,微控制器就是不能執行,進入debug,就宕機,停在硬體錯誤或其他地方。後來想想,真是低階錯誤導致的,因此整理一下。今後遇到不能正常執行的情況下,先冷靜下來思考而...