目录
1. 在MDK上配置DAP
2. 了解不同开发板不同的下载算法
3. DAP调试程序
3.1 JTAG/SWD调试原理概述
3.2 基础执行控制按钮
3.3 查看程序段/函数执行时间
3.4 结束仿真报错解决方法
3.5 工具栏常用窗口按钮介绍
3.5.1 Call Stack窗口:查看函数调用关系&局部变量
3.5.2 Watch窗口:查看函数首地址&变量值,设置全局变量在被读或写后自动停止运行
3.5.3 Memory窗口:内存查看窗口
3.5.4 Peripheral窗口:查看寄存器的值
4. 仿真时需要注意的点
4.1 仿真时使用MDK的Level 0等级优化
4.2 调试停止在断点处时,只是内核停止,外设会继续运行
4.3 断点的设置要有时间观念,考虑到是否会打断正常通信
1. 在MDK上配置DAP
首先随便打开一个工程,找到下图方框位置点击;
点击完后,进入如下界面,点击“Debug”,进入下图界面,将2中的选项勾选后,点击“Settings”;
点击完进入如下界面,按照图示进行选择。
操作完后返回如下界面,找到“Utilities”点击,勾选2所示的内容“Use Debug Driver”。
2. 了解不同开发板不同的下载算法
首先随便打开一个工程,找到下图方框位置点击;
点击完后,进入如下界面,点击“Debug”,进入下图界面,点击“Settings”;
进入如下界面,其中2按照,如图进行勾选,3是STM32F103C8T6的算法下载。
3. DAP调试程序
3.1 JTAG/SWD调试原理概述
Cortex-M内核含有硬件调试模块,该模块可在取指(指令断点)或访问数据(数据断点)时停止。
内核停止时,可以查询内核的内部状态和系统的外部状态。完成查询后,可恢复程序执行。
灵活的SWJ-DP引脚分配。
3.2 基础执行控制按钮
对于断点相关按钮
点击开始/停止仿真按钮,进入如下界面:
对于相应按键功能介绍
3.3 查看程序段/函数执行时间
首先,点击魔术棒按钮,如下:
进入到如下界面:
按照顺序点击,进入如下界面:
将“Core Clock”改为72MHz(使用的STM32F103C8T6,其他型号根据时钟频率进行相关更改)。
3.4 结束仿真报错解决方法
我们在使用过程中可能在结束仿真时可能会遇到如下情况:
原因:MDK5.23以后对中文的支持不友好
解决方法:
1、仿真结束前将所有断点清除
2、将工程路径改浅,并改成全英文路径
3.5 工具栏常用窗口按钮介绍
3.5.1 Call Stack窗口:查看函数调用关系&局部变量
其中1是函数的类型名,2是函数的首地址,3是函数的返回类型
3.5.2 Watch窗口:查看函数首地址&变量值,设置全局变量在被读或写后自动停止运行
3.5.3 Memory窗口:内存查看窗口
3.5.4 Peripheral窗口:查看寄存器的值
4. 仿真时需要注意的点
4.1 仿真时使用MDK的Level 0等级优化
4.2 调试停止在断点处时,只是内核停止,外设会继续运行
4.3 断点的设置要有时间观念,考虑到是否会打断正常通信
Visual Studio编辑器左侧菜单栏不小心关掉如何打开(左侧解决方案资源管理器不显示如何打开)、C语言中int main和void main的区别以及C工程的创建_visual studio2022左边栏怎么打开-CSDN博客
Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案-CSDN博客