大家好,我是张巧龙,如何提高Keil MDK的编译速度?看下方步骤!
1. 构建项目这个项目基于STM32F407,在此基础上还添加了FreeRTOS
和LWIP TCP/IP
协议栈,所以整体的代码量就被协议栈和RTOS弄得很大,每次构建项目或者重新构建项目的时候,都要花很长的时间,如下图所示;

可以看到,在这里我用了3分钟。这个时间太长了,会大大影响我的开发效率,所以后面尝试了几个方法,提高构建的速度。
2. 解决方案首先我找到一个解决办法就是在构建过程中防止生成 Browse Information
文件。

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

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

官方文档中的解释:Cross-Reference file containing browse information (definitions, references for identifiers).
如果选择不生成这个文件,代价就是牺牲了我们写代码的效率。
因为我们写代码的时候,会频繁地进行函数原型和函数声明直接的跳转,有时候要跳转到宏定义,如果无法进行跳转,使用Keil MDK只能使用全文搜索来替代,因此一定程度上会降低效率。

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

这时候,我喜欢配合其他编辑器,比如source insight
,vs code
,代码编辑的工作放在其他体验更好的软件中进行,然后代码的构建和调试又重新回到keil mdk
,发挥各自的优势。
之前写过一篇使用EIDE的插件,在vs code
中导入keil mdk
的项目进行开发,在vs code
中调用arm cc
进行项目的构建。

整体的构建时间为 30秒 ,可以接受,然后还能充分发挥vs code
在代码编辑上的优势,感兴趣的可以试一下。
今天的介绍的挺简单,主要是在keil mdk
下开发,构建项目时会产生.CRF
文件,从而使构建速度大大降低,从而影响开发效率。
具体的解决办法是避免生成.CRF
文件,但是会影响整体函数原型和声明以及宏定义的跳转,可以通过全文搜索,或者借助其他编辑器作为辅助手段来解决。
推荐阅读:点击下方图片即可跳转阅读
-END-
我是张巧龙,一名教电子的大学老师,欢迎关注!