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


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

第7章   STM32H7下載和調試方法(IAR8)

本章教程為大家介紹如何創建IAR8工程,配置方法以及經常用到的一些配置項。

7.1 初學者重要提示

7.2 使用IAR調試和下載程序設置(JLINK)

7.3 使用IAR調試和下載程序設置(STLINK)

7.4 IAR程序調試

7.5 總結

 

 

7.1   初學者重要提示

  1.   如果使用JLINK調試下載STM32H7,務必使用JLINK V9或V10,之前的版本已經不支持。
  2.   如果使用STLINK調試下載STM32H7,推薦使用最新的電腦端驅動和對應的固件,詳情見第2章的2.6小節。
  3.   JLINK無法下載解決思路以及常見問題整理,適用於其它LINK:http://www.armbbs.cn/forum.php?mod=viewthread&tid=21708

7.2   使用IAR調試和下載程序設置(JLINK)

調試下載STM32H7,務必使用JLINK V9或V10,之前的版本已經不支持,JLINK的驅動安裝等相關文件已經在本教程第2章的2.5章節有說明。

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

7.2.1      開發板和JLINK的接線圖

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

 

注意轉接板不要插反了:

 

7.2.2      設置Options里面的Degubber選項

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

 

設置完畢后,別忘了點擊OK。

7.2.3      設置Options里面的JLINK選項

注意,在Debugger選擇里面選擇了JLINK后,才可以設置此選項。Setup部分使用默認配置即可,無需修改:

 

Connection部分要選擇SWD接口:

 

設置完畢后別忘了點擊OK。

7.2.4      程序下載

前兩步設置好之后,JLINK插到電腦端並跟開發板連接好,將板子上電,就可以下載了。菜單Project->download->download Active Application:

 

下載成功后將開發板重新上電,可以看到開發板上的LED開始閃爍,IAR的Debug log窗口也有信息展示:

 

7.3   使用IAR調試和下載程序設置(STLINK)

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

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

7.3.1      開發板和STLINK的接線圖

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

 

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

 

 

7.3.2      設置Options里面的Debug選項

Debug選項主要用調試:

 

7.3.3      設置Options里面的STLINK選項

注意,在Debugger選擇里面選擇了STLINK后,才可以設置此選項。Setup部分選擇SWD接口,其它默認即可:

 

7.3.4      程序下載

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

 

下載成功后將開發板重新上電,可以看到開發板上的LED開始閃爍,IAR的Debug log窗口也有信息展示。

 

7.4   IAR程序調試

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

7.4.1      全速運行和單步調試

點擊如下按鈕可以進入調試狀態(下載程序到芯片同時開啟調試):

 

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

 

首先要認識下這11個圖標的含義(進入調試狀態后,鼠標放在這幾個圖標上會有提示):

 

  •   第1個圖標是重新編譯例程並進入調試狀態。
  •   第2個圖標是重新進入調試狀態。
  •   第3個圖標是停止調試。
  •   第4個圖標是Step Over(Step over the current step point),每次點擊以函數為單位運行,不會進入函數內部。
  •   第5個圖標是Step Into(Step into the current step point),單步調試,每次點擊運行一行代碼,所以只要有子函數就會進入。
  •   第6個圖標是Step out(Step out of the current line),點擊后退出當前運行的函數,執行下一個函數。
  •   第7個圖標是Next Statement(Step to the next statement),進入下一個狀態,跟第4個圖標功能差不多。
  •   第8個圖標是Run to Cursor(Execute to the current cursor position),直接運行到用戶設置的行,設置方法比較簡單,用戶僅需在那行使用鼠標左鍵點擊一下,可以看到前面有光標即可(注意,程序不能倒着執行,也就是能往回設置)然后點擊此圖標即可,可以看到前面多了一個綠色的小箭頭,說明已經運行到此行
  •   第9個圖標是全速運行。
  •   第10個圖標是用於暫停全速運行。
  •   第11個圖標是復位調試,重新回到main函數開始執行。

 

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

7.4.2      外設寄存器的查看

初次使用IAR8的話,容易出現找不到在哪里查看寄存器的問題,首先需要點擊這里View ->Register

->Register 1(共提供了四個register窗口,打開那個都行,要查看多個外設時,可以同時打開多個窗口查看):

 

給出的都是CPU寄存器:

 

這個並不是我們想要的,還有繼續下一步,在紅色的方框區域右擊:

 

 

比如查看DAC:

 

7.4.3      全局變量的查看

針對全局變量,IAR提供了專門提供了Watch1, Watch2,Watch3和Watch4窗口,每個窗口可以添加很多變量。從菜單View ->Watch進行添加:

 

比如定義了一個全局的32位變量count,用戶可以直接在Watch1窗口里面輸入此變量:

 

也可以在源文件里面,鼠標右擊此變量進行添加。調試過程中,這些窗口里面添加的變量是會更新的。但是全速運行狀態,這些變量就不會更新,為了解決這個問題,IAR有一個Live Watch可以在全速運行狀態查看變化:

 

用戶可以直接在Live Watch窗口里面輸入變量查看,如果程序里面做了一個簡單的加法計數,就可以在全速調試狀態查看此變量的動態變化:

 

7.4.4      局部變量的查看

針對局部變量,IAR專門提供了一個棧窗口,用於查看函數中各種局部變量,這個不需要用戶添加,IAR會自動添加。從菜單View ->Locals進行添加窗口:

 

局部變量需要進入到那個函數里面才可以查看,這點要特別注意,因為局部變量是來自棧空間的,進入函數申請棧空間,函數退出后,棧空間就會被釋放掉。比如main函數里面一個num局部變量

 

7.4.5      Flash區或者RAM區的查看

如果要查看Flash區或者RAM區的內容,IAR提供了4個Memory窗口。從菜單View ->Memory進行添加:

 

比如要查看0x2000 0000地址開始的內容,直接輸入即可,這個地址是STM32H7的DTCM首地址

 

7.4.6      斷點調試

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

 

比如想在79行添加斷點。

 

用戶僅需在那行使用鼠標左鍵點擊一下,然后單擊斷點圖標即可,斷點設置好的效果如下:

 

然后點擊全速運行,如果程序有執行到這個地方,就會停在這里。可以看到綠色小箭頭也顯示在左側了,說明程序執行到這個地方了(此時還沒有執行該語句):

 

7.4.7      動態更新頻率設置

IAR有個周期性更新頻率設置選項,菜單Tools->Options:

 

單位都是毫秒,最小1ms:

 

7.5   總結

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

 


免責聲明!

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



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