加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1ST下載編程工具
    • 2、ST-LINK Utility 編程下載
    • 3、利用ST-LINK Utility查看內(nèi)核運(yùn)行狀態(tài)
    • 4、Option Bytes選項(xiàng)字配置
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

STM32調(diào)試診斷工具 | ST-LINK Utility查看內(nèi)核運(yùn)行狀態(tài)

2022/02/28
701
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

ST-LINK Utility 是一款針對(duì) STM32 的下載編程工具,目前它被 STM32CubeProgrammer 代替了,官方已經(jīng)停止更新,但它同樣是一款很好的工具,也相對(duì)比較穩(wěn)定。

1ST下載編程工具

針對(duì) STM32 的編程工具,官方出了三個(gè)比較常用的工具,分別是:STVP、 ST-LINK Utility 和 STM32CubeProgrammer。

1.STVPSTVP:ST Visual Programmer,它是一款比較老的工具,之前ST早期的單片機(jī)編程。

STVP是一套可視化編程工具,提供了一個(gè)面向ST單片機(jī)的Flash全功能燒寫(xiě)環(huán)境,可方便的用于讀取、寫(xiě)入和校驗(yàn)芯片內(nèi)部存儲(chǔ)器與選項(xiàng)字節(jié)。

2.ST-LINK UtilitySTM32 ST-LINK Utility是一款比較經(jīng)典的工具,目前還有很多工程師在用。

它一個(gè)最重要的功能就是對(duì)STM32進(jìn)行編程。支持常見(jiàn)的hex、bin文件,還有早期摩托羅拉定義的srec和s19格式的文件(說(shuō)實(shí)話,我都不了解這兩種格式的文件)。

3.STM32CubeProgrammer這個(gè)工具大概是前兩年推出來(lái)的,由于它的推出,官方就基本停止了對(duì) ST-LINK Utility 的更新 (好像推出之后,就更新了最后一版本 V4.5.0)

它的主要功能就是Programmer編程,功能和STM32 ST-LINK Utility有很多相似之處,但引入了一些新的功能。比如UART and USB DFU bootloader。

2、ST-LINK Utility 編程下載

STM32 ST-LINK Utility 針對(duì)常見(jiàn)的hex、bin文件編程。

這里主要想提示一下初學(xué)者:hex帶有地址,而bin文件不帶地址,下載時(shí)需要填寫(xiě)起始地址。

下面看兩張?jiān)赟TM32 ST-LINK Utility中下載選擇文件的圖大家就明白了。

1.選擇hex下載,地址不可修改(灰色)

2.選擇bin下載,需要填寫(xiě)起始地址

3、利用ST-LINK Utility查看內(nèi)核運(yùn)行狀態(tài)

本節(jié)內(nèi)容主要想講述:利用STM32 ST-LINK Utility工具中Hot Plug熱插拔模式,查看內(nèi)核運(yùn)行狀態(tài)。

1.STM32 ST-LINK Utility模式說(shuō)明即設(shè)置中三種模式選擇:

 

主要有三種,在這個(gè)工具的用戶(hù)手冊(cè)中可以看到:

大概意思是:Normal:常規(guī)模式連接目標(biāo)(芯片)之后,芯片復(fù)位,然后暫停(halted)。

Connect Under Reset:連接復(fù)位模式主要用于JTAG/SWD引腳被禁用的時(shí)候。

Hot Plug:熱插拔模式連接目標(biāo)芯片,不復(fù)位/重置芯片,則此時(shí)可以查看芯片狀態(tài)。

2.查看內(nèi)核運(yùn)行狀態(tài)硬件連接好:Target -> MCU Core

為什么講這一條內(nèi)容呢?相信大家都遇到或聽(tīng)到過(guò)程序跑飛這種情況,當(dāng)你的程序跑飛,這里講的內(nèi)容可能幫助你判斷程序是不是處于跑飛狀態(tài)。

因?yàn)檫@里可以查看MCU內(nèi)核的運(yùn)行狀態(tài),簡(jiǎn)單的說(shuō)就可以查看PC跑到哪兒去了(你應(yīng)用程序跑如果超過(guò)相應(yīng)區(qū)域,說(shuō)明跑飛了)。

舉個(gè)例:你應(yīng)用程序存儲(chǔ)在0x08010000 --- 0x08020000 這個(gè)范圍內(nèi),正常運(yùn)行應(yīng)用程序應(yīng)該在這個(gè)范圍內(nèi),但是你發(fā)現(xiàn)PC的值為0x08025000(不在范圍內(nèi)),那就說(shuō)明跑飛了。

這里可以執(zhí)行的操作有:運(yùn)行、暫停、系統(tǒng)復(fù)位、內(nèi)核復(fù)位、單步運(yùn)行、讀內(nèi)核寄存器。類(lèi)似于IDE中的在線調(diào)試(IDE在線調(diào)試需要有源代碼,而這里不需要源代碼,可直接查看PC執(zhí)行到的地址)。

提示:PC:Program Counter即程序計(jì)數(shù)器寄存器,指向當(dāng)前執(zhí)行程序的地址,如果修改它的值,就能改變程序的執(zhí)行流。(具體可以參看Cortex-M3內(nèi)核寄存器所在章節(jié))

4、Option Bytes選項(xiàng)字配置

對(duì)Option Bytes操作常用的一個(gè)就是對(duì)Flash加密(讀/寫(xiě)保護(hù))。當(dāng)然,讀寫(xiě)保護(hù)可以通過(guò)程序代碼實(shí)現(xiàn),也可以通過(guò)這里說(shuō)的選項(xiàng)字設(shè)置來(lái)實(shí)現(xiàn)。

拿F401舉例:Target ->Option Bytes

STM32 ST-LINK Utility工具還有些特殊功能,可能我們不常用,比如:command line interface命令行接口、external loader developing加載外部程序等,感興趣的朋友可以參看用戶(hù)手冊(cè)研究一下。

好了,本文就分享以上幾點(diǎn)內(nèi)容,希望對(duì)你們有所幫助。

作者 | strongerHuang

微信公眾號(hào) | strongerHuang

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

作者黃工,從事嵌入式軟件開(kāi)發(fā)工作8年有余,高級(jí)嵌入式軟件工程師,業(yè)余維護(hù)公眾號(hào)『strongerHuang』,分享嵌入式軟硬件、單片機(jī)、物聯(lián)網(wǎng)等內(nèi)容。