最近有網(wǎng)友大概問了這樣的問題:單片機(jī)項(xiàng)目偶爾經(jīng)常出現(xiàn)異常,不知道是程序跑飛了,還是進(jìn)入某個(gè)死循環(huán)了。
因?yàn)榘l(fā)生概率比較低,也沒有規(guī)律,所以沒辦法在線調(diào)試查找問題。
結(jié)合這個(gè)問題,給大家分享一下用ST-LINK Utility識別單片機(jī)程序是否跑飛。
利用ST-LINK Utility查看內(nèi)核運(yùn)行狀態(tài)
做想要知道單片機(jī)是否跑飛,可以利用ST-LINK Utility查看內(nèi)核運(yùn)行狀態(tà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
當(dāng)你的程序跑飛,內(nèi)核就處于異常狀態(tài),這里可以查看MCU內(nèi)核的運(yùn)行狀態(tài),簡單的說就可以查看PC跑到哪兒去了(你應(yīng)用程序跑如果超過相應(yīng)區(qū)域,說明跑飛了)。
舉個(gè)例:你應(yīng)用程序存儲在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é))
Option Bytes選項(xiàng)字配置
這里額外說一下選項(xiàng)字配置的內(nèi)容。
對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加載外部程序等,感興趣的朋友可以參看用戶手冊研究一下。
審核編輯:劉清
-
單片機(jī)
+關(guān)注
關(guān)注
6060文章
44835瀏覽量
645222 -
STM32
+關(guān)注
關(guān)注
2287文章
10988瀏覽量
361592 -
st-link
+關(guān)注
關(guān)注
1文章
43瀏覽量
9828
原文標(biāo)題:如何識別單片機(jī)是否程序跑飛?一招輕松解決!
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
利用ST-LINK配合ST-LINK Utility將弄好的字模bin文件導(dǎo)入到FLASH指定地址
STM32 ST-link Utility_v3.3.0
STM32 ST-link Utility_v3.1.0應(yīng)用程序軟件免費(fèi)下載

STVD、 STVP、 ST-LINK utility這些工具你了解嗎?
關(guān)于STM32 ST-LINK Utility查看內(nèi)核運(yùn)行狀態(tài),助你判斷程序是否跑飛
STM32 ST-LINK Utility軟件的使用教程免費(fèi)下載

STM32F103ZE單片機(jī)有時(shí)用ST-LINK下載程序失敗的原因

ST-Link V2.1 制作使用

STM32筆記--使用ST-Link下載hex文件

利用ST-LINK配合ST-LINK Utility 將bin文件下載到STM32的FLASH中

ST-Link V2.1 制作使用

解決ST-Link Utility出現(xiàn)Can not connect to target!的問題

評論