国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32】自舉模式 和 程序下載(ST-Link和串口示例)

這篇具有很好參考價值的文章主要介紹了【STM32】自舉模式 和 程序下載(ST-Link和串口示例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  • STM32官方網(wǎng)站
  • STM32中文社區(qū)

    如果遇到不清楚的概念,可以看之前的文章。

一、自舉模式

STM32有一個特殊的功能,就是可以通過不同的方式啟動程序,這就是所謂的自舉模式(Boot Mode)。

STM32的自舉模式由兩個引腳控制,分別是BOOT0BOOT1,它們可以接到不同的電平(高電平或低電平),從而決定STM32從哪里啟動程序。

STM32有三種自舉模式,分別是:

  • 主閃存模式Main Flash memory mode):這是默認的自舉模式,當BOOT0為低電平,BOOT1為任意電平時,STM32會從主閃存(Flash)中啟動程序。主閃存是STM32內(nèi)部的非易失性存儲器,可以通過編程工具或者內(nèi)置的串行引導加載器(serial bootloader)來燒寫程序。
  • 系統(tǒng)存儲器模式System memory mode):這是一種特殊的自舉模式,當BOOT0為高電平,BOOT1為低電平時,STM32會從系統(tǒng)存儲器中啟動程序。系統(tǒng)存儲器是STM32內(nèi)部的只讀存儲器(ROM),其中存放了一個串行引導加載器(serial bootloader),它可以通過串口、USB或者CAN等接口來接收外部的程序,并將其寫入主閃存或者外部的存儲器設(shè)備。
  • 嵌入式SRAM模式Embedded SRAM mode):這是一種調(diào)試用的自舉模式,當BOOT0為高電平,BOOT1為高電平時,STM32會從嵌入式SRAM中啟動程序。嵌入式SRAM是STM32內(nèi)部的易失性存儲器,它可以通過JTAG或者SWD等調(diào)試接口來加載程序。這種模式通常用于開發(fā)和測試階段,不適合生產(chǎn)環(huán)境。

自舉模式的選擇對于STM32的應用開發(fā)和調(diào)試非常重要,它可以影響STM32的啟動速度、安全性和靈活性。通過合理地利用自舉模式,可以實現(xiàn)不同的功能和需求,例如:

  • 通過串行引導加載器來更新程序,無需使用專用的編程工具或者拆卸設(shè)備。
  • 通過嵌入式SRAM模式來快速驗證程序的功能和性能,無需燒寫主閃存。
  • 通過主閃存模式來保證程序的穩(wěn)定性和安全性,防止被篡改或者損壞。

BOOT0 和 BOOT1 這2個引腳在開發(fā)板上是會明確標注的。但是當你去看芯片的引腳分布圖時,有可能只能看到BOOT0引腳,找不到BOOT1引腳,這是因為BOOT1引腳有可能是與其他引腳復用的。

STM32F103C8T6來說:64KB Flash+20KB SRAM(還有64KB ROM)。它的引腳是48個,LQFP封裝,它的引腳分布圖如下:
stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

BOOT0明確為44引腳。

BOOT1是與PB2復用的,即20引腳,在芯片手冊的引腳定義表格中可以看到:

stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

二、程序下載

一般情況下,我們的程序是下載到Flash中的。好比你在電腦上下載安裝軟件,安裝位置一般就是SSD(與Flash類似)。

下面介紹的3中方法對應系統(tǒng)存儲期模式和Flash模式(下載方法不限于下面3種)。

2.1 概述

(1)串行引導加載器(serial bootloader)

串行引導加載器是STM32內(nèi)置的一個程序,它存放在系統(tǒng)存儲器中(ROM),可以通過串口、USB或者CAN等接口來接收外部的程序,并將其寫入主閃存或者外部的存儲器設(shè)備。

  • 串行引導加載器的優(yōu)點是無需使用專用的編程工具或者拆卸設(shè)備,只需要一根數(shù)據(jù)線和一個電腦就可以完成下載。
  • 缺點是速度較慢,而且需要配置好自舉模式和接口參數(shù)。

