STM32 BOOT 引腳配置的說明
用戶閃存:BOOT1=x BOOT0=0 芯片內置的Flash。
SRAM:BOOT1=1 BOOT0=1 芯片內置的RAM 區(qū),就是內存啦。
系統(tǒng)存儲器:BOOT1=0 BOOT0=1 芯片內部一塊特定的區(qū)域,芯片出廠時在這個區(qū)域預置了一段Bootloader,就是通常說的ISP程序。這個區(qū)域的內容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM 區(qū)。
在每個STM32的芯片上都有兩個管腳BOOT0和BOOT1,這兩個管腳在芯片復位時的電平狀態(tài)決定了芯片復位后從哪個區(qū)域開始執(zhí)行程序,見下表:
BOOT1=x BOOT0=0 從用戶閃存啟動,這是正常的工作模式。
BOOT1=0 BOOT0=1 從系統(tǒng)存儲器啟動,這種模式啟動的程序功能由廠家設置。
BOOT1=1 BOOT0=1 從內置SRAM 啟動,這種模式可以用于調試。
要注意的是,一般不使用內置SRAM 啟動(BOOT1=1 BOOT0=1),因為SRAM 掉電后數據就丟失。多數情況下SRAM 只是在調試時使用,也可以做其他一些用途。如做故障的局部診斷,寫一段小程序加載到SRAM 中診斷板上的其他電路,或用此方法讀寫板上的Flash 或EEPROM 等。還可以通過這種方法解除內部Flash 的讀寫保護,當然解除讀寫保護的同時Flash 的內容也被自動清除,以防止惡意的軟件拷貝。
一般BOOT0 和BOOT1 跳線都跳到0(GND)。只是在ISP下載的情況下,BOOT0=1,BOOT1=0 ,下載完成后,把BOOT0 的跳線接回0,也即BOOT0=0,BOOT1=0 。
對于一般的應用來說,直接把BOOT0 和BOOT1 引腳接地即可,不用設置跳線,使用IAR 調試程序時可以選擇RAM 調試還是Flash 調試,與BOOT0 和BOOT1 的配置無關。
評論