STM32學習的總結編譯除錯錯誤
一、JILINK下載程式時,出現“ FLASH timeout,Reset the Target and try it again ”錯誤
遇到這個問題,要檢測TARGET選擇的晶片型號與你使用的晶片型號是否一致。我遇到過這個問題,就是因為我兩個晶片型號不一致所引起
的。具體錯誤如下所示:
具體的修改過程如下所示:
1、首先確定晶片的型號,如下所示:
2、晶片型號選擇好之後,接下來就需要選擇下載器,我用的是JLINK,如下圖所示。
3、選擇合適的FLASH演算法配置。
新增新的FLASH配置之後,將之前的FLASH配置刪去,如下圖所示。
4、儲存配置,重新編譯之後就可以下載了。
二、JLINK在除錯時出現“could not stop cortex-M device,please check the JTAG cable”
查看了多位網友的帖子,有以下幾個原因(不一定都對呦):
1、可能是因為將處理器的復位腳直接連線到GND,所以,沒有復位訊號來使MCU停止。
2、可能是JTAG的時鐘配置的不正確,將其接到RTCK。
3、當系統的頻率過高時,會導致該錯誤的發生。(換個頻率較低的晶振,或者檢查一下時鐘配置,看是否是倍頻設定的過高。)
4、看看你是否使用了看門狗,看門狗復位也會造成該錯誤的發生。
我的就是第四個原因,開啟了看門狗,將看門狗關閉就可以使用JLINK除錯了。
三、JLINK除錯時出現以下錯誤資訊:
JLINK warning:CPU could not be halted
JLINK error:can not read register 0(R0) while CPU is running
JLINK error:can not read register 1(R1) while CPU is running
JLINK error:can not read register 2(R2) while CPU is running
......
參考多位網友的帖子,原因可能有以下幾點:
1、設定debug->setting->dubug->connect & reset options -> reset 選項沒有設定正確,應該設定為normal。
2、BOOTO與BOOT1的設定是否正確。
3、JLINK功能是否關閉。我的就是為了降低功耗將所有的IO都下拉所致,在除錯的過程中,關閉該函式就可以了。