Keil(MDK-ARM)使用教程——在线调试

Keil(MDK-ARM)使用教程——在线调试Keil(MDK-ARM)使用教程(三)_在线调试由于我是直接使用(打开现有的软件工程),如果跟着需要下载上面演示参考的软件工程才行。工程默认是使用硬件在线调试,接下来按照每一点来讲述。 1.编译+调试打开软件工程 -> 编译 -> 调试这里的编译建议使用BuildTarget(第2个按钮)编译工程(如下图动画),也就是使用快捷键F7。Translate(第1个按钮)是编译当前活动文…

大家好,又见面了,我是你们的朋友全栈君。

Keil(MDK-ARM)使用教程(三)_在线调试

由于我是直接使用(打开现有的软件工程),如果跟着需要下载上面演示参考的软件工程才行。工程默认是使用硬件在线调试,接下来按照每一点来讲述。

 

1.编译+调试

打开软件工程 -> 编译 -> 调试

这里的编译建议使用Build Target(第2个按钮)编译工程(如下图动画),也就是使用快捷键F7。Translate(第1个按钮)是编译当前活动文件。Rebuild all Target files(第3个按钮)是重新编译所有目标文件。

在线调试分类:软件在线调试和硬件在线调试;由于现在硬件成本比较便宜,一般我们都使用硬件在线调试,也就是软件直接下载到芯片,我们查看运行状态。

Keil(MDK-ARM)使用教程——在线调试

 

2.复位+全速运行

复位 -> 全速运行

复位,使程序复位到初始;

全速运行F5,我们可以在很多地方打断点,让程序运行到断点位置,此时程序就停止下来了。

Keil(MDK-ARM)使用教程——在线调试

 

3.单步调试

【单步调试】也就是每点一次按钮,程序运行一步。遇到函数会进入函数。

点击图标按钮,或者按快捷键F11

(这里取消上面的断点)

Keil(MDK-ARM)使用教程——在线调试

 

4.逐步调试

【逐步调试】即逐行调试,也就是每点一次按钮,程序运行一行。遇到函数不会进入函数。

点击图标按钮,或者按快捷键F10

Keil(MDK-ARM)使用教程——在线调试

 

5.跳出调试

【跳出调试】即挑出函数调试,也就是每点一次按钮,程序跳出一个函数,直到跳出最外面的函数(main函数)。

点击图标按钮,或者按快捷键Ctrl + F11

Keil(MDK-ARM)使用教程——在线调试

 

6.运行到光标处

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

Keil(MDK-ARM)使用教程——在线调试

 

7.跳转到暂停行

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

Keil(MDK-ARM)使用教程——在线调试

 

8.调试窗口

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

Keil(MDK-ARM)使用教程——在线调试

 

下面着重讲述一下常用的一个调试窗口吧

A.内存窗口,也就是我们查看变量的窗口

Keil(MDK-ARM)使用教程——在线调试

 

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

Keil(MDK-ARM)使用教程——在线调试

 

 

Ⅳ、说明

以上是基于Keil开发工具中的MDK-ARM来进行总结,Keil C51等或许有些地方存在差异。每一种工具的功能都是需要自己亲自实践,并长期使用才能达到灵活运用的地步,不建议死记硬背。

以上总结仅供参考,若有不对之处,敬请谅解。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142509.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Nessus命令行使用方法

    Nessus命令行使用方法

  • Django之用户认证系统分析

    1.用户模型在django.contrib.auth.models.py包中定义了classUser(AbstractUser)类(1)User模型字段我在django中使用的是MySql,

    2021年12月30日
  • webpack es6转es5_nodejs支持es6吗

    webpack es6转es5_nodejs支持es6吗万恶的IE遗臭万年仍然需要填坑ie标准对html/css甚至js的规范简直相差甚远,所以,一般要解决的兼容问题很大一部分是为了解决ie的不兼容,虽然目前流行的ES6语法及规范将IE的考虑抛弃掉,默认放弃对IE的治疗,但是IE的兼容仍然是个问题!即使IE的使用率已经不到1%的市场占比。我们使用着舒服的ES6规范但是为IE又很头疼怎么办呢?Webpack开发了非常厉害的打包转换功能:转ES5!…

  • 国内常用NTP服务器地址及IP(阿里云时间服务器)

    国内常用NTP服务器地址及IP(阿里云时间服务器)210.72.145.44(国家授时中心服务器IP地址)133.100.11.8日本福冈大学time-a.nist.gov129.6.15.28NIST,Gaithersburg,Marylandtime-b.nist.gov129.6.15.29NIST,Gaithersburg,Marylandtime-a.timefreq.bldrdoc.gov132.

  • 多线程面试题(值得收藏)「建议收藏」

    多线程面试题(值得收藏)「建议收藏」史上最强多线程面试47题(含答案),建议收藏金九银十快到了,即将进入找工作的高峰期,最新整理的最全多线程并发面试47题和答案总结,希望对想进BAT的同学有帮助,由于篇幅较长,建议收藏后细看~1、并发编程三要素?1)原子性原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修…

  • treeview控件使用详解python_TreeView控件实践

    treeview控件使用详解python_TreeView控件实践TreeView控件可以通过HierarchicalDataTemplate和DataTemplate来自定义。1)HierarchicalDataTemplate用来支持HeaderedItemsControl,其中DataType指定当前的数据类型,只有符合这个类型才使用HierarchicalDataTemplate;ItemsSource用来指定ItemsHost;内部的自定义实现(…

    2022年10月23日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号