日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【STM32】STLINK调试程序教程

發布時間:2024/4/24 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【STM32】STLINK调试程序教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 概述
    • 02. STLINK調試程序
    • 03. 附錄
    • 04. 聲明

01. 概述

在實際的開發過程中,如果程序比較簡單就不需要調試程序,但是對于比較復雜的程序,往往需要通過調試來解決bug。串口只能下載代碼,并不能實時跟蹤調試,而利用調試工具,比如 JLINK、ULINK、STLINK等就可以實時跟蹤程序,從而找到你程序中的 bug,使你的開發事半功倍。

STLINK 支持 JTAG 和 SWD,同時 STM32F4 也支持 JTAG 和 SWD。所以,我們有 2 種方式可以用來調試,JTAG 調試的時候,占用的 IO 線比較多,而 SWD 調試的時候占用的 IO 線很少,只需要兩根即可。

02. STLINK調試程序

2.1 點擊開始調試按鈕

編譯一下工程。然后點擊:(開始/停止仿真按鈕),開始仿真(如果開發板的代碼沒被更新過,則會先更新代碼(即下載代碼),再仿真,你也可以通過按下載按鈕,只下載代碼,而不進入仿真。特別注意:開發板上的 B0和 B1 都要設置到 GND,否則代碼下載后不會自動運行的!)

2.2 跳轉到主函數執行

2.3 Debug工具條介紹

因為我們之前勾選了 Run to main()選項,所以,程序直接就運行到了 main 函數的入口處。另外,此時 MDK 多出了一個工具條,這就是 Debug 工具條,這個工具條在我們仿真的時候是非常有用的,下面簡單介紹一下 Debug 工具條相關按鈕的功能。

復位:其功能等同于硬件上按復位按鈕。相當于實現了一次硬復位。按下該按鈕之后,代碼會重新從頭開始執行。

執行到斷點處:該按鈕用來快速執行到斷點處,有時候你并不需要觀看每步是怎么執行的,而是想快速的執行到程序的某個地方看結果,這個按鈕就可以實現這樣的功能,前提是你在查看的地方設置了斷點。

停止運行:此按鈕在程序一直執行的時候會變為有效,通過按該按鈕,就可以使程序停止下來,進入到單步調試狀態。

執行進去:該按鈕用來實現執行到某個函數里面去的功能,在沒有函數的情況下,是等同于執行過去按鈕的。

執行過去:在碰到有函數的地方,通過該按鈕就可以單步執行過這個函數,而不進入這個函數單步執行。

執行出去:該按鈕是在進入了函數單步調試的時候,有時候你可能不必再執行該函數的剩余部分了,通過該按鈕就直接一步執行完函數余下的部分,并跳出函數,回到函數被調用的位置。

執行到光標處:該按鈕可以迅速的使程序運行到光標處,其實是挺像執行到斷點處按鈕功能,但是兩者是有區別的,斷點可以有多個,但是光標所在處只有一個。

匯編窗口:通過該按鈕,就可以查看匯編代碼,這對分析程序很有用。

堆棧局部變量窗口:通過該按鈕,顯示 Call Stack+Locals 窗口,顯示當前函數的局部變量及其值,方便查看。

觀察窗口:MDK5 提供 2 個觀察窗口(下拉選擇),該按鈕按下,會彈出一個顯示變量的窗口,輸入你所想要觀察的變量/表達式,即可查看其值,是很常用的一個調試窗口。

內存查看窗口:MDK5 提供 4 個內存查看窗口(下拉選擇),該按鈕按下,會彈出一個內存查看窗口,可以在里面輸入你要查看的內存地址,然后觀察這一片內存的變化情況。是很常用的一個調試窗口

串口打印窗口:MDK5 提供 4 個串口打印窗口(下拉選擇),該按鈕按下,會彈出一個類似串口調試助手界面的窗口,用來顯示從串口打印出來的內容。

邏輯分析窗口:該圖標下面有 3 個選項(下拉選擇),我們一般用第一個,也就是邏輯分析窗口(Logic Analyzer),點擊即可調出該窗口,通過 SETUP 按鈕新建一些 IO 口,就可以觀察這些 IO 口的電平變化情況,以多種形式顯示出來,比較直觀。

系統查看窗口:該按鈕可以提供各種外設寄存器的查看窗口(通過下拉選擇),選擇對應外設,即可調出該外設的相關寄存器表,并顯示這些寄存器的值,方便查看設置的是否正確。

Debug 工具條上的其他幾個按鈕用的比較少,我們這里就不介紹了。以上介紹的是比較常用的,當然也不是每次都用得著這么多,具體看你程序調試的時候有沒有必要觀看這些東西,來決定要不要看。

特別注意:串口打印窗口和邏輯分析窗口僅在軟件仿真的時候可用,而 MDK5 對 STM32F4的軟件仿真,基本上不支持(故本教程直接沒有對軟件仿真進行介紹了),所以,基本上這兩個窗口用不著。但是對 STM32F1 的軟件仿真,MDK5 是支持的,在 F1 開發的時候,可以用到。

2.4 設置和取消斷點

我們把光標放到 test.c 的第22行左側的灰色區域,然后按下鼠標左鍵,即可放置一個斷點(紅色的實心點,也可以通過鼠標右鍵彈出菜單來加入),再次單擊則取消。

2.5 點擊run執行到斷點處

2.6 查看外設信息

點擊菜單欄的 Peripherals→System Viewer→GPIO→GPIOF。可以看到,有很多外設可以查看,這里我們查看的是GPIOF 的情況。

單擊 GPIOF后會在 IDE 右側出現一個如圖

2.7 執行完初始化

我們可以查看GPIOF 的各個寄存器設置狀態,從而判斷我們寫的代碼是否有問題,只有這里的設置正確了之后,才有可能在硬件上正確的執行。同樣這樣的方法也可以適用于很多其他外設,這個讀者慢慢體會吧!這一方法不論是在排錯還是在編寫代碼的時候,都是非常有用的。

2.8 查看棧信息

03. 附錄

6.1 【STM32】STM32系列教程匯總

網址:【STM32】STM32系列教程匯總

04. 聲明

該教程參考了正點原子的《STM32 F4 開發指南》

總結

以上是生活随笔為你收集整理的【STM32】STLINK调试程序教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。