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


  今天程序燒錄后,進行調試時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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM