查看原文
其他

Keil系列教程09_调试仿真

strongerHuang 嵌入式专栏 2021-01-31

置顶/星标公众,不错过每一条消息!


    本教程由原创作者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最后

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


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



长按识别图中二维码关注

Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存