Keil系列教程09_调试仿真
置顶/星标公众号,不错过每一条消息!
本教程由原创作者strongerHuang于2018年11月更新发布。
标签:Keil、 MDK-ARM、 µVision
版权所有:禁止商用
申明:该文档仅供个人学习使用,转载请公众号联系作者授权。
1写在前面
调试对于程序员来说是一个比较重要的环节,因此就很有必要掌握Keil的这些调试功能。
点击Debug调试按钮,进入调试状态,就会出现如下图Debug Toolbar调试工具栏。
我们调试需要用到的按钮包含上图框出来的这些按钮,但常用的按钮就是调试工具栏前八个:复位、全速运行、停止运行、单步运行、逐步运行、跳出运行、运行到光标行、跳转到暂停行。
2
Shortcut Keys快捷键这些工具栏按钮的主要含义可以参看《Keil系列教程03_主窗口和工具栏详细说明》。
调试工具栏按钮位于菜单Debug中,同时调试视图窗口位于菜单View。可以参看文章《Keil系列教程04_菜单概述》。
同样,这些调试工具栏按钮可通过快捷键实现,有些默认没有快捷键,可以通过Configuration添加快捷键。请参看文章《Keil系列教程08_Configuration(二)》Shortcut Keys 快捷键章节内容。
下面带领大家掌握那八个调试按钮、四个断点按钮,以及部分调试视图窗口的内容。
3
八个调试按钮保证代码编译无误,点击“启动/停止调试”按钮(如下图),或快捷键Ctrl + F5,进入调试模式。此时就会出现如文中开头的调试工具栏。
3.1 Reset复位
Reset复位,让程序复位到起点,恢复到初始状态。
3.2 Run全速运行
Run全速运行(F5),让程序处于运行状态。此按钮在程序停止运行时有效。
3.3 Stop停止运行
Stop停止运行,让正在运行的程序停止下来。此按钮在程序运行时有效。
3.4 Step单步运行
Step单步运行(F11),每点一次按钮,程序运行一步(单步),遇到函数会跳进函数执行(箭头进入括号)。此按钮在程序停止运行时有效。
3.5 Step Over逐步运行
Step Over逐步运行(F10),每点一次按钮,程序运行一行(单行),遇到函数跳过函数执行(箭头跳过括号)。此按钮在程序停止运行时有效。
3.6 Step Out跳出运行
Step Out跳出运行(Ctrl + F11),每点一次按钮,程序跳出当前函数执行(箭头跳出括号),直到跳出最外面的函数(main函数)。此按钮在程序停止运行时有效。
3.7 Run to Cursor Line运行到光标行
Run to Cursor Line运行到光标行(Ctrl + F10),将光标放在某一行,点击该按钮,程序全速运行,直到运行到光标的位置停止下来。(前提是程序能运行到光标所在行)。
3.8 Show Next Statement跳转到暂停行
Show Next Statement跳转到暂停行,点击该按钮,跳转到程序暂停(停止)所在行。主要用我们打开多个文件,不知道程序暂停在哪里。此按钮在程序停止运行时有效。
4
四个断点按钮调试时,这四个按钮也常用,从左到右依次是:插入/移除断点、 使能/失能断点、 失能所有断点、 取消所有断点。
4.1 插入/移除断点
Insert/Remove Breakpoint插入/移除断点(F9),点击一下按钮,在光标所在行插入一个断点,再点击一次,则移除断点。
该按钮操作等于用鼠标在代码所在行前面点击一次,注意只有在灰色所在行才有效(也就是程序能执行的地方),如下图:
4.2 使能/失能断点
Enable/Disable Breakpoint使能/失能断点(Ctrl + F9),在有断点基础上,点击一下按钮,失能该断点,再点击一次,则使能该断点。
失能断点就是保留该断点,但该断点无效(程序执行到该处不停止)。
4.3 失能所有断点
Disable All Breakpoints失能所有断点,保留所有断点,但都无效(和上面一个道理),但这里不能再次使能所有断点。
4.4 取消所有断点
Kill All Breakpoints取消所有断点(Ctrl + Shift + F9),和上面失能不一样,这里是不保留断点,即取消工程所有断点,也叫杀掉所有断点。
5
调试视图窗口调试视图窗口只有进入调试模式时才会出现,其窗口名称详情可参看文章《Keil系列教程04_菜单概述》中View菜单章节。
这里讲述几个在调试时常用的视图窗口。
5.1 Watch窗口
Watch查看变量的窗口,有Watch1和Watch2两个窗口,都一样,方便用户多个窗口同时查看。
查看这些调试视图窗口可以通过菜单,或点击工具栏按钮打开。
选中变量 -> 右键 -> Add ‘xxx’ to ->Watch1,此时自动会弹出Watch1窗口:
5.2 System Viewer窗口
System Viewer系统(外围IO、USART、TIM等)窗口,可以理解查看外设寄存器的窗口,如下图,查看USART寄存器值的窗口。
这些调试视图窗口只针对于调试时,方便大家查看一些调试信息,掌握这些内容会提高你的调试效率,以及更精确定位Bug。
6
说明1.该文档仅供个人学习使用,版权所有,禁止商用。
2.本文由我一个人编辑并整理,难免存在一些错误。
3.本文收录于公众号「嵌入式专栏」,关注微信公众号回复【Keil系列教程】即可查看全系列教程。
7最后
若觉得文章对你有帮助,随手点赞、分享,也是对我莫大的支持和鼓励。
扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!
长按识别图中二维码关注