要使用串行引導加載器下載程序,需要按照以下步驟進行:

  • 將STM32的BOOT0引腳接高電平,BOOT1引腳接低電平,選擇系統(tǒng)存儲器模式
  • 將STM32的串口、USB或者CAN接口連接到電腦上,并安裝相應的驅(qū)動程序。
  • 打開一個串口終端軟件(如PuTTY)、USB轉(zhuǎn)串口軟件(如STSW-LINK009)或者CAN轉(zhuǎn)串口軟件(如CANalyst-II),并設(shè)置好波特率、數(shù)據(jù)位、停止位等參數(shù)。
  • 復位STM32,并在終端軟件中發(fā)送一個0x7F字節(jié),以激活串行引導加載器。
  • 如果收到一個0x79字節(jié)的應答,表示串行引導加載器已經(jīng)準備好接收命令。如果沒有收到應答,可能是參數(shù)設(shè)置錯誤或者連接問題,需要檢查并重試。
  • 發(fā)送一個讀取命令(0x11),并指定要讀取的存儲器地址和長度。如果收到一個0x79字節(jié)的應答,表示命令有效。如果收到一個0x1F字節(jié)的應答,表示命令無效或者地址錯誤,需要檢查并重試。
  • 讀取返回的數(shù)據(jù),并校驗其正確性。
  • 發(fā)送一個擦除命令(0x43),并指定要擦除的扇區(qū)號。如果收到一個0x79字節(jié)的應答,表示命令有效。如果收到一個0x1F字節(jié)的應答,表示命令無效或者扇區(qū)號錯誤,需要檢查并重試。
  • 發(fā)送一個寫入命令(0x31),并指定要寫入的存儲器地址和數(shù)據(jù)。如果收到一個0x79字節(jié)的應答,表示命令有效。如果收到一個0x1F字節(jié)的應答,表示命令無效或者地址錯誤,需要檢查并重試。
  • 校驗寫入的數(shù)據(jù),并重復上述步驟直到所有數(shù)據(jù)都寫入完成。
  • 發(fā)送一個跳轉(zhuǎn)命令(0x21),并指定要跳轉(zhuǎn)的程序入口地址。如果收到一個0x79字節(jié)的應答,表示命令有效。如果收到一個0x1F字節(jié)的應答,表示命令無效或者地址錯誤,需要檢查并重試。
  • 復位STM32,并將BOOT0引腳接低電平,選擇主閃存模式。
  • STM32將從主閃存中啟動程序

中間的很多步驟看起來可能比較復雜,但是通常串口下載軟件可以代替我們完成這些工作,比如FlyMCU。

(2)JTAG(Joint Test Action Group)

JTAG是一種標準的測試和調(diào)試接口,它可以通過一根多芯的數(shù)據(jù)線來連接STM32和一個編程工具(如ST-LINK、J-LINK等),并通過一個調(diào)試軟件(如Keil、IAR等)來控制STM32的運行狀態(tài)和存儲器內(nèi)容。

  • JTAG的優(yōu)點是速度較快,而且可以實時監(jiān)視和修改STM32的寄存器和存儲器。
  • 缺點是需要使用專用的編程工具和調(diào)試軟件,而且可能會占用一些GPIO引腳。

要使用JTAG下載程序,需要按照以下步驟進行:

  • 將STM32的JTAG接口連接到編程工具上,并將編程工具連接到電腦上。
  • 打開一個調(diào)試軟件,并設(shè)置好目標芯片型號、時鐘頻率、下載地址等參數(shù)。
  • 選擇下載模式,并選擇要下載的程序文件。
  • 點擊下載按鈕,開始下載程序到STM32的存儲器中。
  • 點擊運行按鈕,開始運行程序。

(3)SWD(Serial Wire Debug)

SWD是一種簡化的JTAG接口,它只需要兩根數(shù)據(jù)線來連接STM32和一個編程工具(如ST-LINK、J-LINK等),并通過一個調(diào)試軟件(如Keil、IAR等)來控制STM32的運行狀態(tài)和存儲器內(nèi)容。

  • SWD的優(yōu)點是占用引腳少,而且可以實現(xiàn)和JTAG相同的功能。
  • 缺點是速度稍慢于JTAG,而且可能會影響一些GPIO引腳的功能。

