最近有網友大概問了這樣的問題:單片機項目偶爾經常出現異常,不知道是程序跑飛了,還是進入某個死循環了。
因為發生概率比較低,也沒有規律,所以沒辦法在線調試查找問題。
結合這個問題,給大家分享一下用ST-LINK Utility識別單片機程序是否跑飛。
利用ST-LINK Utility查看內核運行狀態
做想要知道單片機是否跑飛,可以利用ST-LINK Utility查看內核運行狀態。
利用STM32 ST-LINK Utility工具中Hot Plug熱插拔模式,查看內核運行狀態。
1.STM32 ST-LINK Utility模式說明
即設置中三種模式選擇:
主要有三種,在這個工具的用戶手冊中可以看到:
大概意思是:
Normal:常規模式
Connect Under Reset:連接復位模式
主要用于JTAG/SWD引腳被禁用的時候。
Hot Plug:熱插拔模式
連接目標芯片,不復位/重置芯片,則此時可以查看芯片狀態。
2.查看內核運行狀態
硬件連接好:Target -> MCU Core
當你的程序跑飛,內核就處于異常狀態,這里可以查看MCU內核的運行狀態,簡單的說就可以查看PC跑到哪兒去了(你應用程序跑如果超過相應區域,說明跑飛了)。
舉個例:你應用程序存儲在0x08010000 --- 0x08020000 這個范圍內,正常運行應用程序應該在這個范圍內,但是你發現PC的值為0x08025000(不在范圍內),那就說明跑飛了。
這里可以執行的操作有:運行、暫停、系統復位、內核復位、單步運行、讀內核寄存器。類似于IDE中的在線調試(IDE在線調試需要有源代碼,而這里不需要源代碼,可直接查看PC執行到的地址)。
提示:PC:Program Counter即程序計數器寄存器,指向當前執行程序的地址,如果修改它的值,就能改變程序的執行流。(具體可以參看Cortex-M3內核寄存器所在章節)
Option Bytes選項字配置
這里額外說一下選項字配置的內容。
對Option Bytes操作常用的一個就是對Flash加密(讀/寫保護)。當然,讀寫保護可以通過程序代碼實現,也可以通過這里說的選項字設置來實現。
拿F401舉例:Target ->Option Bytes
STM32 ST-LINK Utility工具還有些特殊功能,可能我們不常用,比如:command line interface命令行接口、external loader developing加載外部程序等,感興趣的朋友可以參看用戶手冊研究一下。
審核編輯:劉清
-
單片機
+關注
關注
6044文章
44628瀏覽量
639007 -
STM32
+關注
關注
2273文章
10926瀏覽量
357801 -
st-link
+關注
關注
1文章
43瀏覽量
9673
原文標題:如何識別單片機是否程序跑飛?一招輕松解決!
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
利用ST-LINK配合ST-LINK Utility將弄好的字模bin文件導入到FLASH指定地址
STM32 ST-link Utility_v3.1.0應用程序軟件免費下載
![STM32 <b class='flag-5'>ST-link</b> <b class='flag-5'>Utility</b>_v3.1.0應用<b class='flag-5'>程序</b>軟件免費下載](https://file.elecfans.com/web1/M00/65/8D/pIYBAFurAT6AXuDLAADyUf4GRhM574.png)
關于STM32 ST-LINK Utility查看內核運行狀態,助你判斷程序是否跑飛
STM32 ST-LINK Utility軟件的使用教程免費下載
![STM32 <b class='flag-5'>ST-LINK</b> <b class='flag-5'>Utility</b>軟件的使用教程免費下載](https://file.elecfans.com/web1/M00/C7/E2/pIYBAF9sFZeAa-82AAH31NU-8iM482.png)
STM32F103ZE單片機有時用ST-LINK下載程序失敗的原因
![STM32F103ZE<b class='flag-5'>單片機</b>有時<b class='flag-5'>用</b><b class='flag-5'>ST-LINK</b>下載<b class='flag-5'>程序</b>失敗的原因](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ST-Link V2.1 制作使用
![<b class='flag-5'>ST-Link</b> V2.1 制作使用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32筆記--使用ST-Link下載hex文件
![STM32筆記--使用<b class='flag-5'>ST-Link</b>下載hex文件](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
利用ST-LINK配合ST-LINK Utility 將bin文件下載到STM32的FLASH中
![利用<b class='flag-5'>ST-LINK</b>配合<b class='flag-5'>ST-LINK</b> <b class='flag-5'>Utility</b> 將bin文件下載到STM32的FLASH中](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ST-Link V2.1 制作使用
![<b class='flag-5'>ST-Link</b> V2.1 制作使用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
解決ST-Link Utility出現Can not connect to target!的問題
![解決<b class='flag-5'>ST-Link</b> <b class='flag-5'>Utility</b>出現Can not connect to target!的問題](https://file1.elecfans.com/web2/M00/88/B0/wKgZomRvDYuALrpWAAAk0YugzGE239.jpg)
評論