STM32三种启动模式 boot0 boot1
STM32三種啟動模式對應的存儲介質均是芯片內置的,它們是:
1)用戶閃存=芯片內置的Flash。
2)SRAM=芯片內置的RAM區,就是內存啦。
3)系統存儲器=芯片內部一塊特定的區域,芯片出廠時在這個區域預置了一段Bootloader,就是通常說的ISP程序。這個區域的內容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM區。
在每個STM32的芯片上都有兩個管腳BOOT0和BOOT1,這兩個管腳在芯片復位時的電平狀態決定了芯片復位后從哪個區域開始執行程序,見下表:
BOOT1=xBOOT0=0從用戶閃存啟動,這是正常的工作模式。
BOOT1=0BOOT0=1從系統存儲器啟動,這種模式啟動的程序功能由廠家設置。
BOOT1=1BOOT0=1從內置SRAM啟動,這種模式可以用于調試。
-----------------------------------------------------------------------------------------------------------------------------
原文鏈接:http://blog.csdn.net/daunxx/article/details/40148945
在畫STM32的電路圖的時候,關于STM32的啟動方式糾結了一下,現有的參考設計都是在STM32的啟動選擇引腳BOOT0和BOOT1上使用了跳帽,用以人工選擇STM32的啟動方式,但是在實際應用中這種設計就顯得冗余,所以這里順帶研究了一下STM32的啟動方式。
STM32一共有三種啟動模式,在ST官網上下載的RM0008中,我找到了啟動相關的配置說明:
所謂啟動,一般來說就是指我們下好程序后,重啟芯片時,SYSCLK的第4個上升沿,BOOT引腳的值將被鎖存。用戶可以通過設置BOOT1和BOOT0引腳的狀態,來選擇在復位后的啟動模式。
?MainFlashmemory
是STM32內置的Flash,一般我們使用JTAG或者SWD模式下載程序時,就是下載到這個里面,重啟后也直接從這啟動程序。
?Systemmemory
從系統存儲器啟動,這種模式啟動的程序功能是由廠家設置的。一般來說,這種啟動方式用的比較少。
系統存儲器是芯片內部一塊特定的區域,STM32在出廠時,由ST在這個區域內部預置了一段BootLoader,也就是我們常說的ISP程序,這是一塊ROM,出廠后無法修改。
一般來說,我們選用這種啟動模式時,是為了從串口下載程序,因為在廠家提供的BootLoader中,提供了串口下載程序的固件,可以通過這個BootLoader將程序下載到系統的Flash中。但是這個下載方式需要以下步驟:
Step1:將BOOT0設置為1,BOOT1設置為0,然后按下復位鍵,這樣才能從系統存儲器啟動BootLoader
Step2:最后在BootLoader的幫助下,通過串口下載程序到Flash中
Step3:程序下載完成后,又有需要將BOOT0設置為GND,手動復位,這樣,STM32才可以從Flash中啟動
可以看到,利用串口下載程序還是比較的麻煩,需要跳帽跳來跳去的,非常的不注重用戶體驗。
?EmbeddedMemory
內置SRAM,既然是SRAM,自然也就沒有程序存儲的能力了,這個模式一般用于程序調試。
假如我只修改了代碼中一個小小的地方,然后就需要重新擦除整個Flash,比較的費時,可以考慮從這個模式啟動代碼(也就是STM32的內存中),用于快速的程序調試,等程序調試完成后,在將程序下載到SRAM中。
綜上所述,在我的設計中,我將BOOT0和BOOT1通過一個100k的下拉電阻,直接接地。
轉載于:https://www.cnblogs.com/CodeWorkerLiMing/p/9645096.html
總結
以上是生活随笔為你收集整理的STM32三种启动模式 boot0 boot1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最大熵模型中的数学推导
- 下一篇: 【setup.py编译出错】——提示无法