SWD仿真与调试说明.pdf
SWD仿真与调试说明
SWD仿真与调试说明
程序编写好之后,在运行的过程中难免不会存在BUG,此时就需要不断地进行调试。SWD
仿真与调试方法可以实时跟踪程序运行过程,实时查看程序中变量值,快速定位BUG所在位
置,极大地提高了调试效率。这里就讲解一下SWD仿真与调试方法。
1、连接好仿真器和开发板,给最小系统板上电,打开keil软件,先保证程序编译正常、
下载正常且运行正常,因为仿真与调试是基于上诉正常情况进行的。
2、为了让仿真一开始就直接运行到main函数,需要勾选Runtomain()选项,步骤如图1
所示:
图1设置Runtomain()选项
3、设置完成后,点击keil上的图标,或者按Ctrl+F5进入仿真(如果此时代码已经更
新,则会将更新后的代码下载到开发板后,在进行仿真),如图2所示:
1/5
SWD仿真与调试说明
图2进入仿真
4、因为前面已经勾选Runtomain()选项,所以进入仿真后程序直接运行到main函数入口
处,如图3所示:
图3仿真运行到main函数入口处
2/5
SWD仿真与调试说明
5、进入仿真界面后,会出现一个Debug工具栏,仿真的时候就是要用到该工具栏按钮,下
面来介绍一下该工具栏按钮功能。如图4所示:
图4Debug工具栏介绍
复位:相当于硬件复位,按下该按钮后,程序从头开始执行。
执行到断点处:按下此按钮后,可以快速执行到断点处,从而跳过那些不需要查看的执
行过程,可以节省调试时间。
停止运行:当程序一直在运行时,按下此按钮可以使程序停止,从而可以进行单步调试。
单步执行:按下此按钮,程序就执行一步,当遇到函数时,就会跳到函数里面去执行。
跳过执行:按下此按钮,如果没有遇到函数,等同于单步执行;如果遇到函数,则单步
执行过该函数,而不进入函数内部去执行。
跳出执行:当在函数内部单步执行的时候,按下此按钮,可以一步执行完函数剩余的代
码并跳出函数,回到函数被调用的位置。
执行到光标处:按下此按钮,可以快速执行到程序中的光标所在处,和执行到断点处功
能类似,区别就是断点可以设置多个,执行多次,而光标只有一个,只能执行一次。
跳回执行处:当程序在执行时,移动光标到程序另外一次查看(非执行处),按下此按
钮可以快速回到程序当期执行的地方。
命令窗口:按下此按钮可以打开或者关闭命令窗口。
汇编窗口:按下此按钮可以打开或者关闭汇编窗口。在汇编窗口里可以查看汇编代码,
有助于分析代码。
符号窗口:按下此按钮可以打开或者关闭符号窗口。在符号窗口里可以查看代码中函数
的内存地址和变量的类型。
寄存器窗口:按下此按钮可以打开或者关闭CPU特殊寄存器窗口。在CPU特殊寄存器窗
口里可以查看特殊寄存器的值。
调用堆栈窗口:按下此按钮可以打开或者关闭CallStack+Locals窗口,该窗口显示当
3/5
SWD仿真与调试说明
前函数的局部变量及其值。
变量观察窗口:有2个变量观察窗口(下拉选择),该按钮按下,会弹出一个显示变量
的窗口,输入你所想要观察的变量/表达式,即可查看其值。
内存查看窗口:有4个内存查看窗口(下拉选择),该按钮按下,会弹出一个内存查看
窗口,可以在里面输入你要查看的内存地址,然后观察这一片内存的变化情况。
串口打印窗口:有4个串口打印窗口(下拉选择),该按钮按下,会弹出一个类似串口
调试助手界面的窗口,用来显示从串口打印出来的内容。
逻辑分析窗口:该图标下面有3个选项(下拉选择),我们一般用第一个,也就是逻辑
分析窗口(LogicAnalyzer),点击即可调出该窗口,通过SETUP按钮新建一些IO口,就可