1. 程式人生 > >Could not stop Cortex-M device! please check the JTAG cable的解決辦法

Could not stop Cortex-M device! please check the JTAG cable的解決辦法

cortex-m 發現 ont ima could not step tps detail img

今天程序燒錄後,進行調試時keil提示:Could not stop Cortex-M device! please check the JTAG cable

如圖:

技術分享圖片

於是我在網上搜了一下,發現與stm32的三種啟動方式有關(我聽信別人,如果使用swd下載程序,則boot0就可以懸空,才導致出現flash鎖死),於是我將程序擦除後,並用短接帽將boot0接地,boot1此時可以作它用,重新進入調試時,就可以正常使用的了。

stm32的3種啟動模式:

技術分享圖片

(1) 用戶閃存 : 正常的工作模式。STM32內置的Flash,一般我們使用JTAG或者SWD模式下載程序時,就是下載到這個裏面,重啟後也直接從這啟動程序。


(2)SRAM: 芯片內置的RAM區, 就是內存,既然是SRAM,自然也就沒有程序存儲的能力了,這個模式一般用於程序調試。

(3)系統存儲器: 系統存儲器是芯片內部一塊特定的區域,STM32在出廠時,由ST廠家在這個區域內部預置了一段BootLoader,也就是我們常說的ISP程序,這是一塊ROM,出廠後無法修改。一般來說,我們選用這種啟動模式時,是為了從串口下載程序,因為在廠家提供的BootLoader中,提供了串口下載程序的固件,可以通過這個BootLoader將程序下載到系統的Flash中。但是這個下載方式需要以下步驟:

Step1:將BOOT0設置為1,BOOT1設置為0,然後按下復位鍵,這樣才能從系統存儲器啟動BootLoader;

Step2:最後在BootLoader的幫助下,通過串口下載程序到Flash中;

Step3:程序下載完成後,又有需要將BOOT0設置為GND,手動復位,這樣,STM32才可以從Flash中啟動

可以看到,利用串口下載程序還是比較的麻煩,需要跳帽跳來跳去的,非常的不註重用戶體驗。一般來說,這種啟動方式用的比較少。

三種啟動模式可參考:https://blog.csdn.net/wwt18811707971/article/details/78678059

Could not stop Cortex-M device! please check the JTAG cable的解決辦法