要使用SWD下載程序,需要按照以下步驟進行:

  • 將STM32的SWD接口連接到編程工具上,并將編程工具連接到電腦上。
  • 打開一個調(diào)試軟件,并設(shè)置好目標芯片型號、時鐘頻率、下載地址等參數(shù)。
  • 選擇下載模式,并選擇要下載的程序文件。
  • 點擊下載按鈕,開始下載程序到STM32的存儲器中。
  • 點擊運行按鈕,開始運行程序。

2.2 實操

自己去官網(wǎng)下載相應的驅(qū)動并安裝:就是ST-Link和ch340等驅(qū)動,具體取決于你使用的工具。實在不會就找你的淘寶賣家要。不展開介紹了。

拿ST-Link來說,安裝驅(qū)動后,將設(shè)備連接到電腦可以看到:

stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

說明驅(qū)動安裝的沒問題。

2.21 SWD 方式下載(ST-Link)

這是最常用、最好用的方式之一??梢再I正版的ST-Link,也就100來塊,或者10幾塊買個自制的那種。(正版J-Link太貴了??)

很多設(shè)置設(shè)調(diào)試的時候用的,大概介紹一下。

引腳對應接線即可:(BOOT引腳按照Flash模式接線即可)
stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機
軟件是Keil的 MDK-ARM 5.38。

首先編譯生成hex文件,前面的文章對Keil的功能已經(jīng)完整介紹過了。
stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

options for target 下的Debug選項下選擇ST-Link,然后進入設(shè)置:

stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機
如果是第一次使用,有可能會提示你安裝或更新某些固件,按照指示操作即可。

進入設(shè)置會有如下4個選項:

stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

  • Debug:設(shè)置調(diào)試參數(shù),例如復位模式、復位腳、最大時鐘頻率、SWO頻率等。這些參數(shù)會影響調(diào)試器和目標板之間的通信和同步。
  • Trace:設(shè)置是否啟用跟蹤功能,以及選擇跟蹤模式、跟蹤端口、跟蹤時鐘頻率等。跟蹤功能可以實現(xiàn)對目標板的實時監(jiān)視和分析,例如顯示程序執(zhí)行流程、函數(shù)調(diào)用棧、變量值等。
  • Flash Download:設(shè)置是否在調(diào)試前自動下載程序到目標板的存儲器中,以及選擇要下載的存儲器設(shè)備和算法。這些設(shè)置會影響下載速度和成功率。
  • Pack:設(shè)置是否使用軟件包中提供的調(diào)試定義,以及選擇要使用的軟件包和配置文件。這些定義會提供調(diào)試連接和跟蹤功能的配置設(shè)置。

Debug:

  • Debug AdapterSW Device 是你的ST-Link參數(shù),只要你的ST-Link質(zhì)量沒問題、BOOT引腳設(shè)置正確、接線正確、板子正常、安裝了驅(qū)動,那么這里就會顯示相關(guān)信息,否則請逐一排查問題。
  • Target Com
    • port 用于選擇端口類型,我使用的是SWD(2跟線的,SWDIO和SWCLK)。
    • clock是時鐘設(shè)置,可以設(shè)置調(diào)試的速度。 Req:請求頻率 Selected:實際頻率。
  • Debug: 這是調(diào)試設(shè)置,根據(jù)需要設(shè)置即可。
    stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

Trace

  • Core Clock:核心時鐘頻率。設(shè)置跟當前板子相同的時鐘頻率,可以在調(diào)試時按實際運行時間進行追蹤調(diào)試。
  • Trace Enable:使能追蹤功能。
    stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

Flash Download

  • Download Function:
    • Erase Full Chip:擦除整片
    • Erase Sectors:擦除部分
    • Do not Erase:不擦除
    • 勾選Erase Full Chip時,每次下載時,都會對整片F(xiàn)lash進行擦除操作。勾選Erase Sectors時,下載時只會擦除使用到的扇區(qū)。勾選Do not Erase時,則下載時不擦除原本代碼。
    • Program:燒錄
    • Verify:校驗
    • Reset and Run:復位并運行
    • 勾選Program時,下載時才會把代碼寫入Flash,否則不寫入。勾選Verify時,則在燒錄代碼后,對代碼進行校驗。某些場合下不能檢驗,比如代碼段跟數(shù)據(jù)段分開下載,代碼里不包含數(shù)據(jù)部分,而工程里配置的代碼段又包含數(shù)據(jù)段時,此時如果進行校驗,可能會因為數(shù)據(jù)內(nèi)容不一致導致校驗失敗。勾選Reset and Run時,則在下載完成后立即復位運行代碼,不勾選時則需要手動復位運行。
  • Programming Algorithm:設(shè)置要下載的存儲器設(shè)備和算法,以及選擇要下載的扇區(qū)和地址范圍。一般選擇與目標板匹配的存儲器設(shè)備和算法。比如STM32F103C8T6就選擇中等容量(雖然它是64K不是128K)
    stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

