当前位置:首页 > > strongerHuang
[导读]很多使用过Keil MDK的工程师都发现了一个问题,Keil MDK编译代码的时候,速度很慢。


作者 | strongerHuang

微信公众号 | 嵌入式专栏

很多使用过Keil MDK的工程师都发现了一个问题,Keil MDK编译代码的时候,速度很慢。
编译速度慢有几个原因:

  • 编译器

  • 代码量大小

工程配置(生成信息)
其中工程配置中生成信息包含多种,打开工程选项卡就能看见。Project -> Options for Target -> Output / Listing:


这里面有很多信息都会影响编译速度,其中生成浏览信息(Browse Information),下面就来讲讲关于浏览信息的内容。


关于Keil浏览信息

Keil中浏览信息,就是我们平时编辑调试时,右键(或者F12快捷键)使用Go To Definition xxx时所需要浏览的代码信息:


需要在工程配置中勾选生成浏览信息才能正常使用该功能:


生成浏览信息会比较影响编译速度,同时在Objects(OutPut配置输出路径)文件夹下面会多出 *.crf 文件(浏览信息文件)。
关于Keil MDK中各种文件的描述,可以参看我的文章:Keil系列教程10_文件类型及相关描述


AC5与AC6生成浏览信息的差异

Keil MDK编译器默认是使用Arm Compiler(简称AC),目前主流的就是AC5和AC6.

其实AC5和AC6还真有很多地方不同,之前使用AC5的代码工程,很多地方都存在兼容性问题。

1.AC5和AC6生成浏览信息速度不同

如果不生成浏览信息(不勾选),AC5的编译速度其实也不算慢。

但是,一般情况下,软件开发工程师为了方便编辑和调试代码,一般都会生成浏览信息。

AC5和AC6明显的区别就是编译速度上差异很大,AC6即使生成浏览信息,在编译的时候,速度相比AC5快很多。

而且代码量也有差异:


2.AC5和AC6生成浏览信息方式不同

如果你使用过AC6,你会发现:在不用编译的情况下,可以直接Go To Definition xxx 浏览代码

比如:你直接使用STM32CubeMX配置生成Keil MDK的代码,修改配置,使用AC6编译器,你会发现不用编译就可以直接 Go To Definition。

当然,前提你要配置使用AC6编译器:

还有,AC6生成浏览信息是在后台自动完成的,可能需要等待几秒钟或者更长时间(与你电脑配置有关)。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