[導(dǎo)讀]STM32CubeProgrammer(STM32CubeProg)是STM32微控制器的專用編程工具。
STM32CubeProgrammer(STM32CubeProg)是STM32微控制器的專用編程工具。
STM32用戶都知道,當(dāng)完成程序調(diào)試,需要對(duì)芯片進(jìn)行程序代碼燒錄編程,一般會(huì)有三個(gè)選擇:
-
通過(guò)調(diào)試接口【JTAG/SWD】來(lái)燒寫程序,一般要使用STLink Utility或STVP工具軟件來(lái)完成;
-
通過(guò)UART接口來(lái)燒寫程序,需要下載基于PC端的flash 燒錄工具軟件STM32 Flash loader demonstrator配合;
-
通過(guò)USB接口來(lái)燒寫程序,需下載USB DfuSe工具軟件來(lái)實(shí)現(xiàn)。
2017年底,ST推出了多合一燒錄工具STM32CubeProgrammer,以其高集成度支持上述三類編程接口,還兼具其它更多功能。
STM32CubeProg?不斷迭代,至2020年10月,更新至最新版?STM32CubeProgrammer?2.5.0(點(diǎn)擊即可下載),增添更多新功能。
STM32Cube 軟件家族中的 STM32CubeProgrammer 是 STM32 MCU 專用編程工具。它支持通過(guò)STLink的SWD/JTAG調(diào)試接口對(duì)STM32 MCU的片上存儲(chǔ)器進(jìn)行擦除和讀寫操作;或者通過(guò)UART,USB, I2C,SPI,CAN等通信接口,利用出廠時(shí)固化在芯片內(nèi)部的系統(tǒng)bootloader,對(duì)STM32 MCU的片上存儲(chǔ)器進(jìn)行擦除和讀寫操作。這里需要說(shuō)明的是STLink v2僅支持通過(guò)UART和USB通信接口對(duì)片上存儲(chǔ)器進(jìn)行操作,而STLink v3增加了SPI,I2C和CAN通信接口的支持。除此以外,STM32CubeProgrammer 還可以操作STM32 MCU的選項(xiàng)字節(jié)和一次性可編程字節(jié)。通過(guò) STM32CubeProgrammer 提供的或者自己編寫的外部 external loader,還可以對(duì)外部存儲(chǔ)器進(jìn)行編程。
STM32CubeProgrammer 提供了圖形化和命令行兩種用戶界面。此外,STM32CubeProgrammer 還提供了C++ API, 用戶可以將 STM32CubeProgrammer 的功能集成到自己所開發(fā)的PC端應(yīng)用中。
圖形化用戶界面如上圖所示,在右側(cè)的配置區(qū)域,用戶可以選擇通過(guò)STLink調(diào)試接口,或者USB、UART等通信接口連接到STM32微控制器。連接到STM32 微控制器后,在“Device information”區(qū)域可以看到當(dāng)前MCU的型號(hào),版本和Flash大小等信息。如果連接的是ST官方的開發(fā)板,還會(huì)顯示該開發(fā)板的名稱。
那么,這里顯示的信息都是來(lái)自哪里呢?其中“CPU“型號(hào),也就是內(nèi)核型號(hào),從內(nèi)核的CPUID 只讀寄存器讀得,該寄存器的說(shuō)明在各個(gè)芯片系列對(duì)應(yīng)的編程手冊(cè)中可以查到,比如STM32F7對(duì)應(yīng)的編程手冊(cè)PM0253;芯片型號(hào)”Device ID“和芯片版本”RevisionID”分別來(lái)自STM32MCU的DBGMCU_IDC只讀寄存器中的Device ID字段和Revision字段。Flash大小“Flash size”的值,可以從系統(tǒng)Flash的Flash size只讀寄存器中讀到。這些寄存器的說(shuō)明都可以在各個(gè)芯片系列對(duì)應(yīng)的參考手冊(cè)中的“調(diào)試支持”和“設(shè)備電子簽名”章節(jié)找到,比如STM32H743的參考手冊(cè)RM0433。開發(fā)板名稱“Board”對(duì)應(yīng)的信息,存儲(chǔ)在板載的STLink中,所以只有用ST開發(fā)板自身板載的STLink進(jìn)行連接時(shí)才能看到這個(gè)信息。
在STM32CubeProgrammer最左側(cè)一欄可以在不同的功能標(biāo)簽頁(yè)之間切換,進(jìn)行不同的操作。
接下來(lái),我們會(huì)對(duì)STM32CubeProgrammer的主要功能進(jìn)行介紹,關(guān)于STM32CubeProgrammer的具體操作步驟,請(qǐng)參考”UM2237-STM32CubeProgrammer軟件工具介紹”。
STM32CubeProgrammer支持按扇區(qū)對(duì)Flash進(jìn)行擦除和全片擦除。可以導(dǎo)入多種格式的執(zhí)行文件進(jìn)行燒錄,支持的文件格式有:二進(jìn)制文件(.bin),elf文件(.elf,.axf,.out),hex文件(.hex)和摩托羅拉的S-record文件(.srec)。
通過(guò)STLink與目標(biāo)MCU建立連接后,在“Erasing&Programming”頁(yè)面下,可以按扇區(qū)對(duì)flash進(jìn)行擦除,或者選擇“Fullchiperase”按鈕,進(jìn)行全片擦除。
在“Erasing&Programming”頁(yè)面下,點(diǎn)擊“Browse”按鈕導(dǎo)入可執(zhí)行文件,然后點(diǎn)擊“StartProgramming”進(jìn)行燒錄。
也可以在“Memory&fileedition”頁(yè)面下,打開要燒錄的可執(zhí)行文件,然后點(diǎn)擊“download”進(jìn)行燒錄。
在“Memory&fileedition”?的
“Device Memory”頁(yè)面下,還可以讀出當(dāng)前指定地址范圍的MCU存儲(chǔ)器值,并通過(guò)“SaveAs”菜單將讀出的內(nèi)容保存為二進(jìn)制文件(.bin), hex文件(.hex)或S-record文件(.srec)。
除了前面介紹的燒錄整個(gè)可執(zhí)行文件的方式以外,還可以在“Memory&fileedition”?
的
?“Device Memory”頁(yè)面下直接修改某個(gè)地址的值,”回車”后STM32CubeProg會(huì)自動(dòng)完成讀出-修改-擦除-回寫的操作。對(duì)于一次性可編程(OTP)字節(jié)就可以通過(guò)這種方式進(jìn)行編程。
點(diǎn)開OB頁(yè)面后,可以看到當(dāng)前所連接MCU的選項(xiàng)字的設(shè)定情況。用戶可以在這里修改選項(xiàng)字的值。具體選項(xiàng)字的說(shuō)明,請(qǐng)參考對(duì)應(yīng)MCU的參考手冊(cè)。
使用 “Erasing&Programming” 頁(yè)面下的“二合一”燒錄模式,可以在一次操作中完成FLASH和選項(xiàng)字的燒錄工作。選項(xiàng)字的配置使用STM32CubeProgrammer命令行的 “-ob” 命令。
舉例說(shuō)明,現(xiàn)在要在燒寫完Flash后,設(shè)置讀保護(hù)為level1??梢园匆韵虏襟E先進(jìn)行設(shè)置:
設(shè)置好要下載的可執(zhí)行文件路徑
勾選 “AutomaticMode” 下的 “Fullchip erase” 和 “Downloadfile”
在 “Optionbytes commands”?的輸入框中輸入:“-ob rdp=0xBB”
然后點(diǎn)擊 “Start automatic mode” ,STM32CubeProgrammer就會(huì)開始按順序執(zhí)行上述的操作,同時(shí)在Log窗口顯示整個(gè)執(zhí)行的過(guò)程和進(jìn)度。
關(guān)于選項(xiàng)字命令 “-ob”的格式說(shuō)明,可以參考
UM2237(用戶手冊(cè)STM32CubeProgrammer軟件工具介紹)
的3.2.15章節(jié)。但“-ob”命令中OptByte字段的定義在UM2237中沒(méi)有說(shuō)明,可以有兩種方法來(lái)查詢:一種是通過(guò)STM32CubeProgrammer圖形界面下“Optionbytes”標(biāo)簽頁(yè)中的“Name”一欄的名稱,因?yàn)椤?ob”命令中OptByte字段的定義與這里是一致的;還可以通過(guò)“-ob displ”命令來(lái)顯示當(dāng)前所有的選項(xiàng)字配置,從而也就可以知道各個(gè)OptByte字段的定義了。
如果想要對(duì)通過(guò)?
SPI,F(xiàn)MC,QSPI
等接口連接到
STM32
的外部存儲(chǔ)器進(jìn)行讀寫操作,就需要一個(gè)
external loader
。
C
ubeProgrammer?
默認(rèn)提供了
STM32
開發(fā)板上集成的外部存儲(chǔ)器對(duì)應(yīng)的
external loader
。
用戶如果使用了其他型號(hào)的存儲(chǔ)器,也可以自己生成external loader文件(*. stldr),詳細(xì)操作請(qǐng)參考?UM2237?的第2.3.3章節(jié)。
在對(duì)外部存儲(chǔ)器進(jìn)行操作前,必須先在 “External Loader” 頁(yè)面下,選擇對(duì)應(yīng)的external loader,該external loader會(huì)在接下來(lái)對(duì)外部存儲(chǔ)器的操作中用到。然后就可以在 “Erasing&Programming” 頁(yè)面和 “Memory&fileedition” 頁(yè)面下進(jìn)行擦除和燒寫的操作了。
STM32MCU出廠時(shí),內(nèi)部的系統(tǒng)memory就已經(jīng)燒好了bootloader,提供通過(guò)USART,USB,I2C,SPI,CAN等接口更新片上Flash的功能。
不同STM32MCU型號(hào)支持的bootloader接口有所不同,具體可以參考應(yīng)用手冊(cè)AN2606。STLink v2或者STLink v3提供了從USART,USB,I2C,SPI和CAN等通信協(xié)議到USB的橋接接口,STM32MCU可以通過(guò)STLink v2或者STLink v3與PC端建立連接。而STM32CubeProgrammer則提供了PC端的操作界面,可以通過(guò)bootloader對(duì)片上Flash進(jìn)行擦除和燒錄。STLinkv2只提供了USART和USB兩種通信接口,而STLink v3增加了I2C,SPI和CAN通信接口的支持。ST原來(lái)提供有兩個(gè)獨(dú)立的PC端軟件:“STM32Flash loader demonstrator”和“Dfuse Demo”,分別支持USARTbootloader和USBDFU功能,現(xiàn)在只需要使用STM32CubeProgrammer一個(gè)軟件就可以支持所有這些通信接口了。
我們?cè)谧鲩_發(fā)的時(shí)候,經(jīng)常會(huì)需要輸出一些調(diào)試信息。
常用的方法就是通過(guò)重定向printf到串口來(lái)進(jìn)行打印,這種方法需要占用一路串口。還有一種方法就是將printf重定向到SWD調(diào)試接口的SWO口,通過(guò)SWO來(lái)輸出調(diào)試信息。STM32CubeProgrammer的SWV窗口可以顯示SWO發(fā)送的調(diào)試信息,并且可以將所有接收到的信息保存在指定的“.log”文件中。
STM32CubeProgrammer提供命令行界面,可以通過(guò)執(zhí)行指令的方式實(shí)現(xiàn)大部分STM32CubeProgrammer的功能。
STM32_Programmer_CLI.exe 可執(zhí)行文件在 STM32CubeProgrammer 安裝路徑下的 bin 文件夾下,執(zhí)行 STM32_Programmer_CLI.exe 可以看到所有支持的指令及參數(shù)說(shuō)明。
命令行界面還提供了一些在圖形化界面不具備的功能,例如:創(chuàng)建可信任包,安全燒錄,計(jì)算 CRC 值等功能。詳細(xì)說(shuō)明請(qǐng)參考?UM2237。
圖中舉了一個(gè)通過(guò)SWD接口連接目標(biāo)芯片并設(shè)置讀保護(hù)級(jí)別1的例子,通過(guò) “-c” 指令先與目標(biāo)芯片建立連接,再通過(guò) “-ob” 指令修改讀保護(hù)的級(jí)別,完整的命令行指令為:STM32_Programmer_CLI.exe-c port=SWD -ob rdp=0xBB。
將
STLink
調(diào)試器連接到電腦后,打開?
STM32CubePorgrammer
,刷新?
STLink?
連接就可以看到當(dāng)前?
STLink?
的固件版本。
點(diǎn)擊 “
Firmwareupgrade
” 按鈕,打開?
STLinkUpgrade?
工具可以對(duì)?
STLink?
固件版本進(jìn)行更新。
如上圖
,在瀏覽器地址欄中輸入
www.st.com/stm32cube
,可以直接打開?
STM32Cube?
的主頁(yè)面。
以這個(gè)頁(yè)面作為入口可以快速地找到?
STM32Cube?
生態(tài)系統(tǒng)下的所有軟件工具和軟件包,
STM32CubeProgrammer?
也在這其中。
此外,直接在搜索欄搜索關(guān)鍵字“
STM32CubeProg
”也可以找到?
STM32CubeProg?
的主頁(yè)面。
在
STM32CubeProgrammer
頁(yè)面的
Overview
標(biāo)簽頁(yè)下有對(duì)
STM32CubeProgrammer
的介紹以及下載鏈接,在?
Documentation?
標(biāo)簽頁(yè)下可以找到其相關(guān)的文檔。
UM2237 用戶手冊(cè)
《STM32CubeProgrammer軟件工具介紹》
:本文檔為通用文檔,面向所有STM32產(chǎn)品,是
關(guān)于 STM32CubeProgrammer 的詳細(xì)使用說(shuō)明以及命令行的命令用法說(shuō)明;
UM2238?用戶手冊(cè)
《創(chuàng)建STM32受信任包軟件工具介紹》
和?AN5054?應(yīng)用筆記
《通過(guò)STM32CubeProgrammer進(jìn)行安全燒錄》
:與安全有關(guān),介紹
如何創(chuàng)建可信任包以及如何進(jìn)行安全燒錄。
UM2543 用戶手冊(cè)
《STM32MP1系列簽名工具介紹》
和?UM2542?用戶手冊(cè)
《STM32MP1系列密鑰生成器軟件介紹》
:
STM32CubeProgrammer
還集成了”
STM32MP1
系列密鑰生成器”和“
STM32MP1
系列簽名工具”,通過(guò)命令行對(duì)應(yīng)的指令,可以生成
ECC
密鑰對(duì),并對(duì)固件進(jìn)行簽名。
具體使用方法請(qǐng)參考上述兩篇用戶手冊(cè)
。
|?整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有?|
|?如有侵權(quán),請(qǐng)聯(lián)系刪除?|
【2】STM32單片機(jī):獨(dú)立看門狗、窗口看門狗的配置
【3】使用KeilMDK以及標(biāo)準(zhǔn)外設(shè)庫(kù)創(chuàng)建STM32工程的詳細(xì)過(guò)程
【4】編碼器是什么?STM32編碼器接口及應(yīng)用編程
【5】STM32學(xué)了很久,為什么還是不會(huì)做項(xiàng)目?
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!
欲知詳情,請(qǐng)下載word文檔
下載文檔
掃描二維碼,關(guān)注更多精彩內(nèi)容
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
全球嵌入式技術(shù)領(lǐng)域的年度盛會(huì)2026嵌入式世界展(Embedded World 2026,簡(jiǎn)稱EW26)于3月10日至12日在德國(guó)紐倫堡成功舉辦。作為物聯(lián)網(wǎng)和邊緣AI領(lǐng)域的領(lǐng)先企業(yè),Silicon Labs(亦稱“芯科科...
關(guān)鍵字:
物聯(lián)網(wǎng)
邊緣AI
嵌入式
3月10日至12日,2026年嵌入式世界展(Embedded World 2026,簡(jiǎn)稱EW26)在德國(guó)紐倫堡展覽中心成功舉辦。作為領(lǐng)先的邊緣AI與智能音頻等媒體處理技術(shù)和芯片解決方案提供商,XMOS以沉浸式演示與技術(shù)交...
關(guān)鍵字:
邊緣AI
智能音頻
嵌入式
在嵌入式系統(tǒng)開發(fā)中,SoC(System on Chip)的多樣性始終是橫亙?cè)陂_發(fā)者面前的難題。以某工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)項(xiàng)目為例,其需同時(shí)支持NXP i.MX8M、Rockchip RK3566和Allwinner H616三...
關(guān)鍵字:
Platform Driver模型
嵌入式
在非易失性存儲(chǔ)器領(lǐng)域,EEPROM(電可擦除可編程只讀存儲(chǔ)器)曾長(zhǎng)期占據(jù)主流地位,廣泛應(yīng)用于各類電子設(shè)備的參數(shù)存儲(chǔ)、日志記錄等場(chǎng)景。但隨著工業(yè)控制、汽車電子、醫(yī)療設(shè)備等領(lǐng)域?qū)Υ鎯?chǔ)性能提出更高要求,F(xiàn)RAM(鐵電隨機(jī)存取存...
關(guān)鍵字:
存儲(chǔ)器
可編程
嵌入式
康佳特將aReady.COM擴(kuò)展至Arm架構(gòu)模塊,基于恩智浦i.MX 95處理器打造應(yīng)用就緒的軟硬件構(gòu)建模塊,集成操作系統(tǒng)、系統(tǒng)整合與IoT連接能力,賦能高價(jià)值應(yīng)用快速落地
關(guān)鍵字:
處理器
IoT
嵌入式
3月12日,2026年中國(guó)家電及消費(fèi)電子博覽會(huì)(以下簡(jiǎn)稱:AWE 2026)在上海盛大開幕。展會(huì)現(xiàn)場(chǎng),場(chǎng)景化、系統(tǒng)化、一體化的家電解決方案成為行業(yè)焦點(diǎn),消費(fèi)者對(duì)家電的關(guān)注也已從基礎(chǔ)的尺寸匹配,延伸至對(duì)“空間秩序感”和“視...
關(guān)鍵字:
消費(fèi)電子
蒸烤箱
嵌入式
超高效NPU IP在資源受限設(shè)備中推進(jìn)邊緣AI,因而獲得認(rèn)可
關(guān)鍵字:
人工智能
嵌入式
NPU
上海2026年3月12日 /美通社/ -- 3月12日,2026中國(guó)家電及消費(fèi)電子博覽會(huì)(AWE 2026)在上海新國(guó)際博覽中心和東方樞紐國(guó)際商務(wù)合作區(qū)展區(qū)正式啟幕。本屆展會(huì)以"AI科技?慧享未來(lái)"為...
關(guān)鍵字:
西門子
博世
嵌入式
洗碗機(jī)
在“AI科技,慧享未來(lái)”的時(shí)代命題下,人工智能正加速滲透至家庭生活的每一個(gè)細(xì)節(jié)。2026年中國(guó)家電及消費(fèi)電子博覽會(huì)(AWE2026)在上海啟幕,聚焦AI技術(shù)如何重塑家電形態(tài)與人居體驗(yàn)。圍繞“智造不凡 悅享非凡”主題,西門...
關(guān)鍵字:
嵌入式
冰箱
AI
在嵌入式系統(tǒng)開發(fā)領(lǐng)域,Qt憑借其跨平臺(tái)特性、豐富的GUI組件和高效的開發(fā)框架,成為構(gòu)建交互式界面的首選工具之一。對(duì)于嵌入式工程師而言,掌握Qt不僅能提升開發(fā)效率,更能為智能設(shè)備、工業(yè)控制、汽車電子等領(lǐng)域的產(chǎn)品帶來(lái)更優(yōu)質(zhì)的...
關(guān)鍵字:
嵌入式
QT
在人工智能加速滲透家庭生活的背景下,2026年中國(guó)家電及消費(fèi)電子博覽會(huì)(AWE2026)于上海新國(guó)際博覽中心盛大開幕。本屆AWE以“AI科技,慧享未來(lái)”為主題,集中呈現(xiàn)了前沿科技如何重新定義家電形態(tài)與人居空間。作為全球高...
關(guān)鍵字:
全屋智能
人工智能
嵌入式
2026 年 3 月 11 日,中國(guó)北京訊 - 全球先進(jìn)半導(dǎo)體解決方案供應(yīng)商瑞薩電子(TSE:6723)今日宣布,由Altium提供技術(shù)支持的智能模型化平臺(tái)“Renesas 365”正式全面上市:該平臺(tái)可將元器件與解決方...
關(guān)鍵字:
嵌入式
微控制器
元器件
近日,2026年中國(guó)家電及消費(fèi)電子博覽會(huì)(AWE2026)在上海盛大舉行,本屆AWE以“AI科技,慧享未來(lái)”為主題,全面展示人工智能與家電深度融合所帶來(lái)的創(chuàng)新成果。西門子家電以“智造不凡 悅享非凡”為主題亮相展會(huì)AWE展...
關(guān)鍵字:
人工智能
抽屜蒸箱
嵌入式
瑞典烏普薩拉,2026年3月9日 — IAR今日宣布,對(duì)其嵌入式開發(fā)平臺(tái)進(jìn)行擴(kuò)展,推出全新長(zhǎng)期支持(Long-Term Support,LTS)服務(wù),旨在幫助客戶在漫長(zhǎng)的產(chǎn)品生命周期中,維持穩(wěn)定、可復(fù)現(xiàn)的工具鏈。
關(guān)鍵字:
嵌入式
工具鏈
工業(yè)自動(dòng)化
中國(guó)上海 – 2026年3月9日 – 全球知名的電子元器件授權(quán)代理商富昌電子(Future Electronics)近日憑借在嵌入式領(lǐng)域的持續(xù)深耕與快速成長(zhǎng),榮膺瑞薩電子嵌入式處理產(chǎn)品事業(yè)部頒發(fā)的“2025最佳潛力獎(jiǎng)”。...
關(guān)鍵字:
嵌入式
元器件
2026年3月9日 – 提供超豐富半導(dǎo)體和電子元器件?的業(yè)界知名新品引入 (NPI) 代理商貿(mào)澤電子 (Mouser Electronics) 推出內(nèi)容豐富的邊緣計(jì)算資源中心,為工程師提供業(yè)界新動(dòng)態(tài)。邊緣計(jì)算正在重塑數(shù)字...
關(guān)鍵字:
邊緣計(jì)算
AI
嵌入式
計(jì)劃將加速Wi-Fi HaLow技術(shù)的普及與產(chǎn)品上市進(jìn)程,推動(dòng)Wi-Fi HaLow生態(tài)系統(tǒng)規(guī)模化發(fā)展
關(guān)鍵字:
Wi-Fi
物聯(lián)網(wǎng)
嵌入式
嵌入式系統(tǒng)與底層驅(qū)動(dòng)開發(fā),C語(yǔ)言因其高效性和可控性成為主流選擇。然而,隨著項(xiàng)目規(guī)模擴(kuò)大,代碼結(jié)構(gòu)易陷入“架構(gòu)腐爛”——模塊間依賴錯(cuò)綜復(fù)雜,修改一處需牽動(dòng)全局,維護(hù)成本指數(shù)級(jí)增長(zhǎng)。高內(nèi)聚低耦合作為軟件設(shè)計(jì)的黃金準(zhǔn)則,能有效...
關(guān)鍵字:
嵌入式
底層驅(qū)動(dòng)