『7x24小时有问必答』
置顶/星标公众,不错过每一条消息!

      本教程由原创作者strongerHuang于2018年11月更新发布。
标签:Keil、 MDK-ARM、 µVision
版权所有:禁止商用
申明该文档仅供个人学习使用,转载请公众号联系作者授权。

1写在前面

调试对于程序员来说是一个比较重要的环节,因此就很有必要掌握Keil的这些调试功能。

点击Debug调试按钮,进入调试状态,就会出现如下图Debug Toolbar调试工具栏。

我们调试需要用到的按钮包含上图框出来的这些按钮,但常用的按钮就是调试工具栏前八个:复位、全速运行、停止运行、单步运行、逐步运行、跳出运行、运行到光标行、跳转到暂停行

2
Shortcut Keys快捷键

这些工具栏按钮的主要含义可以参看《Keil系列教程03主窗口和工具栏详细说明》。

调试工具栏按钮位于菜单Debug中,同时调试视图窗口位于菜单View。可以参看文章《Keil系列教程04菜单概述》。

同样,这些调试工具栏按钮可通过快捷键实现,有些默认没有快捷键,可以通过Configuration添加快捷键。请参看文章《Keil系列教程08Configuration(二)》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最后

若觉得文章对你有帮助,随手点赞、分享,也是对我莫大的支持和鼓励。

扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!

长按识别图中二维码关注

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码