KEIL 调试的 ini 文件有什么用?
在初学者眼里,调试手段很多,自己平常使用调试手段的具有局限性、单一性,碰到复杂的问题还是很难解决。比如看watch窗口、memory窗口、打断点这些基本的调试手段。
就比如新接手中的一个项目,总是会出现串口通信错误,我也知道这是两次数据发送混乱了,但就是很难解决,为什么?因为通信是时时刻刻发生的,而你却不知道会在哪一刻发生错误。即使你一直处于在线调试状态,按照一般的调试手段,你也只能通过 Watch、Memory 之类的调试手段获得一些发生通信错误的那一刻的数据,但是之前的数据却早已淹没在时间长河里,你不知道在发生通信错误之前发生了什么,而往往通信错误之前的历史数据才是重中之重。
如何记录调试过程中的历史数据??
在keil里面:
ITM 调试,硬件不支持就不能使用
ini文件可不用硬件支持也可以使用
ini文件相当于一个额外的.c 文件,可以实现如单片机程序的绝大多数事情,比如读取 IO,读取寄存器,读取内存,操作寄存器,写入内存等等,更多详细的内容可参看官方的在线帮助文档。
当然你也可以直接像打开 txt 文件一样打开这个文件。
而你会发现,和写 C 程序一样,可定义变量、函数,你也可以使用 // 来进行必要的注释,当然 /**/ 也是可以的。本文以调用函数为例。
FUNC int add(int a, int b)
{ printf("hello world!!!\n");;return (a+b);
}FUNC void MyRegs(void)
{ printf ("---------- MyRegs() ----------\n");printf (" R4 R8 R9 R10 R11 R12\n");printf (" %04X %04X %04X %04X %04X %04X\n",R4, R8, R9, R10, R11, R12);printf ("------------------------------\n");
}FUNC void TEST_PRINTF(void)
{ printf("test printf!!!\n");;
}
将.ini 文件添加到初始化文件中,KEIL 进入调试模式的时候,会自动加载这个文件,并执行里面的内容,假设我们保存为test.ini
在进入调试模式下,程序在没运行下或者停止(打断点停止),可编辑ini文件,可编辑文件的话,就有红色框框下面这个选项
ini文件编辑后,编译
通过command串口输入命令,调用ini文件里面的函数,程序运行时调用,按ENTER键结束调用输入
也可以定义按钮,调用ini文件里面的函数,程序运行时调用
在command窗口输入创建按钮命令,可创建按钮
分别输入两个命令,创建两个按钮,对应的两个命令
DEFINE BUTTON "MyRegs","MyRegs()" /*调用调试函数*/DEFINE BUTTON "TEST_PRINTF","TEST_PRINTF()" /*调用调试函数*/
按下按钮可以可在运行过程中,任意调用运行函数;
比如一直按下
command窗口一直输出调用函数运行输出的结果
删除按钮MyRegs在command输入
KILL BUTTON 1 /* Kill Toolbox Button number 1 */
删除按钮TEST_PRINTF在command输入
KILL BUTTON 2 /* Kill Toolbox Button number 2 */
KEIL 调试的 ini 文件有什么用?相关推荐
- KEIL 调试经验总结
来源:公众号[鱼鹰谈单片机] 作者:鱼鹰Osprey ID :emOsprey 通过前面的多篇文章(已整理成专辑)我们已经了解了很多的 KEIL 调试方法,但是到底该怎么使用这些方法呢?这篇文章将 ...
- keil工具中中ini文件的使用
ini文件的编写: FUNC int add(int a, int b) { printf("hello world!!!\n");;return (a+b); }FUNC voi ...
- 语言 读ini文件_让C语言的调试更加高大上
一般在写一个项目的时候,为了更直观的调试,我们在程序里都会打printf调试语句,随着项目越写越多,printf也会越来越多,但项目准备结尾的时候,这时候开始优化就会发现,你想完全把printf语句都 ...
- 佛祖保佑,永无 BUG,永不修改 | KEIL 调试系列总结篇
本篇将总结前面关于KEIL调试系列文章,方便后来人系统查看文章. 在此之前,请看以下视频: (视频请看原文链接) 这个视频展示了鱼鹰平时是如何运用前面的KEIL调试方法进行调试的. 为了让自己能够在遗 ...
- keil调试串口的软件仿真方法
Keil(MDK-ARM)使用教程(三)_在线调试 keil调试串口的软件仿真方法 由于我是直接使用(打开现有的软件工程),如果跟着需要下载上面演示参考的软件工程才行.工程默认是使用硬件在线调试,接下 ...
- 双系统启动boot.ini文件的秘密
Windows NT类的操作系统,也就是Windows NT/2000/XP中,有一个特殊文件,也就是"BOOT.INI"文件,这个文件会很轻松地按照我们的需求设置好多重启动系统. ...
- keil如何添加h文件_【专栏】Keil系列教程
置顶/星标公众号,不错过每一条重要消息! 本教程由作者strongerHuang原创发布. 版权所有:禁止商用 申明:该文档仅供个人学习使用,转载请公众号联系作者授权. 该系列教程结合MDK-ARM整 ...
- 在 WinCe 平台读写 ini 文件
在上篇文章开发 windows mobile 上的今日插件时,我发现 wince 平台上不支持例如 GetPrivateProfileString 等相关 API 函数.在网络上我并没有找到令我满意的 ...
- BOOT.INI文件的目的[微软提供]
本论文的信息适用于: · microsoft windows nt advanced server · microsoft windows nt workstation versions 3.5, 3 ...
最新文章
- Nginx对某个文件夹或整个站点进行登录认证的方法
- 只需 4 步,自己搞个 Spring Boot Starter!
- 【图】架构设计的10条经验
- Silverlight C# 游戏开发:Flyer09扇动翅膀的蝴蝶
- Java微服务(四)【idea配置本地maven】【中文idea版本】(手把手编写,超级详细)
- 3.1.1_Spring如何加载和解析@Configuration标签
- 一个应用程序和另一个应用程序apk文件信息
- 零基础可以学习java吗_零基础真的可以学习java吗?
- bat执行clsss
- cpu使用率_微软:Windows 10的高CPU使用率问题已解
- [CTO札记]给新助理的3句话
- 《SOA In the real world》第一章译稿(含下载)
- 数据治理之数据质量管理
- jQuery图片弹出Lightbox插件带轮播
- SolidWorks自定义装配体模板的方法
- 愿你我,能被这世界温柔以待
- 【书影观后感 四】《围城》十年
- 【数论】扩展欧几里得算法(EXTENDED-EUCLID)
- “丧偶式”恋爱?博士男友每晚12点才回家,要分手吗......
- 腾讯云配置jupyter notebook远程登录
热门文章
- matlab最长回撤期,最大回撤,最大回撤恢复时间与最大回撤持续期
- html中bak是什么文件怎么打开,bak文件怎么打开?小编教你bak文件打开方法
- Flutter2.0重磅发布!带你一文打尽Flutter Engage
- ​区块链技术的重要性
- 医学计算机应用基础考纲,计算机应用基础考纲
- 使用Ansj实现分词
- 2022 CCPC 威海 赛后总结
- codeforces1430E String Reversal
- java restful项目打包_GitHub - yangguang010/RestfulAPI: 使用java封装萤石开放平台的接口 HTTPS—SDK。可以直接将api封装成jar包...
- vue实现打开网页自动播放音乐