[导读]大家好,我是张巧龙,如何提高KeilMDK的编译速度?看下方步骤!1.构建项目这个项目基于STM32F407,在此基础上还添加了FreeRTOS和LWIPTCP/IP协议栈,所以整体的代码量就被协议栈和RTOS弄得很大,每次构建项目或者重新构建项目的时候,都要花很长的时间,如下图...
大家好,我是张巧龙,如何提高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
在代码编辑上的优势,感兴趣的可以试一下。3. 总结
今天的介绍的挺简单,主要是在keil mdk
下开发,构建项目时会产生.CRF
文件,从而使构建速度大大降低,从而影响开发效率。具体的解决办法是避免生成.CRF
文件,但是会影响整体函数原型和声明以及宏定义的跳转,可以通过全文搜索,或者借助其他编辑器作为辅助手段来解决。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
KeilμVision4是Keil软件公司为8051系列微控制器及其兼容产品设计的集成式软件开发环境。μVision4集成了C51编译器和A51汇编器,其界面类似于Microsoft VS,支持C语言和汇编语言程序的编写...
关键字:
程序
编译
链接
第五届中国国际进口博览会,丹纳赫集团携手中国健康传媒集团,在创新技术在疫苗、细胞治疗药物、中药研发以及质量控制中的应用等领域签署战略合作。同时,双方将共同编译并出版《生物制药工艺》等书籍,以支持相关领域国际前沿技术工具在...
关键字:
编译
质量控制
(全球TMT2022年9月27日讯)新思科技近日宣布推出业内首款基于其ZeBu® EP1硬件仿真系统的硬件仿真与原型验证统一硬件系统,致力为SoC验证和前期软件开发提供更高水平的性能和灵活性。新思科技ZeBu...
关键字:
硬件仿真
新思科技
硬件系统
编译
3个SystemVerilog新特性!01`begin_keyword`end_keyword硬件描述语言中有很多特殊的编译或者综合等工具的预执行指令,在某些场景下我们可以利用一下HDL之外的语法去指导工具,而不是信马由...
关键字:
SYSTEMVERILOG
DEFINE
PACKAGE
编译
你知道,为什么在C中使用了pow函数不需要链接libm库吗?什么情况需要指定链接库?在解释之前,先回顾一下。//来源:公众号【编程珠玑】//https://www.yanbinghu.com#include#includ...
关键字:
编译
POW
IBM
TEST
关注、星标公众号,直达精彩内容作者:hguisu一、地址概念和程序如何运行在多道程序环境下,要使程序运行,必须先为之创建进程。而创建进程的第一件事,便是将程序和数据装入内存。如何将一个用户源程序变为一个可在内存中...
关键字:
编译
作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录学习的困惑实践环境编译进内核编...
关键字:
内核
编译
驱动程序
不知道各位小伙伴是否碰到过这样的情况:一个.c文件include另一个.h头文件,使用Makefile来构建(编译)应用程序。第一次编译、执行,很正常!但是此时,如果修改了.h头文件,再次编译时,就出现问题了:预期的执行...
关键字:
编译
一、前言老周这里编译Kafka的版本是2.7,为啥采用这个版本来搭建源码的阅读环境呢?因为该版本相对来说比较新。而我为啥不用2.7后的版本呢?比如2.8,这是因为去掉了ZooKeeper,还不太稳定,生产环境也不太建议使...
关键字:
源码
编译
道哥的第030篇原创一、一个真实的代码泄漏故事二、Jenkins的基本使用三、gitsubmodule基本使用四、在Jenkins中使用gitmodule来编译所有的模块五、总结六、资源下载一、一个真实的小故事事情发生在...
关键字:
自动化
编译
代码
在Keil C51软件中51单片机的中断服务和外设驱动程序的开发
关键字:
keil5
编译
C51
大家好,我是张巧龙,如何提高KeilMDK的编译速度?看下方步骤!1.构建项目这个项目基于STM32F407,在此基础上还添加了FreeRTOS和LWIPTCP/IP协议栈,所以整体的代码量就被协议栈和RTOS弄得很大,...
关键字:
编译
关注星标公众号,不错过精彩内容作者| strongerHuang微信公众号|嵌入式专栏程序员做软件开发,讨厌一件事,那就是编译代码速度很慢的问题。编码一分钟,编译十分钟,这谁能受的了?今天就来说说嵌入式软件开发中,常见的...
关键字:
代码
程序员
编译
关注「嵌入式大杂烩」,选择「星标公众号」一起进步!01修改与编译内核前面小哥主要是跟大家讲解了uboot的烧录、使用等等,而对于嵌入式Linux环境而言其实主要是分为三大块:uboot,LinuxKernel(内核),文...
关键字:
内核
编译
关注「嵌入式大杂烩」,选择「星标公众号」一起进步!01修改与编译内核前面小哥主要是跟大家讲解了uboot的烧录、使用等等,而对于嵌入式Linux环境而言其实主要是分为三大块:uboot,LinuxKernel(内核),文...
关键字:
内核
编译
关注「嵌入式大杂烩」,选择「星标公众号」一起进步!一、地址概念和程序如何运行在多道程序环境下,要使程序运行,必须先为之创建进程。而创建进程的第一件事,便是将程序和数据装入内存。如何将一个用户源程序变为一个可在内存中执行的...
关键字:
编译
初次见面大家好,我是ELF文件,大名叫ExecutableandLinkableFormat。经常在Linux系统中开发的小伙伴们,对于我肯定是再熟悉不过了,特别是那些需要了解编译、链接的家伙们,估计已经把我研究的透透的...
关键字:
编译
随着C项目的持续扩大,编译效率越来越是一个问题了。想一想你每天花在这上面的时间,再乘以团队成员的个数,是不是成本很高?那有没有什么办法,在不需要修改源码,也不更换硬件的情况下提升效率呢?一起来看看下面这几个方法,足以让你...
关键字:
编译
来源:https://www.cnblogs.com/QG-whz/p/5132745.html前言今日的C不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C发...
关键字:
编译
随着 C 项目的持续扩大,编译效率越来越是一个问题了。想一想你每天花在这上面的时间,再乘以团队成员的个数,是不是成本很高?
关键字:
C
源码
多核
编译