第5章   STM32H7下载和调试方法(MDK5)

本章教程为大家介绍如何通过MDK5下载程序到芯片里面以及MDK5的调试和配置方法。

5.1 初学者重要提示

5.2 使用MDK调试和下载程序设置(JLINK)

5.3 使用MDK调试和下载程序设置(STLINK)

5.4 MDK调试容易崩溃的解决办法

5.5 MDK程序调试

5.6 总结

5.1   初学者重要提示

如果使用JLINK调试下载STM32H7,务必使用JLINK V9或V10,之前的版本已经不支持。

如果使用STLINK调试下载STM32H7,推荐使用最新的电脑端驱动和对应的固件,详情见第2章的2.6小节。

MDK曾发布的STM32F1,F407,F429和F7的所有调试方法的设置细节及其注意事项,同样适用于STM32H7:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14896 。

MDK5调试过程中容易崩溃的问题,请看本章5.4小节,比较重要。

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调试的时候很容易崩溃,出现下面这个错误

出现这个错误的话,要注意下面两个问题:

如果出现这种情况的话,将工程放在桌面路径下,工程名不要有中文会好很多。路径深或者有中文,都会造成这种情况。

退出调试的时候,如果使用断点了,务必清除所有断点,再退出,否则也会造成这种情况。

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   总结

对于初学者来说,务必要实际动手操作一遍。特别是调试方法,要熟练掌握,因为以后工程代码调试时,用到的最多。

php和stm32,【STM32H7教程】第5章 STM32H7下载和调试方法(MDK5)相关推荐

  1. 【STM32F407开发板用户手册】第7章 STM32F407下载和调试方法(IAR8)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第7章   STM32F407下载和调试方法(IAR8) 本章教程 ...

  2. 【STM32F429开发板用户手册】第7章 STM32F429下载和调试方法(IAR8)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第7章   STM32F429下载和调试方法(IAR8) 本章教程 ...

  3. 【STM32H7教程】第7章 STM32H7下载和调试方法(IAR8)

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第7章   STM32H7下载和调试方法(IAR8) 本章教程 ...

  4. 【STM32H7教程】第5章 STM32H7下载和调试方法(MDK5)

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第5章   STM32H7下载和调试方法(MDK5) 本 ...

  5. 海信电视linux安装软件下载,海信电视安装第三方软件教程,从第三方软件市场下载软件的方法...

    很多人在买了海信电视后,发现系统自带的应用市场软件很少,所以打算安装一个第三方软件市场.下面分享一下海信电视安装第三方软件教程和从第三方软件市场下载软件的方法. 方法一: 1.打开电视的设置界面,选择 ...

  6. 微信小程序开发系列教程三:微信小程序的调试方法

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...

  7. STM32 电机教程 28 - ST MCLIB实战之 位置闭环控制

    前言 ST MotorControl Workbench 生成的工程默认实现了电机的电流闭环和速度闭环控制,有些应用场合需要对电机的位置也实现闭环控制,如舵机,伺服系统等,本节就给大家介绍一下基于ST ...

  8. stm32h7内存分配_【STM32H7教程】第9章 STM32H7重要知识点数据类型,变量和堆栈...

    第9章   STM32H7重要知识点数据类型,变量和堆栈 本章教程为大家介绍数据类型,变量和堆栈的相关知识. 9.1 初学者重要提示 9.2 数据类型 9.3 局部变量和全局变量 9.4 堆栈 9.5 ...

  9. 【STM32H7教程】第29章 STM32H7的USART串口基础知识和HAL库API

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第29章       STM32H7的USART串口基础知识和 ...

最新文章

  1. frameset小结
  2. html5时钟代码菜鸟课程,html5绘制时钟动画
  3. Js整理备忘(02)——运算符
  4. 总结与整理:Ubuntu系统下安装、配置Nginx及其他注意事项
  5. Win10强制更新怎么关闭 彻底禁止Windows自动更新
  6. C语言十进制转二进制
  7. java varargs_Java中方法重载中的Varargs
  8. mysql 常用字符串操作
  9. python二值化特征_OpenCV-Python系列之轮廓特征高阶
  10. NumPy库---一元函数
  11. opencv打开Lena图像,并且将Lena改成单通道的图片
  12. 搭建WEB服务器及常见端口扫描工具分享
  13. 深挖AI价值与温度,AETA地震预测AI算法大赛开启
  14. 华硕笔记本怎么安装计算机,华硕笔记本电脑驱动怎么安装(一次装全,Win10)...
  15. 电脑新建文件夹快捷键
  16. 第一次网页前端培训笔记(HTML常用标签)
  17. 电话聊天狂人 (25分)
  18. php qq登陆网站实例代码,QQ登陆网站实例代码
  19. android怎么用命令安装软件,android使用adb命令安装软件
  20. ldap打通confluence

热门文章

  1. 两轮差速机器人ROS下速度解算
  2. BP神经网络的数据分类(MATHLAB实现)
  3. Avfoundation 相机指定裁剪区域
  4. 常见的数据库有哪些?
  5. 学生卡变成普通卡_15日前不审验 学生卡变成普通卡
  6. 【算法】1282. 用户分组(多语言实现)
  7. 理不懂,你注定就是穷打工的命 【转】
  8. HIVE操作自查手册(全)
  9. 电脑预装Office2016打开Word时点击保存弹出“word无法启动转换器RECOVR32.CNV”对话框问题的修复方法
  10. SAP Data Service操作简介