【STM32F407開發板用戶手冊】第5章 STM32F407下載和調試方法(MDK5)


最新教程下載:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255

第5章   STM32F407下載和調試方法(MDK5)

本章教程為大家介紹如何通過MDK5下載程序到芯片里面以及MDK5的調試和配置方法。

5.1 初學者重要提示

5.2 使用MDK調試和下載程序設置(JLINK)

5.3 使用MDK調試和下載程序設置(STLINK)

5.4 MDK調試容易崩潰的解決辦法

5.5 MDK程序調試

5.6 總結

 

 

5.1   初學者重要提示

  1.   如果使用JLINK調試下載STM32F407,可以使用JLINK V8,V9和V10。
  2.   如果使用STLINK調試下載STM32F407,推薦使用最新的電腦端驅動和對應的固件,詳情見第2章的2.6小節。
  3.   MDK曾發布的STM32F1,F407,F429和F7的所有調試方法的設置細節及其注意事項,同樣適用於STM32H7:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14896
  4.   MDK5調試過程中容易崩潰的問題,請看本章5.4小節,比較重要。
  5.   JLINK無法下載解決思路以及常見問題整理,適用於其它LINK:http://www.armbbs.cn/forum.php?mod=viewthread&tid=21708

5.2   使用MDK調試和下載程序設置(JLINK)

調試下載STM32F407,可以使用JLINK V8,V9和V10,JLINK的驅動安裝等相關文件已經在本教程第2章的2.5章節有說明。

在上個章節里面,我們已經將Options對話框里面大部分設置選項都做了說明,本章節主要是調試下載的設置。

5.2.1      開發板和JLINK的接線圖

開發板接上JLINK的效果圖如下,JLINK端需要插入開發板贈送的JTAG轉SWD轉接板:

 

注意轉接板不要插反了:

 

5.2.2      設置Options里面的Debug選項

Debug選項主要用於調試設置。

 

打開Settings設置選項,設置完畢后別忘了點擊確定。

 

5.2.3      設置Options里面的Utilities選項

Utilities選項主要用於程序下載設置。

 

5.2.4      程序下載

前兩步設置好之后,JLINK插到電腦端並跟開發板連接好,將板子上電,就可以下載了。點擊這里就可以下載了:

 

下載成功后可以看到開發板上的LED開始閃爍,MDK的也有信息展示:

 

5.3   使用MDK調試和下載程序設置(STLINK)

調試下載STM32F407,請將STLINK固件升級到最新版,關於固件升級和驅動安裝等相關文件已經在本教程第2章的2.6章節有說明。

在上個章節里面,我們已經將Options對話框里面大部分設置選項都做了說明,本章節主要是調試下載的設置。

5.3.1      開發板和STLINK的接線圖

開發板接上STLINK的效果圖如下:

 

如果是下面這種STLINK,需要接上轉接板:

 

 

5.3.2      設置Options里面的Debug選項

Debug選項主要用於調試設置:

 

打開Settings設置選項,設置完畢后別忘了點擊確定。

 

5.3.3      設置Options里面的Utilities選項

Utilities選項主要用於程序下載設置。

 

5.3.4      程序下載

前兩步設置好之后,STLINK插到電腦端並跟開發板連接好,將板子上電就可以下載了。點擊這里即可:

 

下載成功后可以看到開發板上的LED開始閃爍,MDK的也有信息展示:

 

5.4   MDK調試容易崩潰的解決辦法

進入到MDK5.2X后,MDK調試的時候很容易崩潰,出現下面這個錯誤

 

出現這個錯誤的話,要注意下面兩個問題:

  •   如果出現這種情況的話,將工程放在桌面路徑下,工程名不要有中文會好很多。路徑深或者有中文,都會造成這種情況。
  •   退出調試的時候,如果使用斷點了,務必清除所有斷點,再退出,否則也會造成這種情況。

 

針對這個問題,KEIL官方也有說明:http://www.keil.com/support/docs/4036.htm

5.5   MDK程序調試

JLINK或者STLINK設置完畢后,調試是一樣的。

5.5.1      全速運行和單步調試

點擊如下按鈕可以進入調試狀態:

 

進入調試狀態后的效果如下:

 

首先要認識下這7個圖標的含義:

 

  •   第1個圖標是復位調試。
  •   第2個圖標是全速運行。
  •   第3個圖標是進入全速運行狀態后,通過這個圖標可以停止全速運行。
  •   第4個圖標是Step(Step one line),單步調試,每次點擊運行一行代碼,所以只要有子函數就會進入。
  •   第5個圖標是Step Over(Step over the current line),每次點擊以函數為單位運行,不會進入函數內部。
  •   第6個圖標是Step out(Step out of the current line),點擊后退出當前運行的函數,執行下一個函數。
  •   第7個圖標是Run to Cursor Line(Run to the current cursor line),直接運行到用戶設置的行,設置方法比較簡單,用戶僅需在那行使用鼠標左鍵點擊一下,可以看到前面有個箭頭

 

然后點擊此圖標即可,可以看到前面多了一個黃色的小箭頭,說明已經運行到此行

 

前面幾個圖標的功能,大家多測試幾次就熟練了。

5.5.2      外設寄存器的查看

要查看的外設寄存器內容在這個菜單里面:

 

如果要查看內核外設寄存器,在這里:

 

5.5.3      全局變量的查看

針對全局變量,MDK專門提供了Watch1和Watch2兩個窗口,每個窗口可以添加很多變量。調試過程中,這些窗口里面添加的變量是會更新的。

 

也可以從菜單View ->Watch Windows進行添加。比如下面添加一個簡單的全局計數變量。

 

5.5.4      局部變量的查看

針對局部變量,MDK專門提供了一個棧窗口,用於查看函數中各種局部變量,這個不需要用戶添加,MDK會自動添加。

 

也可以從菜單View ->Call Stack Window進行添加。局部變量需要進入到那個函數里面才可以查看,這點要特別注意,因為局部變量是來自棧空間的,進入函數申請占空間,退出函數后,棧空間就會被釋放掉。比如main函數里面一個num局部變量:

 

5.5.5      Flash區或者RAM區的查看

如果要查看Flash區或者RAM區的內容,MDK提供了4個Memory窗口。

 

也可以從菜單View ->Memory Windows進行添加。比如要查看0x0800 0000地址開始的內容,直接輸入即可,這個地址是STM32F4的Flash首地址:

 

5.5.6      斷點調試

斷點調試比較重要,進入調整狀態后,如果大家想讓程序在指定的位置停止運行,可以添加斷點,通過這個小紅點來添加。

 

比如想在84行添加斷點。

 

用戶僅需在那行使用鼠標左鍵點擊一下,可以看到前面有個箭頭:

 

然后點擊那個小紅點,可以看到已經添加上:


 

然后點擊全速運行,如果程序有執行到這個地方,就會停在這里。可以看到黃色小箭頭也顯示在左側了,說明程序執行這個地方了:

 

正常情況下,斷點可以加到任何程序代碼可以執行到的地方。另外注意,退出調試前,點擊這個按鈕取消所有斷點,防止MDK調試期間崩潰:

 

5.5.7      寄存器,全局變量和局部變量的動態更新

MDK有個周期性更新選項,如果大家要周期性的觀察一些寄存器、全局變量的更新、需要把菜單View -> Periodic Window Update選上。

 

這個周期不能設置,大概0.5s左右更新一次。

5.6   總結

對於初學者來說,務必要實際動手操作一遍。特別是調試方法,要熟練掌握,因為以后工程代碼調試時,用到的最多。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM