、概述

该文章总结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)使用教程(三)_在线调试的更多相关文章

  1. Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  2. ARM 7 用户模式下禁止/使能中断的一种方法--使用软中断 for Keil MDK

    最近写一个程序,需要在用户模式下关中断,但ARM 7的体系结构决定了中断必须在特权模式下才可以更改,所以想到使用ARM的软中断来实现关中断和开中断. 使用软中断,首先要有硬件指令的支持.ARM有条指令 ...

  3. Keil MDK 和 IAR 两款ARM开发工具区别比较

    首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势.对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是 ...

  4. Keil MDK编译器(V4.03)与J-LINK使用

    前几天进手了一个J-LINK,因为H-JTAG毕竟对MDK支持的不是太完美,比如用keil mdk上面的下载按钮烧录程序,不是直接就能烧录进去,而是弹出H-Flash软件,再手工选择文件烧录:而且用H ...

  5. keil MDK启动文件分析---基于LPC2100系列(其实都是相通的)

    转用MDK有一段时间了,越来越觉得MDK的强大,因为我之前都是用ADS1.2开发产品,所以更能体会到MDK的强大与易用性.MDK编译出来的代码与ADS1.2相比,代码量减少了很多,我的一个工程用ADS ...

  6. Keil MDK入门---从新建一个工程开始

    熟悉Keil C51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例, ...

  7. 转:Keil MDK从未有过的详细使用讲解

    来自:http://blog.csdn.net/zhzht19861011/article/details/5846510 熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是 ...

  8. Keil MDK下如何设置非零初始化变量

    一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始 ...

  9. 有趣的keil MDK细节

    1.MDK中的char类型的取值范围是? 在MDK中,默认情况下,char 类型的数据项是无符号的,所以它的取值范围是0-255.它们可以显式地声明为signed char 或 unsigned.因此 ...

  10. 基于IAP和Keil MDK的远程升级设计

    写在前面:三个周之前,我突然想写一个远程升级的程序.那个时候我只是大概知道IAP的意思是在应用编程,但怎么编,我还一无所知.我给自己定下一个个阶段目标,从最基础的代码一点点写起,解决一个又一个的问题. ...

随机推荐

  1. How to Modify Public Network Information including VIP in Oracle Clusterware (文档 ID 276434.1)

    APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.3 to 12.1.0.2 [Release 11.2 to 12. ...

  2. 为view添加约束constraints

    在相应要设置约束的view中按住鼠标右键进行拖拽,然后向指定的方向添加约束,如图: 拖拽的时候会显示一条蓝线,如上图所示,然后手指离开鼠标的时候会弹出向对应的约束供添加约束的时候进行使用如图:

  3. LeetCode:237

    题目:Delete Node in a Linked List(从列表中删除指定结点) 描述:Write a function to delete a node (except the tail) i ...

  4. js对象2--工厂模式的由来--杂志

    一:工厂模式引入前提例子 先看一个案例 <script type="text/javascript"> var person= new Object(); //创建一个 ...

  5. DB2 Magazine 中文版: 访问 iSeries 数据

    当您第一次开始学习 DB2 for iSeries 时,一下子要弄清楚如何访问所有数据可能有些令人生畏.我将介绍访问 DB2 for iSeries 数据的一些常见的方法,并展示如何开始开发访问存储在 ...

  6. c++引用小问题!

    两段程序 string version(const string &s1,const string &s2) { string temp; temp =s2+s1+s2; return ...

  7. 如何使用编辑模板在ASPxGridView中进行新增修改(除去常规的gridviw模板编辑外)

    aspgridview模板编辑效果图: //前端代码:(核心: <Templates><EditForm>.....中间可用栅格样式布局等(随意)...</Templat ...

  8. CLRS: online maximum (n,k)algorithm

    //the first k elements interviewed and rejected, //for  the latter n-k elements ,if value >max,re ...

  9. WP_3种磁贴效果设置

    private void ApplicationBarIconButton_Click_1(object sender, EventArgs e) { var tileData = new FlipT ...

  10. (笔记)angular material 选项卡用法