STM32三種BOOT模式介紹

一、三種BOOT模式介紹

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

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

System memory
從系統存儲器啓動,這種模式啓動的程序功能是由廠家設置的。一般來說,這種啓動方式用的比較少。系統存儲器是芯片內部一塊特定的區域,STM32在出廠時,由ST在這個區域內部預置了一段BootLoader, 也就是我們常說的ISP程序, 這是一塊ROM,
出廠後無法修改。一般來說,我們選用這種啓動模式時,是爲了從串口下載程序,因爲在廠家提供的BootLoader中,提供了串口下載程序的固件,可以通過這個BootLoader將程序下載到系統的Flash中。但是這個下載方式需要以下步驟:
Step1:將BOOT0設置爲1,BOOT1設置爲0,然後按下復位鍵,這樣才能從系統存儲器啓動BootLoader
Step2:最後在BootLoader的幫助下,通過串口下載程序到Flash中
Step3:程序下載完成後,又有需要將BOOT0設置爲GND,手動復位,這樣,STM32纔可以從Flash中啓動可以看到, 利用串口下載程序還是比較的麻煩, 需要跳帽跳來跳去的,非常的不注重用戶體驗。

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

 二、開發BOOT模式選擇。

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

2、Flash鎖死解決辦法:

開發調試過程中,由於某種原因導致內部Flash鎖死,無法連接SWD以及Jtag調試,無法讀到設備,可以通過修改BOOT模式重新刷寫代碼。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章