0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于STM32 ST-LINK Utility查看內(nèi)核運(yùn)行狀態(tài),助你判斷程序是否跑飛

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-12 09:58 ? 次閱讀

本文圍繞STM32 ST-LINK Utility講幾點(diǎn)主要功能及相關(guān)拓展知識(shí):

1.STM32編程下載;

2.利用該編程工具查看內(nèi)核運(yùn)行狀態(tài);

3.Option Bytes選項(xiàng)字配置;

1STM32編程下載

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

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

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

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

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

關(guān)于hex和bin的內(nèi)容請參看我的另兩篇文章:

1.關(guān)于bin、hex和axf文件格式的描述

2.MDK-ARM如何生產(chǎn)Bin文件

2利用該編程工具查看內(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模式說明

即設(shè)置中三種模式選擇:

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

大概意思是:

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)容呢?

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

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

舉個(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)),那就說明跑飛了。

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

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

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

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

拿F401舉例:Target ->Option Bytes

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10846

    瀏覽量

    353763
  • HEX
    HEX
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    16762
  • ST-link II
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5834
收藏 人收藏

    評論

    相關(guān)推薦

    st-link仿真電機(jī)控制時(shí)出現(xiàn)干擾的原因?怎么解決?

    我用stm32做電機(jī)控制的調(diào)試,調(diào)試工具用st-link,但是發(fā)現(xiàn)仿真時(shí)一接上st-link,對電機(jī)的運(yùn)行明顯有干擾,顯示的數(shù)據(jù)也不正確。求大俠指教。
    發(fā)表于 05-17 07:52

    st-link no target connected無法下載程序怎么解決?

    自己制作的板子!參考ST官方的ST-LINK電路進(jìn)行設(shè)計(jì)制作的!之前還可以正常下載程序,最近突然就提示:st-link no target connected,無法下載
    發(fā)表于 04-23 07:44

    在KEIL和STM32 ST-LINK Utility中可以找到或連接到FLASH,但卻無法ERASE,怎么解決?

    STM32F030R8 ST-LINK keil_v5 STM32 ST-LINK Utility在KEIL和
    發(fā)表于 04-03 07:27

    電腦完成最新升級(jí),STM32 ST-LINK Utility沒辦法運(yùn)行提示缺少mfc140.dll文件怎么解決?

    我的電腦完成最新升級(jí),之后STM32 ST-LINK Utility沒辦法運(yùn)行。先是提示缺少mfc140.dll文件。我從網(wǎng)上找了個(gè)文件放進(jìn)相關(guān)文件夾里面,之后提示如下應(yīng)用
    發(fā)表于 03-29 08:28

    STM32H7A3 NUCLEO出現(xiàn)了ST-LINK連接不上的情況怎么解決?

    個(gè)人在使用STM32H7A3ZIT6QU NUCLEO開發(fā)板的時(shí)候,前一天還正常正常下載程序。之后斷開連接去拍照片,第二天再連接電腦的時(shí)候,就出現(xiàn)了ST-LINK連接不上的情況。在項(xiàng)目選項(xiàng)頁面
    發(fā)表于 03-28 08:50

    ST-LINK Utility無法連接到P-NUCLEO-WB55.NUCLEO板是為什么?

    ST-LINK Utility 版本 目標(biāo)開發(fā)板是P-NUCLEO-WB55 的NUCLEO64 板,跳線使用STLink供電; 問題是:連接不上開發(fā)板,按照UM2550文檔操作到下載步驟。
    發(fā)表于 03-26 08:08

    ST-link\\Jlink\\串口連接不上stm32怎么解決?

    自己畫的板子,再用stlink設(shè)置寫保護(hù)后,就再也無法連接上. 不管是設(shè)置sram啟動(dòng)還是系統(tǒng)存儲(chǔ)器啟動(dòng),還是主存儲(chǔ)器啟動(dòng). STM32 ST-LINK Utility或是Jflash. 還是串口都無法連接上
    發(fā)表于 03-20 08:19

    STM32 ST-LINK Utility 4.2燒程序,過程中ST LINK的紅綠燈一直不停閃爍,顯示燒錄成功芯片沒有反應(yīng)為什么?

    用的是STM32 ST-LINK Utility 4.2燒程序,這個(gè)軟件可以識(shí)別芯片,過程中ST LIN
    發(fā)表于 03-20 07:35

    請問ST-LINK如何在IAR設(shè)置下載SWD接口的時(shí)鐘速度?

    STM32 ST-LINK Utility就有配置設(shè)置時(shí)鐘頻率的,否則舊版本固件是灰色的Old firmware提示; 不知道有人是否有做過類似的配置?----
    發(fā)表于 03-20 07:31

    STM32L475安裝好ST-Link驅(qū)動(dòng),電腦設(shè)備管理器中完全識(shí)別不到安裝的ST-Link,怎么解決?

    關(guān)于STM32L475 ST-Link使用請教一個(gè)問題我安裝好ST-Link驅(qū)動(dòng)插上供電USB及供電USB后電腦設(shè)備管理器中完全識(shí)別不到安裝的ST
    發(fā)表于 03-19 06:31

    ST LINK utilitySTM32G0采用SWD連接,使用ST LINK utility擦除全片程序時(shí)擦除不了怎么解決?

    ST LINK utilitySTM32G0采用SWD連接,可通過KEIL下載程序,而使用ST
    發(fā)表于 03-14 07:56

    STM32 ST-LINK Utility中開啟讀保護(hù)與在程序中開啟RDP的區(qū)別是什么?

    STM32F103使用ST-LINK Utility量產(chǎn)模式,選擇開啟RDP后,單片機(jī)Flash讀寫功能出現(xiàn)問題。但是在程序中開啟RDP,同樣的程序
    發(fā)表于 03-07 08:22

    分享一下用ST-LINK Utility識(shí)別單片機(jī)程序是否

    最近有網(wǎng)友大概問了這樣的問題:單片機(jī)項(xiàng)目偶爾經(jīng)常出現(xiàn)異常,不知道是程序飛了,還是進(jìn)入某個(gè)死循環(huán)了。
    的頭像 發(fā)表于 01-09 11:40 ?2488次閱讀
    分享一下用<b class='flag-5'>ST-LINK</b> <b class='flag-5'>Utility</b>識(shí)別單片機(jī)<b class='flag-5'>程序</b><b class='flag-5'>是否</b><b class='flag-5'>跑</b><b class='flag-5'>飛</b>

    keil5中debug檢測不到st link

    將分析可能的原因并提供解決方法。 一、檢查硬件連接: 確保ST-Link已正確連接到目標(biāo)設(shè)備的調(diào)試接口,檢查USB線纜是否正確連接。 檢查ST-Link是否接收到電源供應(yīng),確保其指示燈
    的頭像 發(fā)表于 01-05 14:43 ?1.2w次閱讀

    有J_LINK插口的STM32怎樣使用ST-LINK下載程序?

    如題,STM32上帶有J_link插口,沒有ST_link插口,怎樣通過ST-link下載程序
    發(fā)表于 11-10 06:00