【STM32H7教程】第5章 STM32H7下載和調試方法(MDK5)

完整教程下載地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980php

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

本章教程爲你們介紹如何經過MDK5下載程序到芯片裏面以及MDK5的調試和配置方法。函數

5.1 初學者重要提示測試

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

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

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

5.5 MDK程序調試htm

5.6 總結blog

 

 

5.1   初學者重要提示

  1. 若是使用JLINK調試下載STM32H7,務必使用JLINK V9或V10,以前的版本已經不支持。
  2. 若是使用STLINK調試下載STM32H7,推薦使用最新的電腦端驅動和對應的固件,詳情見第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)

調試下載STM32H7,務必使用JLINK 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)

調試下載STM32H7,請將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      程序下載

前兩步設置好以後,JLINK插到電腦端並跟開發板鏈接好,將板子上電就能夠下載了。點擊這裏便可:

 

下載成功後能夠看到開發板上的LED開始閃爍,MDK的也有信息展現:

 

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

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

 

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

  1. 若是出現這種狀況的話,將工程放在桌面路徑下,工程名不要有中文會好不少。路徑深或者有中文,都會形成這種狀況。
  2. 退出調試的時候,若是使用斷點了,務必清除全部斷點,再退出,不然也會形成這種狀況。

 

針對這個問題,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地址開始的內容,直接輸入便可,這個地址是STM32H7的Flash首地址:

 

5.5.6      斷點調試

斷點調試比較重要,進入調整狀態後,若是你們想讓程序在指定的位置中止運行,能夠添加斷點,經過這個小紅點來添加。

 

好比想在84行添加斷點。

 

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

 

而後點擊那個小紅點,能夠看到已經添加上:

 

而後點擊全速運行,若是程序有執行到這個地方,就會停在這裏。能夠看到黃色小箭頭也顯示在左側了,說明程序執行這個地方了:

 

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

 

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

MDK有個週期性更新選項,若是你們要週期性的觀察一些寄存器、全局變量的更新、須要把菜單View -> Periodic Window Update選上。

 

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

5.6   總結

對於初學者來講,務必要實際動手操做一遍。特別是調試方法,要熟練掌握,由於之後工程代碼調試時,用到的最多。

相關文章
相關標籤/搜索