您当前的位置: 首页 > 

张巧龙

暂无认证

  • 2浏览

    0关注

    1208博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Keil 编译太慢怎么办?教你一招,提速10倍

张巧龙 发布时间:2021-09-28 11:33:49 ,浏览量:2

大家好,我是张巧龙,如何提高Keil MDK的编译速度?看下方步骤!

1. 构建项目

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

f39164b1071191aa19c4c55b69488bcb.png

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

2. 解决方案

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

d2f09072834621cedb69fb3a0ce1faaa.png 配置

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

6bbef5655c4daa499b17a7c28630829e.png 优化后的时间

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

947ce0021e2eacdccb3c05cd8f688654.png CRF

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

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

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

ed4a6f4ccd3bb36652afde2897ff5639.png 进行跳转

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

02bb38e4c7ac91fbffe664097a66859a.png 错误提示

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

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

b4096dc313d79183a05af393a233e301.png EIDE在VSCODE中的构建时间

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

3. 总结

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

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

推荐阅读:点击下方图片即可跳转阅读

-END-

我是张巧龙,一名教电子的大学老师,欢迎关注!

关注
打赏
1665727216
查看更多评论
立即登录/注册

微信扫码登录

0.0412s