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

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

3天内不再提示

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

冬至配饺子 来源:小麦大叔 作者:小麦大叔 2022-08-15 11:20 次阅读

最近我在进行一个项目的开发,用的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文件,但是会影响整体函数原型和声明以及宏定义的跳转,可以通过全文搜索,或者借助其他编辑器作为辅助手段来解决。



审核编辑:刘清

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

    关注

    134

    文章

    8736

    浏览量

    363307
  • RTOS
    +关注

    关注

    20

    文章

    782

    浏览量

    118918
  • LwIP协议栈
    +关注

    关注

    0

    文章

    19

    浏览量

    7278
  • STM32F407
    +关注

    关注

    15

    文章

    187

    浏览量

    29115
收藏 人收藏

    评论

    相关推荐

    手机充电速度为什么越来越慢

    `见鬼了,手机充电越来越慢,以前本来2个多小时能充满手机电量,现在过去5个小时了才80%。然道是手机坏了,其实这有可能是其他原因导致的。  1.充电线/插头没选对  在收纳充电线时,我们习惯将它团
    发表于 11-27 22:43

    matlab串口接收数据实时画图延迟为什么越来越大?

    非常好,但是慢慢的曲线的延迟越来越大,以至于后面速度越来越慢,我在想这个跟我的这些矩阵有关系嘛?需要释放内存啥的吗?有遇到过这种问题的网友没?
    发表于 03-18 21:20

    请教大神Keil4该怎样使用

    请教大神Keil4该怎样使用
    发表于 01-24 06:05

    怎样解决keil编译发生错误的问题

    为什么keil编译会发生错误怎样解决keil编译
    发表于 02-14 06:11

    Ubuntu固件的编译怎样使用

    怎样编译Ubuntu固件?Ubuntu固件的编译怎样
    发表于 02-15 06:18

    MDK是什么?怎样安装MDK软件

    MDK是什么?怎样安装MDK软件?如何对Keil环境进行编译并配置
    发表于 03-01 07:02

    怎样解决用Keil编译STM32F207进入Debug模式直接闪退的问题

    使用Keil编译STM32F207进入Debug模式直接闪退是什么原因怎样解决用Keil
    发表于 03-01 07:50

    怎样编译Linux内核

    怎样编译Linux内核?有哪些编译步骤?
    发表于 03-03 13:04

    怎样编译u-boot产生错误的问题

    怎样编译u-boot产生错误的问题怎样编译k
    发表于 03-04 06:47

    用CH554时,个别鼠标在电脑上滑动会越来越慢是为什么?

    你好,在用CH554时,个别鼠标在电脑上滑动会越来越慢,比如以同样的幅度和速度让鼠标在电脑屏幕上转圈时,屏幕上的圈会越来越小,速度也感觉在变慢。目前发现用浪派和雷蛇鼠标会这样,但用其它
    发表于 10-11 08:02

    S32G RTC时钟越来越慢的原因是什么?

    你好 在我设置系统时钟并将其同步到 RTC 时钟后,我发现RTC时钟会越来越慢。你能告诉我原因吗?硬件好像是rtc-pcf85063。环境。中央处理器:S32G274A英国央行:33.0Yocto
    发表于 04-10 08:57

    请问rt-thread中有用flashdb保存参数的吗?为什么kv越多越慢

    flashdb来保存参数和日志。 但是实际使用中发现flashdb随着参数写入的增多,写入速度越来越慢,读取速度越来越慢。 不知道大家遇到过没有,如何解决这个问题
    发表于 09-03 10:40

    如何使越来越慢的笔记本更快

    如何使越来越慢的笔记本更快 问题:你好,我的笔记本是Acer的353te(p800 128m内存)。购买时间已经三年了 ,现在感觉使用这台笔记本
    发表于 01-25 10:50 1561次阅读

    智能电视为什么开机变得越来越慢

    智能电视用久了开机总会变得越来越慢,这时我们应该怎么办?别急,教你几招,轻松搞定开机慢的问题。
    发表于 08-01 10:15 5077次阅读

    为什么4G网络越来越慢

    在5G网络还没全面开展的时候,4G网络仍然是我们的主要网络频段。但最近不少用户反应4G网络越来越慢,为啥会有这样的现象出现呢?以下三大原因用户看完:原来是这三大原因,瞬间明白了!
    发表于 05-10 13:58 1.3w次阅读