STM32三種BOOT模式介紹

1、三種BOOT模式介紹

所謂啓動,通常來講就是指咱們下好程序後,重啓芯片時,SYSCLK的第4個上升沿,BOOT引腳的值將被鎖存。用戶能夠經過設置BOOT1和BOOT0引腳的狀態,來選擇在復位後的啓動模式html

 

如圖所示,通常狀況下若是咱們想用用串口下載代碼,則必須配置BOOT0爲 1, BOOT1爲 0,而若是想讓 STM32 一按復位鍵就開始跑代碼,則須要配置 BOOT0 爲 0,BOOT1 隨便設。spa

1,第一種啓動方式是最經常使用的用戶FLASH啓動。默認啓動方式。調試

2, 第二種啓動方式是STM32內嵌的SRAM啓動。該模式用於調試 第三種啓動方式是系統存儲器啓動方式。STM32中自帶的BootLoader就是在這種啓動方式中,若是出現程序硬件錯誤的話能夠切換BOOT0/1到該模式下從新燒寫Flash便可恢復正常。htm

Main Flash memoryblog

是STM32內置的Flash,通常咱們使用JTAG或者SWD模式下載程序時,就是下載到這個裏面,重啓後也直接從這啓動程序。接口

System memory內存

從系統存儲器啓動,這種模式啓動的程序功能是由廠家設置的。通常來講,這種啓動方式用的比較少。系統存儲器是芯片內部一塊特定的區域,STM32在出廠時,由ST在這個區域內部預置了一段BootLoader, 也就是咱們常說的ISP程序, 這是一塊ROM,出廠後沒法修改。通常來講,咱們選用這種啓動模式時,是爲了從串口下載程序,由於在廠家提供的BootLoader中,提供了串口下載程序的固件,能夠經過這個BootLoader將程序下載到系統的Flash中。可是這個下載方式須要如下步驟:開發

Step1:將BOOT0設置爲1,BOOT1設置爲0,而後按下復位鍵,這樣才能從系統存儲器啓動BootLoaderget

Step2:最後在BootLoader的幫助下,經過串口下載程序到Flash中用戶體驗

Step3:程序下載完成後,又有須要將BOOT0設置爲GND,手動復位,這樣,STM32才能夠從Flash中啓動能夠看到, 利用串口下載程序仍是比較的麻煩, 須要跳帽跳來跳去的,很是的不注重用戶體驗。

Embedded Memory

內置SRAM,既然是SRAM,天然也就沒有程序存儲的能力了,這個模式通常用於程序調試。假如我只修改了代碼中一個小小的地方,而後就須要從新擦除整個Flash,比較的費時,能夠考慮從這個模式啓動代碼(也就是STM32的內存中),用於快速的程序調試,等程序調試完成後,在將程序下載到SRAM中。

2、開發BOOT模式選擇

一、一般使用程序代碼存儲在主閃存存儲器,配置方式:BOOT0=0,BOOT1=X;

二、Flash鎖死解決辦法:

開發調試過程當中,因爲某種緣由致使內部Flash鎖死,沒法鏈接SWD以及Jtag調試,沒法讀到設備,能夠經過修改BOOT模式從新刷寫代碼。

修改成BOOT0=1,BOOT1=0便可從系統存儲器啓動,ST出廠時自帶Bootloader程序,SWD以及JTAG調試接口都是專用的。從新燒寫程序後,可將BOOT模式從新更換到BOOT0=0,BOOT1=X便可正常使用。

 

轉自:http://m.elecfans.com/article/655117.html

相關文章
相關標籤/搜索