为什么不喜欢 Keil ?

关注+星标公众,不错过精彩内容

3e413ffe98432bc84ad230f8fcf8d41e.gif

来源 | 工程师的废纸篓

首先声明本人并非Keil黑,本期纯吐槽下在使用Keil过程中的一些不顺手的地方,也极有可能讲的并不全面,不客观,望见谅,轻拍,也欢迎评论区讨论。

搞单片机写固件的朋友都会用到IDE,目前比较常见的IDE有:

编译器名称厂商
MDKARM
IARIAR
Eclipse+编译器(GCC)NXP的MCUxpresso,TI的CCS,ST的TrueSTUDIO
Embedded StudioSegger

其中MDK和IAR应该是最流行的两个IDE,MDK的粉丝可能还更多一些。实际使用过程中,MDK简洁的目录结构,方便的调试操作以及精简的安装包让人赞叹,新手很容易上手,但是用的时间久了,特别是用过更多的IDE后,你会发现,MDK缺少一些贴心的功能:

1. Load寄存器或Memory

各家IDE厂商都可以在View窗口看到芯片的寄存器或者Memory,以NXP提供的MCUXpresso SDK lwip_ping为例:

MDK:6fbd78fe0b97c9ed2d3259b217f697bd.pngIAR:b4f184014047058c022a1ea6e720eb73.png

有时在调试过程中,经常会遇到这样一种情况,代码前一个版本没有问题,新加入一些功能后出现了bug,比如某个UART不工作了,通过比对源码却没有发现明显的问题,在这种情况下,在线仿真是一个比较好的手段,但是如果代码复杂,解决该问题依旧需要花费更大的精力。

但是使用IAR或者MCUXpresso这类的IDE,可以将MCU的寄存器保存成文件,这样我们就可以在正常代码运行时保存一份寄存器列表文件,运行异常代码保存另一份寄存器列表文件,通过对比这两个文件去寻找具体哪个寄存器的某个bit产生的影响,从而在代码中找到对应bit的处理方式去解决该问题。

e3afa3315507650cce220ec3c2154471.png

40659b237387ab491d7988e94de5d841.png

IAR不仅提供了寄存器的Save功能,包括Watch窗口的 数据也可 以保存到电脑中,有些用户做ADC的采样,也可以直接把数组数据导入Excel来画出信号曲线

cee77197119c2e3ca785ae570c5b2156.png

IAR还提供了Memory的Save功能,这样用户就可以对某块板子进行校准存参,然后把其Flash的参数数据导出烧写到其他板子

f95d91840c65fae92e5568c427c54770.png

存储的类型可以是hex,s19或者bin

a95804692b2524aa1b143ffd3ec23074.png

Save的Memory也可以是寄存器外设地址

7a0f70fc990eb7f76c0c6762ea4d2dd6.png

2. RTOS插件

MDK默认的OS support仅支持RTX,对于第三方的RTOS并没有很好的支持,需要用户选择第三方的调试工具,比如Tracealyzer,而IAR默认提供了包括FreeRTOS, ThreadX, embOS在内的多种插件,虽然功能并没有Tracealyzer强大,但是至少能满足观察任务堆栈这样比较基础的需求。

78175cc2a6cb4d2741759997177e1795.png

3. Attach功能

本人09毕业时第一份工作使用的IDE是CW_Power_Architecture_V8.8,支持三种调试模式:

e5d6f0f341b2e4b194c33c41cdf30578.png

a603edd862d5f50f47e525c9696be61b.png

636bf1ea0263078fedb285de0d402aef.png

有时大家会遇到 这样一种情况,产品无缘无故的死机,有时是产品硬件问题,但更多情况是软件问 题,特别是异常非常难复现,而且有时还需要反复开关机才能出现,这就导致仿真器无法一直挂载去查找问题,attach的功能就是在不破坏MCU当前异常状态下的一种仿真手段。IAR默认也支持该功能:

bd800de684d2cbeed777f663917bf56e.png


但是如果想在MDK中想要实现该功能就较为复杂。

4. Pack install

最后讲讲这个Pack install,它本身没有啥可吐槽的,主要是服务器好像没有国内加速,每次用个新片子都要下载上个把小时,特别是电信用户,有时下到90%几断了真的很糟心,推荐使用工具下载离线包(建议迅雷下载):

https://www.keil.com/dd2/pack/

声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------ END ------------

0f72f72f79182760851ece75e036f1ae.gif

●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

53e6981f452e05c47577cf5e348da33a.png

5d600aefac39e967ea848ca152ef3cea.png

点击“阅读原文”查看更多分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值