<dl id="xausj"></dl>
    1. <ul id="xausj"><th id="xausj"></th></ul>

      <b id="xausj"></b>
      <cite id="xausj"></cite>
      <b id="xausj"><meter id="xausj"></meter></b>
      <dl id="xausj"><noframes id="xausj"></noframes></dl>
    2. 您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
      4新聞資訊
      您的位置: 首頁 ->  新聞資訊 -> 單片機(jī)

      ?關(guān)于STM32的BOOT0和BOOT1

      文章出處:單片機(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時間:
      2020
      11-10

      STM32一共有三種啟動模式,在ST官網(wǎng)上下載的RM0008中,可找到啟動相關(guān)的配置說明:

      翻譯為中文:




      STM32三種啟動模式對應(yīng)的存儲介質(zhì)均是芯片內(nèi)置的,它們是:
      1)用戶閃存 = 芯片內(nèi)置的Flash。
      2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。
      3)系統(tǒng)存儲器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時在這個區(qū)域預(yù)置了一段Bootloader,就是通常說的ISP程序。這個區(qū)
      域的內(nèi)容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM區(qū)。
       
      在每個STM32的芯片上都有兩個管腳BOOT0和BOOT1,這兩個管腳在芯片復(fù)位時的電平狀態(tài)決定了芯片復(fù)位后從哪個區(qū)域開始執(zhí)
      行程序,見下表:
      BOOT1=x   BOOT0=0   從用戶閃存啟動,這是正常的工作模式。
      BOOT1=0   BOOT0=1   從系統(tǒng)存儲器啟動,這種模式啟動的程序功能由廠家設(shè)置。
      BOOT1=1   BOOT0=1   從內(nèi)置SRAM啟動,這種模式可以用于調(diào)試。

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


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

      Step1:將BOOT0設(shè)置為1,BOOT1設(shè)置為0,然后按下復(fù)位鍵,這樣才能從系統(tǒng)存儲器啟動BootLoader
      Step2:最后在BootLoader的幫助下,通過串口下載程序到Flash中
      Step3:程序下載完成后,又有需要將BOOT0設(shè)置為GND,手動復(fù)位,這樣,STM32才可以從Flash中啟動


      可以看到,利用串口下載程序還是比較的麻煩,需要跳帽跳來跳去的,非常的不注重用戶體驗。


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

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


      上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

      CopyRight 2020-2025 www.pendragonrpg.com All rights reserved   滬ICP備2021005866號

      国产中文欧美日韩,色播在线永久免费视频,另类专区亚洲无码,亚洲中文字无码av

      <dl id="xausj"></dl>
      1. <ul id="xausj"><th id="xausj"></th></ul>

        <b id="xausj"></b>
        <cite id="xausj"></cite>
        <b id="xausj"><meter id="xausj"></meter></b>
        <dl id="xausj"><noframes id="xausj"></noframes></dl>