新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32 boot[1:0]設置

        STM32 boot[1:0]設置

        作者: 時間:2016-11-22 來源:網絡 收藏
          (1)STM32上電時鎖存BOOT[1:0],決定從何處啟動

          
          在RAM中調試時,已經上電成功,BOOT的狀態已經沒有作用。
          
          IDE軟件自動地把程序下載到RAM,并在RAM調試運行。
          
          (2)
          
          熱啟動時應該有用,比如上電時是從flash中啟動,然后用戶程序把代碼寫到SRAM里,之后就可以改變BOOT腳的跳線,然后按下復位按鍵,程序就可以從SRAM中運行了.不過看起來不怎么實用。
          (3)
          
          理論上說
          
          只是在復位后的第四個SYSCLK的上升沿鎖定BOOT引腳的值,從而決定代碼從哪里:Flash還是SRAM啟動。
          
          但是使用MDK時需要注意,項目使用的連接文件flah linker file還是ram linker file,要和BOOT搭配:就是說,如果配置在flash中調試運行代碼,則BOOT要配置成從Flash啟動;若果配置成在ram中調試運行代碼,則 BOOT要配置成從SRAM啟動。
          
          使用IAR沒有這個限制哦。
          
          
          
          在STM32F10x里,可以通過BOOT[1:0]引腳選擇三種不同啟動模式。
          表3 BOOT 模式選擇
          啟動模式選擇管腳
          BOOT0 BOOT1 啟動模式 說明
          0 X 用戶閃存存儲器 用戶閃存存儲器被選為啟動區域
          1 0 系統存儲器 系統存儲器被選為啟動區域
          1 1 內嵌SRAM 內嵌 SRAM被選為啟動區域

        本文引用地址:http://www.104case.com/article/201611/319693.htm


          通過設置選擇管腳,對應到各種啟動模式的不同物理地址將被映像到第0塊(啟動存儲區)。在
          系統復位后,SYSCLK的第4個上升沿,BOOT管腳的值將被鎖存。用戶可以通過設置BOOT1
          和BOOT0引腳的狀態,來選擇在復位后的啟動模式。

        ...............................
        在flash 或 RAM中調試時 與BOOT[1:0]的狀態無關。
        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(GND)。只是在ISP下載的情況下,BOOT0=1,BOOT1=0 ,下載完成后,把BOOT0 的跳線接回0,也即BOOT0=0,BOOT1=0 。

        對于一般的應用來說,直接把BOOT0 和BOOT1 引腳接地即可,不用設置跳線,使用IAR 調試程序時可以選擇RAM 調試還是Flash 調試,與BOOT0 和BOOT1 的配置無關。



        關鍵詞: STM32boo

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 青州市| 永平县| 綦江县| 河北区| 历史| 修武县| 云安县| 应用必备| 惠来县| 玉环县| 惠东县| 绥江县| 比如县| 于田县| 横山县| 景谷| 栾城县| 安庆市| 江北区| 昌黎县| 两当县| 新津县| 浠水县| 无锡市| 新乐市| 织金县| 淮安市| 涞源县| 宜宾县| 德清县| 甘德县| 福清市| 汉阴县| 灵寿县| 商水县| 大英县| 丰原市| 印江| 任丘市| 岳西县| 宁海县|