Keil系列教程09_调试仿真

  • 分享一个朋友的人工智能教程,零基础!通俗易懂!希望你也加入到人工智能的队伍中来! www.captainbed.net

一、写在前面

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

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



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

二、相关描述

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

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

同样,这些调试工具栏按钮可通过快捷键实现,有些默认没有快捷键,可以通过Configuration添加快捷键。请参看文章《Keil系列教程08_Configuration(二)》Shortcut Keys 快捷键章节内容。

下面带领大家掌握那八个调试按钮、四个断点按钮,以及部分调试视图窗口的内容。

三、八个调试按钮

保证代码编译无误,点击“启动/停止调试”按钮(如下图),或快捷键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.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),和上面失能不一样,这里是不保留断点,即取消工程所有断点,也叫杀掉所有断点。

五、调试视图窗口

调试视图窗口只有进入调试模式时才会出现,其窗口名称详情可参看文章《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。

六、说明

1.该文档仅供个人学习使用,版权所有,禁止商用。

2.本文由我一个人编辑并整理,难免存在一些错误。

3.为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该教程同步更新于微信公众号【EmbeddedDevelop】,关注微信公众号回复【Keil系列教程】即可查看全系列教程。

七、最后

我的博客:http://www.strongerhuang.com
我的GitHub:https://github.com/EmbeddedDevelop

  我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

strongerHuang wechat
关注微信公众号,查看更多精彩内容!
本文对你有帮助吗?