Pack : 芯片對應的Pack
stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

全部設(shè)置完成后,點擊Download即可下載:
stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

下載完之后,按下板子上的reset即可運行你的、正確的程序。

2.22 串口下載

這種方式只需要串口轉(zhuǎn)USB即可完成,成本很低,是通過系統(tǒng)存儲中的程序(串行引導加載器),將程序下載到Flash中的方式。

  • BOOT設(shè)置:BOOT0=1,BOOT1=0

  • 接線:USB轉(zhuǎn)串口的TX和RX分別與板子的RX(PA10)和TX(PA9)相連(不是同名相連哦),電源正常接線。

  • 軟件:FlyMCU

首先搜索串口,選擇有USBxxxCH340字樣的端口。

讀取器件信息示例(需要按一下reset):這說明連接正常,顯示的信息不一定準確哦,具體看Datasheet。

stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

下載程序:

選擇Keil生成的hex文件,點擊開始編程即可,設(shè)置按照上圖。

  • 這里是 FlyMcu 對一鍵下載電路的控制過程,其實就是控制DTR和RTS電平的變化,控制BOOT0和RESET,從而實現(xiàn)自動下載。
  • STM32每次下載程序時,需要先將整片擦除,擦除速度比較慢,整個過程可能需要幾十秒鐘時間。
  • 下載成功后,會出現(xiàn)“共寫入 xxxx KB,進度100%,耗時 xxxx 毫秒”的提示,并且下方的進度條會全綠。

stm32 自舉,Embedded Systems,stm32,嵌入式硬件,單片機

程序是下載到Flash的,所以下載完后,記得把BOOT0設(shè)為0。



結(jié) ~ 文章來源地址http://www.zghlxwxcb.cn/news/detail-757408.html

