keil编译太慢怎么办?教你一招,提速10倍(代码片段)

小麦大叔 小麦大叔     2023-01-08     847

关键词:

点击上方“小麦大叔”,选择“置顶/星标公众号”

福利干货,第一时间送达

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

构建项目

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

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

解决方案

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

配置

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

优化后的时间

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

CRF

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

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

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

进行跳转

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

错误提示

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

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

EIDE在VSCODE中的构建时间

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

总结

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

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

—— The End ——

推荐好文  点击蓝色字体即可跳转

 值得学习的单片机菜单框架(附源码)

☞ 推荐一个直接用于项目开发的PID库!很好用,很稳定

☞ 这14种嵌入式实时系统,你用过哪些?

☞ 推荐一款我私藏已久的串口示波神器

欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!

点击上方名片关注公众号

分享 💬  点赞 👍  在看 ❤️ 

以“三连”行动支持优质内容!

keil切换到armclang编译器,到底强在哪里?(代码片段)

...好,我是小麦,上次写过一篇文章《Keil编译太慢怎么办?教你一招,提速10倍 》,减少了中间文件的生成,确实把编译速度提高了很多,其实没有从根本上解决问题,有大佬提出用直接上AC6。于是... 查看详情

keil切换到armclang编译器,到底强在哪里?(代码片段)

...好,我是小麦,上次写过一篇文章《Keil编译太慢怎么办?教你一招,提速10倍 》,减少了中间文件的生成,确实把编译速度提高了很多,其实没有从根本上解决问题,有大佬提出用直接上AC6。于是... 查看详情

教你一招:win7或win10右键菜单添加获取管理员权限

  当我们从经典的windowsXP系统升级到win7或win10,我们会发现,想要删除一些文件时,总是提示被占用或者是没有权限,很是烦恼。  这里,写下解决这个烦恼的办法,以安慰心里的不平。  1、新建一个TXT文件,将下面的... 查看详情

[转]教你一招-如何给nopcommerce增加新闻类别模块

...一直都没有新闻类别,但是很多情况下都会使用到类别,怎么办呢,自己动手吧。1、首先创建新闻类别表,脚本如下:?1234567891011121314151617CREATETABLE[dbo].[NewsCategory](& 查看详情

教你一招:win10切换输入法与win7一样(ctrl+空格)

...ctrl+Shift都能在搜狗输入法和美式键盘切换。下面小编就教你怎么让Win10切换输入法与Win7一样(Ctrl+空格)。设置步骤:1、先安装第三方输入法  比如搜狗输入法。2、进入语言设置  鼠标右键开始菜单——选择控制面... 查看详情

教你一招:网站增加打赏功能

1、前提条件:  设置——博客设置——博客侧边栏公告(支持HTML代码)后面的如果是“申请开通”,必须先申请开通;如果是“支持js代码”,那就代表你已经开通过了,有写js代码的权限了2、准备材... 查看详情

教你一招:win10系统如何正确卸载edge浏览器?

  Edge浏览器作为Win10系统默认浏览器,尽管我们将其他浏览器设置为默认程序,但是有时候还是会自动弹出,非常的不爽,但是在控制面板中却又找不到卸载“Edge”浏览器的选项。下面小编就教大家卸载“Edge”浏... 查看详情

win11任务栏太宽了怎么办?教你一招快速修改任务栏大小(代码片段)

...#xff0c;想要调整任务栏的大小又不知道怎么调整,这要怎么办呢?操作方法右键我们的开始菜单,选择【运行】或者win 查看详情

win11任务栏太宽了怎么办?教你一招快速修改任务栏大小(代码片段)

...#xff0c;想要调整任务栏的大小又不知道怎么调整,这要怎么办呢?操作方法右键我们的开始菜单,选择【运行】或者win 查看详情

怎么分割pdf文件,办公达人教你一招

现在网上下载的文件经常都是以PDF格式呈现的,一些好的资料都会存在一些内存比较大的问题,对于一些电脑老手来说,他们肯定有很多解决方法,但是对于刚刚接触电脑行业的人来说就比较困难了。今天我们一起讨论一下怎么... 查看详情

微信表情150个限制怎么破?教你一招

  微信有那么高的DAU,朋友圈的贡献最高,其次是收发消息(图片文字、语音、视频等),第六是微信表情,所谓一图抵千言,微信表情增加了社交的趣味性,试问哪位朋友没保存表情的?可微信表情限制只能保存150个,有没... 查看详情

教你一招:github新建repositories后import已有code随后同步更新

...的代码修改后,别人的又更新了,自己想获取他的更新,怎么办呢?其实很简单。#1gitclone自己新建的项目到本地,例如新建了一个suda_android:gitclonehttps://github.com/DinphyMod/suda_android.git#2进入克隆下来的本地项目里c 查看详情

教你一招,彻底清除“一刀999”的弹窗广告

...天我就来分享如何屏蔽广告![666]跟弹窗广告说拜拜教你一招,彻底清除恶意软件的弹窗广告。一、首先按Win+R打开运行二、然后我们输入MRT,点击确定三、之后就打开了这个win10 查看详情

好系统u盘启动教你一招解放win10磁盘占用100%的方法

...存,这也是非常占用磁盘空间的。今天就这一问题,小编教你如何解放win10的磁盘空间。方法一:取消自动维护优化计划,关闭磁盘碎片整理。1、找到C盘,右键属性,找到“ 查看详情

教你一招vscode如何配置c/c++开发环境?

...xff0c;对于大多数编程语言,只需要简单的安装解释器/编译器就可以轻松的运行。例如,Python,只需要取官网下载对应版本的Python并安装,就可以在VSCode进行Python的开发和调试。但是,C/C++则不同,它... 查看详情

代码写的烂,经常被同事怼,教你一招!(代码片段)

面对复杂的业务场景,千变万化的客户需求,如何以一变应万变,以最小的开发成本快速落地实现,同时保证系统有着较低的复杂度,能够保证系统后续de持续迭代能力,让系统拥有较高的可扩展性。本文... 查看详情

如何将pdf转换成jpg,转换达人教你一招搞定(代码片段)

PDF文件和JPG图片都是工作中比较常用的两种格式,二者之间有着很大的区别,常常因为工作,我们需要将这两种格式进行转换,利用他们的优点来帮助我们完成工作。那你们知道如何将PDF转换成JPG吗,可能对于电脑新手都不知道... 查看详情

matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决

matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决目录matplotlib保存图片设置分辨率总是96dpi,好烦躁,教你一招轻松解决 查看详情