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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

STM32启动模式详解

發布時間:2025/4/5 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32启动模式详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、三種boot啟動模式:

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


1、第一種方式(boot0 = 0):Flash memory啟動方式。啟動地址:0x08000000 (stm32F207系列)

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

? ? 基本上都是采用這種模式。

2、第二種方式(boot0 = 1;boot1 = 0:System memory啟動方式。啟動地址:0x1FFF0000 (stm32F207系列)

? ??從系統存儲器啟動,這種模式啟動的程序功能是由廠家設置的。一般來說,這種啟動方式用的比較少。系統存儲器是芯片內部一塊特定的區域,STM32在出廠時,由ST在這個區域內部預置了一段BootLoader, 也就是我們常說的ISP程序, 這是一塊ROM,出廠后無法修改。一般來說,我們選用這種啟動模式時,是為了從串口下載程序,因為在廠家提供的BootLoader 中,提供了串口下載程序的固件,可以通過這個BootLoader將程序下載到系統的Flash中。但是這個下載方式需要以下步驟:

Step1:將BOOT0設置為1,BOOT1設置為0,然后按下復位鍵,這樣才能從系統存儲器啟動BootLoader

Step2:最后在BootLoader的幫助下,通過串口下載程序到Flash中
Step3:程序下載完成后,又有需要將BOOT0設置為GND,手動復位,這樣,STM32才可以從Flash中啟動可以看到, 利用串 口下載程序還是比較的麻煩,需要跳帽跳來跳去的,非常的不注重用戶體驗。

3、第三種方式(boot0 = 1;boot1 = 1):SRAM啟動方式。啟動地址:0x20000000(stm32F207系列)

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


二、關于啟動地址:

? ??理論上,CM3中規定上電后CPU是從0地址開始執行,但是這里中斷向量表卻被燒寫在0x0800 0000地址里(Flash memory啟動方式),那啟動時不就找不到中斷向量表了?既然CM3定下的規矩是從0地址啟動,SMT32當然不能破壞ARM定下的“規矩”,所以它做了一個啟動映射的過程,就是和芯片上總能見到的BOOT0和BOOT1有關了,當選擇從主Flash啟動模式后,芯片一上電,Flash的0x0800 0000地址被映射到0地址處,不影響CM3內核的讀取,所以這時的CM3既可以在0地址處訪問中斷向量表,也可以在0x0800 0000地址處訪問中斷向量表,而代碼還是在0x0800 0000地址處存儲的。


三、關于flash死鎖的解決辦法(Flash memory啟動方式):

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

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



? ?


? ??

總結

以上是生活随笔為你收集整理的STM32启动模式详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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