0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Keil过程中的一些不顺手的地方

strongerHuang 来源:工程师的废纸篓 作者:Tony Yang 2022-05-26 10:53 次阅读

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

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

MDK ARM
IAR IAR
Eclipse+编译器(GCC) NXPMCUxpresso,TI的CCS,ST的TrueSTUDIO
Embedded Studio Segger
编译器名称 厂商

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

1. Load寄存器或Memory

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

MDK:

d673059e-dc8d-11ec-ba43-dac502259ad0.png

IAR:

d6c41fe2-dc8d-11ec-ba43-dac502259ad0.png

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

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

d7226584-dc8d-11ec-ba43-dac502259ad0.png

d7480794-dc8d-11ec-ba43-dac502259ad0.png

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

d773947c-dc8d-11ec-ba43-dac502259ad0.png

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

d7bc958c-dc8d-11ec-ba43-dac502259ad0.png

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

d7e0b5ca-dc8d-11ec-ba43-dac502259ad0.png

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

d85a45ac-dc8d-11ec-ba43-dac502259ad0.png

2. RTOS插件

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

d8c1b46c-dc8d-11ec-ba43-dac502259ad0.png

3. Attach功能

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

d8f2c67e-dc8d-11ec-ba43-dac502259ad0.jpg

d9397146-dc8d-11ec-ba43-dac502259ad0.jpg

d95896fc-dc8d-11ec-ba43-dac502259ad0.jpg

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

d995e714-dc8d-11ec-ba43-dac502259ad0.png

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

4. Pack install

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

原文标题:为什么不喜欢 Keil ?

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IDE
    IDE
    +关注

    关注

    0

    文章

    342

    浏览量

    47016
  • keil
    +关注

    关注

    69

    文章

    1214

    浏览量

    167672
  • 编译器
    +关注

    关注

    1

    文章

    1645

    浏览量

    49417
  • MDK
    MDK
    +关注

    关注

    4

    文章

    209

    浏览量

    32236

原文标题:为什么不喜欢 Keil ?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    使用WiFi的过程中总结的一些经验

    简述在我们做项目开发,经常会用到WiFi,这次给大家分享下我在使用WiFi的过程中总结的一些经验,这次用到的是esp8266WiFi模块,如图所示。引脚连接:GND:接地GPIO1
    发表于 08-05 07:30

    STM32开发过程中一些心得及总结

    JTAG设备STM32 汇编汇编含C语言注释数字信号处理滤波IIR滤波器本人STM32开发过程中一些心得及总结。比较好的文章加密STM32MCU加密原理与方法 (很详细)驱动开发启动使用CCMRAM内...
    发表于 08-17 08:50

    keil编译过程中遇到的一些问题及解决方案汇总

    Keil编译问题汇总所学板子为32系列(Cortex-M0),在keil编译过程中遇到的一些问题及解决方案:①…\FWLib\SRC\ETIMER.c(48): error:#5: c
    发表于 01-11 08:18

    RTOS SDK编程环境搭建过程中一些步骤和问题总结

    自己在搭建过程中一些步骤和问题总结,有不对的的地方欢迎指正。
    发表于 02-17 06:49

    ST的LL库在使用的过程中需要注意什么地方

    ST的LL库在使用的过程中需要注意什么地方
    发表于 10-09 06:48

    关于PCB 生产过程中铜面防氧化的一些探讨

    关于PCB 生产过程中铜面防氧化的一些探讨   摘要:本文主要论述了在PCB 生产过程中对铜面氧化的防范手段,探讨引用种新
    发表于 11-17 08:52 4036次阅读

    绘制原理图和PCB图的过程中常遇到的一些问题

    绘制原理图和PCB图的过程中常遇到的一些问题.doc
    发表于 07-12 10:42 0次下载

    PCB设计过程中一些问题和一些技巧分享

    PCB设计过程中一些问题和一些技巧分享 1、如何利用层次图绘制电路原理图? 答:层次原理是种模块化的设计方法,设计者可以将设计的系统划分为多个子系统,子系统又可以划分为若干个功能模
    发表于 09-07 20:08 17次下载

    总结使用 Vim 的过程中不得不了解的一些指令和注意事项

    Vim 是个上古神器,本篇文章主要持续总结使用 Vim 的过程中不得不了解的一些指令和注意事项,以及持续分享个前端工作者不得不安装的一些
    的头像 发表于 12-27 16:44 4909次阅读

    如何安装KEIL5一些提示免费下载

    本文档的主要内容详细介绍的是如何安装KEIL5的一些提示免费下载。
    发表于 08-30 17:28 1次下载
    如何安装<b class='flag-5'>KEIL</b>5<b class='flag-5'>一些</b>提示免费下载

    光端机使用过程中碰到的一些问题

    光端机,就是光信号传输的终端设备,我们在使用的过程中难免会碰到一些问题,接下来杭州飞畅的小编为大家详细列举了光端机在使用过程中遇到的一些常见问题以及对应的解决方案,感兴趣的朋友就
    的头像 发表于 12-25 14:54 1155次阅读

    STM32遇到的问题--关于串口的一些常见问题

    在单片机的开发过程中,最常用的外设就是串口了,是用来进行bug纠错、log输出的常用工具,也是用来与外部通讯的常见协议之。 但是在使用串口的过程中难免会遇到一些问题,下面就我在工作遇
    发表于 12-24 18:51 2次下载
    STM32<b class='flag-5'>中</b>遇到的问题--关于串口的<b class='flag-5'>一些</b>常见问题

    Verilog设计过程中一些经验与知识点

     “ 本文主要分享了在Verilog设计过程中一些经验与知识点,主要包括块语句、阻塞赋值和非阻塞赋值 以及结构说明语句(initial, always, task, function)。”
    的头像 发表于 03-15 12:19 2476次阅读

    吐槽下使用Keil过程中一些不顺手地方

    其中MDK和IAR应该是最流行的两个IDE,MDK的粉丝可能还更多一些
    的头像 发表于 05-23 09:10 1606次阅读
    吐槽下使用<b class='flag-5'>Keil</b><b class='flag-5'>过程中一些</b><b class='flag-5'>不顺手</b>的<b class='flag-5'>地方</b>

    在使用Keil过程中一些不顺手地方

    首先声明本人并非Keil黑,本期纯吐槽下在使用Keil过程中一些不顺手地方,也极有可能讲的并
    的头像 发表于 05-23 09:14 1205次阅读
    在使用<b class='flag-5'>Keil</b><b class='flag-5'>过程中</b>的<b class='flag-5'>一些</b><b class='flag-5'>不顺手</b>的<b class='flag-5'>地方</b>