日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32关于BOOT0和BOOT1设置,去掉Debug后完成硬件独立运行。

發布時間:2025/6/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32关于BOOT0和BOOT1设置,去掉Debug后完成硬件独立运行。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BOOT0和BOOT1
STM32三種啟動模式對應的存儲介質均是芯片內置的,它們是:
1)用戶閃存 = 芯片內置的 Flash。
2)SRAM = 芯片內置的 RAM區,就是內存啦。

3)系統存儲器= 芯片內部一塊特定的區域,芯片出廠時在這個區域預置了一段 Bootloader,就是通常說的 ISP程序。這個區域的內容在芯片出廠后沒有人能夠修改或擦除,即它是一個 ROM區。


在每個 STM32的芯片上都有兩個管腳 BOOT0和 BOOT1,這兩個 管腳在芯片復位時的電平狀態決定了芯片復位后從哪個區域開始執 行程序,見下表:
BOOT1=x BOOT0=0 從用戶閃存啟動,這是正常的工作模式。
BOOT1=0 BOOT0=1 從系統存儲器啟動,這種模式啟動的程 序功能由廠家設置。

BOOT1=1 BOOT0=1 從內置 SRAM啟動,這種模式可以用于調試。


要注意的是,一般不使用內置 SRAM 啟動(BOOT1=1?BOOT0=1),因為SRAM掉電后數據就丟失。多數情況下 SRAM只是在調試時使用,也可以做其他一些用途。如做故障的局部診斷,寫一段小程序加載到 SRAM中診斷板上的其他電路,或用此方法讀寫板上的 Flash 或 EEPROM 等。還可以通過這種方法解除內部Flash的讀寫保護,當然解除讀寫保護的同時 Flash的內容也被自動清除,以防止惡意的軟件拷貝。一般 BOOT0和 BOOT1跳線都跳到 0(地)。只是在 ISP下載的情況下,BOOT0=1,BOOT1=0 ,下載完成后,把BOOT0的跳線接回0,也即BOOT0=0,BOOT1=0 。

插曲:筆者曾經做過一個項目,拿到一塊別人的板子和程序來修改,后來做了塊板子,燒錄程序后發現:燒錄后通過燒錄工具的“燒錄后運行”選項可以正常跑起來,但一旦使程序從FLASH開始運行,則跑不了了。后來發現別人板子上的MCU是燒錄過boot的,而自己做的板子是沒有燒錄boot的,前者程序從0x8003000開始運行,后者程序實際從0x8000000開始運行,把0x8003000處開始運行的程序燒到0x8000000的板子上的結果就是:復位向量地址不正確,導致芯片無法啟動,因為0x8003000的程序把中斷向量表搬到了0x8003000處。


總結

以上是生活随笔為你收集整理的STM32关于BOOT0和BOOT1设置,去掉Debug后完成硬件独立运行。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。