单片机
返回首页

怎样去解决Keil编译的速度越来越慢的问题呢

2024-06-18 来源:elecfans

最近我在进行一个项目的开发,用的IDE是Keil mdk,由于代码量逐渐增加,发现编译的速度越来越慢。

构建项目


这个项目基于STM32F407,在此基础上还添加了FreeRTOS和LWIP TCP/IP 协议栈,所以整体的代码量就被协议栈和RTOS弄得很大,每次构建项目或者重新构建项目的时候,都要花很长的时间,如下图所示;

pYYBAGL5up6ACXu3AACHEAkEdas828.png

可以看到,在这里我用了3分钟。这个时间太长了,会大大影响我的开发效率,所以后面尝试了几个方法,提高构建的速度。

解决方案

首先我找到一个解决办法就是在构建过程中防止生成 Browse Information 文件。

pYYBAGL5uq-AXLF5AACodZZC9NI351.png

配置

想要在项目配置中将这个选项勾选去掉即可,最终实践发现,项目构建时间缩短到 24秒 ,整体还可以接受。

pYYBAGL5usGAB-4NAACXN8JTRt0159.png

优化后的时间

主要原因其实是构建的时候,避免生成 .CRF 文件,生成这个文件的主要作用就是我们在进行代码编辑的时候,宏定义,函数原型,函数声明可以进行跳转。

pYYBAGL5utCAbiaPAAEG1ZmWWzU106.png

CRF

官方文档中的解释:Cross-Reference file containing browse information (definitions, references for identifiers).

如果选择不生成这个文件,代价就是牺牲了我们写代码的效率。

因为我们写代码的时候,会频繁地进行函数原型和函数声明直接的跳转,有时候要跳转到宏定义,如果无法进行跳转,使用Keil MDK只能使用全文搜索来替代,因此一定程度上会降低效率。

pYYBAGL5uuOAXkgtAACCE8WlPgo114.png

进行跳转

当我们尝试跳转到函数声明时,最终提示如下:

poYBAGL5uvOAEPjVAAAvGI1HDyo691.png

错误提示

这时候,我喜欢配合其他编辑器,比如source insight,vs code,代码编辑的工作放在其他体验更好的软件中进行,然后代码的构建和调试又重新回到keil mdk,发挥各自的优势。

之前写过一篇使用EIDE的插件,在vs code中导入keil mdk的项目进行开发,在vs code中调用arm cc进行项目的构建。

poYBAGL5uweAISNDAADQXrG_zq4409.png

EIDE在VSCODE中的构建时间

整体的构建时间为 30秒 ,可以接受,然后还能充分发挥vs code在代码编辑上的优势,感兴趣的可以试一下。

总结

今天的介绍的挺简单,主要是在keil mdk下开发,构建项目时会产生.CRF文件,从而使构建速度大大降低,从而影响开发效率。

具体的解决办法是避免生成.CRF文件,但是会影响整体函数原型和声明以及宏定义的跳转,可以通过全文搜索,或者借助其他编辑器作为辅助手段来解决。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章