ST-LINK Utility 是一款針對 STM32 的下載編程工具,目前它被 STM32CubeProgrammer 代替了,官方沒有更新了,但它同樣是一款很好的工具,也相對比較穩(wěn)定。
針對 STM32 的編程工具,官方出了三個比較常用的工具,分別是:STVP、 ST-LINK Utility 和 STM32CubeProgrammer。
STVP:ST Visual Programmer,它是一款比較老的工具,之前ST早期的單片機編程。
STVP是一套可視化編程工具,提供了一個面向ST單片機的Flash全功能燒寫環(huán)境,可方便的用于讀取、寫入和校驗芯片內部存儲器與選項字節(jié)。
STM32 ST-LINK Utility是一款比較經典的工具,目前還有很多工程師在用。
它一個最重要的功能就是對STM32進行編程。支持常見的hex、bin文件,還有早期摩托羅拉定義的srec和s19格式的文件(說實話,我都不了解這兩種格式的文件)。
這個工具大概是前兩年推出來的,由于它的推出,官方就基本停止了對 ST-LINK Utility 的更新 (好像推出之后,就更新了最后一版本 V4.5.0)
它的主要功能就是Programmer編程,功能和STM32 ST-LINK Utility有很多相似之處,但引入了一些新的功能。比如UART and USB DFU bootloader。
STM32 ST-LINK Utility 針對常見的hex、bin文件編程。
這里主要想提示一下初學者:hex帶有地址,而bin文件不帶地址,下載時需要填寫起始地址。
下面看兩張在STM32 ST-LINK Utility中下載選擇文件的圖大家就明白了。
之本節(jié)內容主要想講述一下:利用STM32 ST-LINK Utility工具中Hot Plug熱插拔模式,查看內核運行狀態(tài)。
1.STM32 ST-LINK Utility模式說明
連接目標(芯片)之后,芯片復位,然后暫停(halted)。
Connect Under Reset:連接復位模式
連接目標芯片,不復位/重置芯片,則此時可以查看芯片狀態(tài)。
相信大家都遇到或聽到過程序跑飛這種情況,當你的程序跑飛,這里講的內容可能幫助你判斷程序是不是處于跑飛狀態(tài)。
因為這里可以查看MCU內核的運行狀態(tài),簡單的說就可以查看PC跑到哪兒去了(你應用程序跑如果超過相應區(qū)域,說明跑飛了)。
舉個例
:你應用程序存儲在0x08010000 --- 0x08020000 這個范圍內,正常運行應用程序應該在這個范圍內,但是你發(fā)現PC的值為0x08025000(不在范圍內),那就說明跑飛了。
這里可以執(zhí)行的操作有:運行、暫停、系統(tǒng)復位、內核復位、單步運行、讀內核寄存器。類似于IDE中的在線調試(IDE在線調試需要有源代碼,而這里不需要源代碼,可直接查看PC執(zhí)行到的地址)。
提示:
PC:Program Counter即程序計數器寄存器,指向當前執(zhí)行程序的地址,如果修改它的值,就能改變程序的執(zhí)行流。(具體可以參看Cortex-M3內核寄存器所在章節(jié))
對Option Bytes操作常用的一個就是對Flash加密(讀/寫保護)。當然,讀寫保護可以通過程序代碼實現,也可以通過這里說的選項字設置來實現。
拿F401舉例:Target ->Option Bytes
STM32 ST-LINK Utility工具還有些特殊功能,可能我們不常用,比如:command line interface命令行接口、external loader developing加載外部程序等,感興趣的朋友可以參看
用戶手冊
研究一下。
好了,本文就分享以上幾點內容,希望對你們有所幫助。
【專欄】ST-Link資料
STVP工具你了解嗎?
關于STM32CubeProgrammer的內容
關注
微信公眾號『strongerHuang』,后臺回復“1024”查看更多內容,回復“加群”按規(guī)則加入技術交流群。
長按前往圖中包含的公眾號關注
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!