现在软件的模拟功能都是非常强大,但是有时候会用不好。
原文地址:
那就看这里吧:http://www.cnblogs.com/strongerHuang/p/5596355.html
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等或许有些地方存在差异。每一种工具的功能都是需要自己亲自实践,并长期使用才能达到灵活运用的地步,不建议死记硬背。
以上总结仅供参考,若有不对之处,敬请谅解。
关键字:keil MDK-ARM 调试使用
引用地址:
keil(MDK-ARM)的调试使用
推荐阅读最新更新时间:2024-11-02 09:55
实战经验 | Keil、IAR、CubeIDE 中变量不被初始化方法
01 前言 有些时候在我们的应用过程中要求变量有连续性,或者现场保留,例如 Bootloader 跳转,某种原因的复位过程中我们有些关键变量不能被初始化,在不同的编译环境下有不同的设置,本文就这个操作做总结,分别介绍使用 Keil,IAR 和 CubeIDE 的操作方法,本文中所用芯片为STM32G431RBT6。 02 IAR 实现变量不初始化方法 IAR 实现相对简单,直接使用“__no_init”这个关键字即可,也就是在变量前面进行修饰: 为了验证是否执行成功,可以考虑周期性让系统复位,看变量的变化,比如下面的示例程序让系统周期复位,会发现每次 Test_NoInit 数据
[单片机]
KeilC51使用详解 (二)
第三章 Keil C51 vs 标准C 深入理解并应用C51对标准ANSIC的扩展是学习C51的关键之一。因为大多数扩展功能都是直接针对8051系列CPU硬件的。大致有以下8类:l 8051存储类型及存储区域l 存储模式l 存储器类型声明l 变量类型声明l 位变量与位寻址l 特殊功能寄存器(SFR)l C51指针l 函数属性具体说明如下(8031为缺省CPU)。 第一节 Keil C51扩展关键字 C51 V4.0版本有以下扩展关键字(共19个):_at_ idata sfr16 alien interrupt smallbdata large _t
[单片机]
STM32开发笔记25:STM32L0低功耗设计-使用Keil和ST-Link下载程序
单片机型号:STM32L053R8T6 继续项目的开发工作,突然发现,程序不能够正常下载到单片机中了,提示如下图所示的错误,我使用的是keil和ST-Link。 这个问题在我第1次调试的时候发生过1次,我认为是我误操作将芯片烧坏了,因为当时又反复的焊接了一下芯片,也没有修好,就把这件事情放下了。 今天再次出现,自己感觉可能和低功耗有关,仔细查看刚刚下载的程序,里面上来程序就进入低功耗,没有任何退出语句,所以应该是CPU不响应下载命令了。 按照这种思路,先将单片机的复位引脚接地,然后点击下载按钮的同时,放开复位引脚,居然成功了。 再仔细想不应该呀,ST-Link控制着复位引脚了,应该在下
[单片机]
电磁流量计的安装调试使用
与通常的仪表一样,电磁流量计在安装、接线完毕后,正式投入运行之前,应该检查以下安装、接线是否正确,仪表是否能正常工作。 在此必须强调指出,整套电磁流量计是已在制造厂流量校准装置上调整校准好的,只要核对传感器和转换器配套号、仪表系数是否正确等,一般不经任何调整就可以投入运行。对于一些缺乏使用经验的单位,仪表安装运行人员应该认真阅读相关的电磁流量计安装使用说明书中有关的技术说明,对于初次运行中所遇到的问题,要善于分析思索。 仪表投入运行前,传感器必须充满实际测量介质,通电后在静止状态下作零点调整。投入运行后亦要根据介质及使用条件定期停流检查零点,尤其对易沉淀、易污染电极、含有固体的非清洁介质,在运行初期应多检查,以获得经验,确定正常检
[测试测量]
LPC1788外部中断的例子,基于Keil MDK
网上LPC1700外部中断的例子都是ADS的,我来贡献个Keil MDK的吧 以外部中断0(EINT0)为例,低电平触发中断 关键代码如下: //头文件为MDK 4.23带的 LPC177x_8x.h ,代码中所用宏均在其中可以找到定义 #include LPC177x_8x.h LPC_IOCON- P2_10 = (LPC_IOCON- P2_10 & ~0x07) | 1; //把P2.10设为EINT0 LPC_SC- EXTMODE &= ~0x01; //中断为电平触发 LPC_SC- EXTPOLAR &- ~0x01; //低电平触发中断 LPC_SC- EXTINT |=
[单片机]
keil中printf
在keil中printf 默认是向串口中发送数据的,所以,如果应用该函数,必须先初始化串口,否则可能引起死机的情况,并且在printf之前应该先将TI置位,摘抄原因如下: 1.printf函数是调用putchar函数输入的,而putchar应该是先判断ti是否为1,不为1则等待为1。 如果为1则清0,然后送出一个字符。因此 你如果直接使用printf函数,你的程序就会在putchar函数中等待ti为1。这时你的程序就相当于直接死掉了。你可以通过改写putchar函数 实现自己的目的。TI相当于是初始化~不给赋初值就不干活 2.Keil的串口处理比较巧妙的,我的分析如下: putchar.c里面,是先检测TI再发送。这样做的目
[单片机]
Keil C51 与 ARM 并存的方法
很多朋友都在想,怎么让keil C51与ARM能够并存使用。有安装经验的朋友都知道,安好C51后再安ARm,C51不能正常工作;安好ARM后再安C51,ARM不能正常工作. 网上也有相关解决办法,不过不怎么样,要么不详细,要么就是复制粘贴。不多说看图片: 第一:先安装C51(必须先安装C51,不能先安装ARM,否则会失败。) iframe id="iframe_0.5839969520457089" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://image55.360doc.com/DownloadImg/2012/10/1720/2
[单片机]
keil4中头文件路径设置的方法汇总
个人记录: 感觉相对路径比较方便。 keil是从project文件所在目录找头文件,头文件的相对目录是相对.uvproj文件的。 目前我的个人习惯是 建立:Doc、Listing、Output、Project、User几个文件夹 Doc放文档和readme Listing设置为配置中的清单选项卡输出文件夹 Output设置为输出文件夹 Project放建立的工程文件 User放自己写的.c和.h(这部分后期可能做更改) 还可以有OS等操作系统的文件夹。 在这种情况下,包含头文件用相对方式写的话就是类似于: #include ..Userallkeillibrary.h #include ..UserS
[单片机]