历史上的今天
今天是:2024年09月17日(星期二)
2019年09月17日 | Keil(MDK-ARM)系列教程(八)_在线调试(Ⅰ)
2019-09-17 来源:eefocus
Ⅰ、写在前面
Keil在线调试的内容有很多,本文带来在线调试常用的内容:Debug Toolbar调试工具栏(复位、全速运行、停止运行、单步调试、逐行调试、跳出调试、运行到光标行、跳转到暂停行、调试窗口)快捷按钮的详细内容。

Keil工具栏总共有三种:文件工具栏(File Toolbar)、编译工具栏(Build Toolbar)、调试工具栏(Debug Toolbar)。编译工具栏只在编辑模式有效,调试工具栏只在调试模式下有效。文件工具栏在两种模式下都有效。
文件工具栏可以参看文章:Keil(MDK-ARM)系列教程(二)_工具栏详细说明
本文内容已经整理成PDF文件,提供给大家下载:
http://pan.baidu.com/s/1nuJ0RDR
Ⅱ、本文要点
调试工具栏是我们在线调试时常用的工具栏(按钮),掌握这些按钮就能快速的调试代码,也即能快速的定位我们程序哪些地方存在不足。
1.编译,进入调试
编辑(或修改)代码之后,我们需要编译代码(F7)查看是否有错误,编译无误后点击调试按钮(Ctrl + F5)进入在线调试。
编译,进入调试动画效果:

2.复位,全速运行,停止运行
复位:让程序复位到起点,调试设置恢复到初始状态。这里可以参看文章Keil(MDK-ARM)系列教程(四)_工程目标选项配置(Ⅱ)Debug选项。
全速运行(F5):可以让程序运行常看运行状态,也可以在特定位置打断点,让程序运行到特定位置,查看运行状态。
停止运行:程序全速运行时(有效),点击该按钮可让程序停止运行。
复位,全速运行动画效果:

3.单步调试
单步调试(F11)也就是每点一次按钮,程序运行一步,遇到函数会跳进函数执行。
单步调试动画效果:

4.逐步调试
逐行调试(F10)也就是每点一次按钮,程序运行一行,遇到函数跳过函数执行。
逐步调试动画效果:

5.跳出调试
跳出调试(Ctrl + F11)也就是每点一次按钮,程序跳出当前函数执行,直到跳出最外面的函数(main函数)。
跳出调试动画效果:

6.运行到光标行
运行到光标处(Ctrl + F10)即将光标放在某一行,点击该按钮(或Ctrl + F11),程序执行到光标的位置就会停止下来(前提是程序能执行到光标的位置)。
运行到光标行动画效果:

7.跳转到暂停行
这个功能在程序停止运行时有效,主要的作用就是我们打开了很多文件,不知道将程序翻到哪里去了,点击改按钮即可知道我们的程序暂停在那个位置。
跳转到暂停行动画效果:

8.调试窗口
【调试窗口】是在调试的时候可以查看的窗口,这里有别于平时编辑状态下的窗口。平时编辑时View菜单下面的选项很少,但是进入调试模式,这里就多了很多选项,这些选项就是调试时查看的窗口(见下图)。

下面简述一下常用的调试窗口:
A.watch查看窗口
Watch查看窗口也就是我们常用于查看变量的窗口。

B.系统外设窗口
这个窗口用于查看外设寄存器数值的窗口。

Ⅲ、说明
每一种工具的功能都是需要自己亲自实践,并长期使用才能达到灵活运用的地步,不建议死记硬背。若要了解更多关于Keil的使用教程,可以进入我微信公众号或博客查看。
以上内容仅供参考,若有不对之处,敬请谅解。
史海拾趣
|
刚才无聊的翻看谭浩强的《c++程序设计》,发现在182页的用指针显示二维数组的程序有点别扭,分析了一下,觉得是错的,大家也与我一同鉴别一下吧 #include using namespace std; int main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23} ...… 查看全部问答> |
|
最近在搞STM32的USB模块,要做一个功能就是程序要知道USB是否在连接状态,现在用的是 bDeviceState 这个变量 我在USB_init()中把这个变量初始化为 bDeviceState = UNCONNECTED;,这个变量在 上电初始化之后,会被USB Reset 初始化为:b ...… 查看全部问答> |
|
#include void PLLSet() { unsigned long ulRCC,ulDelay; ulRCC=SYSCTL_RCC_R; //读取当前RCC寄 ...… 查看全部问答> |
|
MSP430FR5720芯片下载程序有两种方式:SBW和JTAG,怎么选择为JTAG模式,TEST和RST引脚怎么连接? 现在的电路板将两个引脚都拉高,但是IAR总是显示错误:找不到设备! 求助各路大神! … 查看全部问答> |
|
最近几天刚刚回学校,就受到快递小哥连环夺命催,我要是再回来晚几天,这块小巧可爱的板子就要跟我说再见喽,迫不及待拆开快递,上电,绚烂的LED灯光效果映入眼帘,啥都不说,这手感,赞。 之前做过一个SWD转接头,正好用上。 打开样板工程,可能 ...… 查看全部问答> |
|
最近做了一个频率计程序,计数输入信号,结果通过示波器发现信号源不是标准方波导致计数值不准确,怎么利用FPGA运放将输入信号整形成一个占空比为50%的方波,请高手指导一下,谢谢! … 查看全部问答> |
|
接地 接地是电子设备的一个很重要问题。接地目的有三个: (1)接地使整个电路系统中的所有单元电路都有一个公共的参考零电位,保证电路系统能稳定地干作。 (2)防止外界电磁场的干扰。机壳接地可以使得由于静电感应而积累在机壳上的大量电荷通过大 ...… 查看全部问答> |




