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

    文章

    326

    浏览量

    46335
  • keil
    +关注

    关注

    68

    文章

    1196

    浏览量

    165283
  • 编译器
    +关注

    关注

    1

    文章

    1575

    浏览量

    48606
  • MDK
    MDK
    +关注

    关注

    4

    文章

    208

    浏览量

    31769

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

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

收藏 人收藏

    评论

    相关推荐

    焊接过程中电流电压监测系统

    程序、单片机KEIL C语言程序我的论文以及PROTEOUS模拟电路图以及一些相关的资料。希望在串口设计中有困难的朋友看看我的论文相应章节,虽然不专业但还是有自己的思考。
    发表于 06-25 08:04

    PCB光绘工艺过程中一些特殊问题处理-华强pcb

      PCB光绘工艺过程中一些特殊问题  ()Gerber文件生成焊盘中心孔:  在用普通方法处理Gerber文件生成中心孔的时候,存在着两种危险性:  1、当D码不匹配时,应该有孔的地方
    发表于 02-06 11:11

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

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

    STM32F103RCT6项目调试过程中遇到了一些问题

    STM32F103RCT6项目调试过程中遇到了一些问题,现在总结记录下,以留后用。程序经过调试没有问题,所有问题都可以说是硬件问题。出现的主要问题可以分为以下几类:电源问题、时钟问题、焊接问题。
    发表于 08-11 08:49

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

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

    STM32开发过程中遇到的一些问题

    STM32开发过程中遇到的一些问题,记录如下。Q1:下载后程序不运行,反复排查代码没问题。A1:栈空间太小,打开startup_stm32f10x_hd.s,把 Stack_Size EQU
    发表于 08-20 06:48

    记录STM32调试过程中遇到的一些

    记录STM32调试过程中遇到的一些坑假装这是个目录?零、 CubeMX1.发现新大陆一、串口与DMA1.配置与使用2.串口中断与DMA3.串口中断异常二、PWM三、FDCAN1.CAN波特率
    发表于 12-06 06:40

    介绍下机电暂态开源工具使用过程中一些体会

    )作者:一一数二三这个工具箱所有代码开源,且提供了图形化仿真界面,单元模块化,易于添加新的模块和仿真器件。介绍下我使用过程中一些体会:负荷使用ZIP模型,注入负荷电流到输电网络的过程中
    发表于 12-30 08:33

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

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

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

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

    分享下用AD画PCB过程中一些基础知识

      今天跟大家分享下用AD画PCB过程中一些基础知识。   完成后的PCB   通常原理图设计完成后,就开始PCB设计。有几个地方需要注意:   1.原理图设计完成后
    发表于 04-27 16:46

    一些测量和控制过程中为什么要使用射频定向耦合器呢?

    一些测量和控制过程中为什么要使用射频定向耦合器呢?
    发表于 05-16 17:29

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

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

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

    其中MDK和IAR应该是最流行的两个IDE,MDK的粉丝可能还更多一些
    的头像 发表于 05-23 09:10 818次阅读
    吐槽下使用<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 613次阅读
    在使用<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>