到了這里,關(guān)于【STM32】自舉模式 和 程序下載(ST-Link和串口示例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • ST-Link下載程序后需要復位才可以執(zhí)行程序

    ST-Link下載程序后需要復位才可以執(zhí)行程序

    1、使用正點原子的阿波羅開發(fā)板(STM32F429),他原本有一個ST-Link V2但是需要插到20腳的卡座中,我覺得插拔有些費勁。(20腳的可以正常下載和調(diào)試)于是就將原來的ST-Link用杜邦線將ST-Link和開發(fā)板中對應的引腳進行連接但是出現(xiàn)了奇怪的現(xiàn)象。 現(xiàn)象: ? ? ? 在用MDK(KEIL)

    2024年02月14日
    瀏覽(16)
  • STM32使用ST-Link下載器下載正確操作方式以及ST-LINK下載失敗“target dll has been cancelled”等錯誤

    STM32使用ST-Link下載器下載正確操作方式以及ST-LINK下載失敗“target dll has been cancelled”等錯誤

    ST-LINK V2 ST-Link是ST意法半導體為評估、開發(fā)STM8/STM32系列MCU而設(shè)計的集在線仿真與下載為一體的開發(fā)工具,支持JTAG/SWD/SWIM三種模式。 支持所有帶SWIM接口的STM8系列單片機 支持所有帶JTAG/SWD接口的STM32系列單片機 我們使用C8T6開發(fā)時,往板子里面下載程序,使用ISP串口比較繁瑣,

    2023年04月08日
    瀏覽(82)
  • STM32——ST-Link v2調(diào)試下載器的連接方法【詳解】

    STM32——ST-Link v2調(diào)試下載器的連接方法【詳解】

    在網(wǎng)上購買了STM32F103C8T6的最小系統(tǒng)開發(fā)板,由于手頭上沒有官方的STM32調(diào)試器,所以也同時購買了一個便宜的st-link v2下載調(diào)試器? 這種下載器和STM32的最小系統(tǒng)板之間完成調(diào)試通信需要連接四根線,連接圖如下所示? 其實這里最需要注意的是方向問題,這種插針座都是有一個

    2023年04月09日
    瀏覽(53)
  • JLINK仿真器用SWD模式下載程序,和stm32的連線說明

    JLINK仿真器用SWD模式下載程序,和stm32的連線說明

    stm32上的jlink接口有20個,然而并不是所有的接口都是必須的,在網(wǎng)上找了一些資料,想用杜邦線連接stm32和jlink仿真器,因為排線實在難插拔。 試了一下只需三根線就可以下載和調(diào)試,分別是1、7、9三根線;閱讀方法,缺口朝上。下面附圖:(20腳實際上可以不接,但是VCC一定要

    2024年02月15日
    瀏覽(26)
  • 使用STM32 ST-LINK Utility 燒錄程序,ST LINK燒錄程序,解鎖FLASH

    使用STM32 ST-LINK Utility 燒錄程序,ST LINK燒錄程序,解鎖FLASH

    :ST LINK燒錄程序,STLINK燒錄程序,ST-LINK燒錄程序,STLINK燒錄程序,ST LINK解鎖Flash ST-LINK Utility下載:文末附帶下載地址,免費下載、免積分下載。 使用 ST-Link 連接 STM32芯片,打開STM32 ST-LINK Utility 軟件, 連接芯片:Tarage ?- connec t或直接點擊連接快捷按鈕(如下圖)。

    2024年02月04日
    瀏覽(43)
  • 《 STM32 ST-LINK Utility 》__代碼下載工具下載、安裝和使用說明(小白也能懂)

    目錄 一、什么是STM32 ST-LINK Utility? 二、STM32 ST-LINK Utility有什么用? 三、官方途徑下載軟件! 四、我的資源 五、安裝 六、怎么用? 1、比如我們經(jīng)常使用的Keil是如何生成hex 2、讀取STM32內(nèi)部FLASH及芯片信息 3、打開hex程序 4、下載程序? (* ̄︶ ̄)創(chuàng)作不易!期待你們的 點贊、

    2024年02月06日
    瀏覽(24)
  • STM32程序下載——ISP下載

    STM32程序下載——ISP下載

    ISP (Iin-System Programming)在系統(tǒng)可編程,ISP是一種通用的程序下載方式。 串口下載方式即ISP方式。在PC端可以通過專用軟件,比如 FlyMCU 、MCUISP等,通過串口將 hex 文件下載到芯片中。 工具: 一塊stm32f103c8t6開發(fā)板(或者最小系統(tǒng)板);若干跳線;面包板一塊;電源(或者電源模

    2024年02月12日
    瀏覽(93)
  • STM32 使用串口下載程序

    STM32 使用串口下載程序

    在ROM區(qū)的0x0800 0000位置,存儲的就是編譯后的程序代碼,你把什么程序?qū)懭氲竭@個位置,STM32就執(zhí)行什么樣的程序。如果想使用串口下載程序的話,我們只需要把數(shù)據(jù)通過串口發(fā)送給STM32,STM32接收數(shù)據(jù),然后刷新到0x0800 0000這一塊位置就行了。但是接收并轉(zhuǎn)存數(shù)據(jù),這個過程本

    2024年02月05日
    瀏覽(22)
  • STM32_串口下載程序

    STM32_串口下載程序

    使用調(diào)試器下載程序又快有穩(wěn)定還能使用調(diào)試功能,當然是下載調(diào)試的首選。但是拓展下串口下載程序的知識作為下載的備選方案也是很有必要的。 ICP :使用SWD接口進行燒錄,如J-Link燒錄器和J-Flash軟件配合使用。 ISP :使用引導程序(Bootload)加上外圍UART/USB等接口進行燒錄

    2024年01月16日
    瀏覽(15)
  • stm32之使用串口下載程序

    stm32之使用串口下載程序

    1 stm32常用的程序下載方式 將程序下載到stm32芯片通常有以下三種方式: 串口轉(zhuǎn)USB:需要用到一個CH340芯片,網(wǎng)上購買stm32基礎(chǔ)套件時一般會有使用該芯片連接USB的模塊,連接該芯片時需要占用芯片的USTART_TX和USTART_RX,分別對應芯片的PA9和PA10 SWD方式:例如,st-link v2,需要使用

    2024年04月13日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包