Keil(MDK-ARM)使用教程(三)_在线调试
Ⅰ、概述
该文章总结Keil(MDK-ARM)在线调试相关的内容,详情请往下看。
该文章是基于新建好软件工程来讲述,关于Keil的下载、安装和新建工程我已将在前面做了详细的总结,不懂的可以参看我博客里面相关的文章。
我将每一篇关于Keil的文章都汇总在一起,回顾前面的总结请点击下面的链接(进入我博客查看):
http://blog.csdn.net/ybhuangfugui/article/details/51647893
本着免费分享的原则,方便大家手机学习知识,定期在微信平台分享技术知识。如果你觉得分享的内容对你有用,又想了解更多相关的文章,请用微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,将有更多精彩内容等着你。
Ⅱ、下载
Keil集成开发工具和支持包,可以到官方网站下载,也可以到我的360云盘下载。现在(2016.06)MDK-ARM最新版本是5.20,支持包根据自己MCU的型号选择下载,由于我总结是基于ST芯片的,在云盘保存了ST的支持包,我会定期在360云盘更新。
Keil下载地址:
官方网站:http://www.keil.com/download/product
360云盘:https://yunpan.cn/cPYaeY23RSsbb 访问密码 9aba
支持包下载地址:
官方网站:http://www.keil.com/dd2/Pack
360云盘:https://yunpan.cn/cxWnPxniRXTMS 访问密码 9a98
演示参考的软件工程:
https://yunpan.cn/cSnTMev59yXmU 访问密码 f9ff
Ⅲ、调试功能描述
由于我是直接使用(打开现有的软件工程),如果跟着需要下载上面演示参考的软件工程才行。工程默认是使用硬件在线调试,接下来按照每一点来讲述。
1.编译+调试
打开软件工程 -> 编译 -> 调试
这里的编译建议使用Build Target(第2个按钮)编译工程(如下图动画),也就是使用快捷键F7。Translate(第1个按钮)是编译当前活动文件。Rebuild all Target files(第3个按钮)是重新编译所有目标文件。
在线调试分类:软件在线调试和硬件在线调试;由于现在硬件成本比较便宜,一般我们都使用硬件在线调试,也就是软件直接下载到芯片,我们查看运行状态。

2.复位+全速运行
复位 -> 全速运行
复位,使程序复位到初始;
全速运行F5,我们可以在很多地方打断点,让程序运行到断点位置,此时程序就停止下来了。

3.单步调试
【单步调试】也就是每点一次按钮,程序运行一步。遇到函数会进入函数。
点击图标按钮,或者按快捷键F11。
(这里取消上面的断点)

4.逐步调试
【逐步调试】即逐行调试,也就是每点一次按钮,程序运行一行。遇到函数不会进入函数。
点击图标按钮,或者按快捷键F10。

5.跳出调试
【跳出调试】即挑出函数调试,也就是每点一次按钮,程序跳出一个函数,直到跳出最外面的函数(main函数)。
点击图标按钮,或者按快捷键Ctrl + F11。

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

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

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

下面着重讲述一下常用的一个调试窗口吧
A.内存窗口,也就是我们查看变量的窗口

B.系统外设窗口,也就是外设寄存器数值查看的窗口

Ⅳ、说明
以上是基于Keil开发工具中的MDK-ARM来进行总结,Keil C51等或许有些地方存在差异。每一种工具的功能都是需要自己亲自实践,并长期使用才能达到灵活运用的地步,不建议死记硬背。
以上总结仅供参考,若有不对之处,敬请谅解。
Ⅴ、最后
关注微信,回复“更多内容”,将获得更多内容(如:UCOS实例等,不断更新中......)。
如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。
Keil(MDK-ARM)使用教程(三)_在线调试的更多相关文章
- Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发
Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...
- ARM 7 用户模式下禁止/使能中断的一种方法--使用软中断 for Keil MDK
最近写一个程序,需要在用户模式下关中断,但ARM 7的体系结构决定了中断必须在特权模式下才可以更改,所以想到使用ARM的软中断来实现关中断和开中断. 使用软中断,首先要有硬件指令的支持.ARM有条指令 ...
- Keil MDK 和 IAR 两款ARM开发工具区别比较
首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势.对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是 ...
- Keil MDK编译器(V4.03)与J-LINK使用
前几天进手了一个J-LINK,因为H-JTAG毕竟对MDK支持的不是太完美,比如用keil mdk上面的下载按钮烧录程序,不是直接就能烧录进去,而是弹出H-Flash软件,再手工选择文件烧录:而且用H ...
- keil MDK启动文件分析---基于LPC2100系列(其实都是相通的)
转用MDK有一段时间了,越来越觉得MDK的强大,因为我之前都是用ADS1.2开发产品,所以更能体会到MDK的强大与易用性.MDK编译出来的代码与ADS1.2相比,代码量减少了很多,我的一个工程用ADS ...
- Keil MDK入门---从新建一个工程开始
熟悉Keil C51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例, ...
- 转:Keil MDK从未有过的详细使用讲解
来自:http://blog.csdn.net/zhzht19861011/article/details/5846510 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是 ...
- Keil MDK下如何设置非零初始化变量
一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始 ...
- 有趣的keil MDK细节
1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed char 或 unsigned.因此 ...
- 基于IAP和Keil MDK的远程升级设计
写在前面:三个周之前,我突然想写一个远程升级的程序.那个时候我只是大概知道IAP的意思是在应用编程,但怎么编,我还一无所知.我给自己定下一个个阶段目标,从最基础的代码一点点写起,解决一个又一个的问题. ...
随机推荐
- Android——状态栏通知栏Notification
1.AndroidManifest.xml注意要同时注册Notification02Activity <!-- 状态通知栏 Notification --> <acti ...
- 关于static/const的作用
这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区). 2) 在模块内 ...
- React生命周期和虚拟DOM
一.虚拟DOM 1.React并不直接操作DOM,React中的render方法,返回一个DOM描述,React能够将这个DOM描述与内存中的表现进行比较,然后以最快的方式更新浏览器 2.React实 ...
- CSS垂直水平居中方法整理
CSS定位中常常用到垂直居中,比如覆盖层上的弹框. 兼容性比较好的方法: <!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transition ...
- phongap+ jquery + asp.net +android,我把我遇到的问题和处理方法的连接总结一下
这些都是最基本的问题,在实际的运用中都会用到 第1章.搭建Android的开发环境-跟我学编程 Win7旗舰版中的IIS配置asp.net的运行环境 - 追夢 - 博客园 vs2012下asp.net ...
- iface eth0 inet dhcp
- openstack实例热迁移
[DEFAULT]scheduler_default_filters=AllHostsFilterallow_resize_to_same_host=Trueallow_migrate_to_same ...
- Android手机指令操作释疑
有人问我一个关于Android手机root与否的问题,她说明明iTools显示已取得root权限,但她就是没法在该手机上运行需要root权限的App如钛备份等等.我告诉她最好的确认方式便是以adb指令 ...
- java值得注意的几个问题
1.一个源文件中只能有一个类是public的,其他的都是默认权限的: 2.一个类只能作为public或者默认权限(就是没有修饰符的意思): 3.源文件的public类的名字必须要跟文件名保持一致,否则 ...
- Python之路【第七篇】:线程、进程和协程
Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...