很多使用过Keil MDK的工程师都发现了一个问题,Keil MDK编译代码的时候,速度很慢。 编译速度慢有几个原因:
编译器
代码量大小
工程配置(生成信息)
其中工程配置中生成信息包含多种,打开工程选项卡就能看见。Project -> Options for Target -> Output / Listing:


这里面有很多信息都会影响编译速度,其中生成浏览信息(Browse Information),下面就来讲讲关于浏览信息的内容。
嵌入式专栏
1
关于Keil浏览信息
Keil中浏览信息,就是我们平时编辑调试时,右键(或者F12快捷键)使用Go To Definition xxx时所需要浏览的代码信息:

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

生成浏览信息会比较影响编译速度,同时在Objects(OutPut配置输出路径)文件夹下面会多出*.crf文件(浏览信息文件)。 关于Keil MDK中各种文件的描述,可以参看我的文章:Keil系列教程10_文件类型及相关描述。
嵌入式专栏
2
AC5与AC6生成浏览信息的差异
Keil MDK编译器默认是使用Arm Compiler(简称AC),目前主流的就是AC5和AC6.
之前也给大家分享过关于AC5和AC6的文章:
全面认识ARM编译器AC6.12Keil MDK 编译器 AC5 和 AC6 优化选项重要内容和区别
其实AC5和AC6还真有很多地方不同,之前使用AC5的代码工程,很多地方都存在兼容性问题。
1.AC5和AC6生成浏览信息速度不同
如果不生成浏览信息(不勾选),AC5的编译速度其实也不算慢。
但是,一般情况下,软件开发工程师为了方便编辑和调试代码,一般都会生成浏览信息。
AC5和AC6明显的区别就是编译速度上差异很大,AC6即使生成浏览信息,在编译的时候,速度相比AC5快很多。
而且代码量也有差异:

2.AC5和AC6生成浏览信息方式不同
如果你使用过AC6,你会发现:在不用编译的情况下,可以直接Go To Definitionxxx浏览代码。
比如:你直接使用STM32CubeMX配置生成Keil MDK的代码,修改配置,使用AC6编译器,你会发现不用编译就可以直接Go To Definition。
当然,前提你要配置使用AC6编译器:

还有,AC6生成浏览信息是在后台自动完成的,可能需要等待几秒钟或者更长时间(与你电脑配置有关)。
责任编辑:xj
原文标题:Keil MDK使用编译器AC5与AC6生成浏览信息的差异
文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。
-
keil
+关注
关注
69文章
1232浏览量
173137 -
编译器
+关注
关注
1文章
1672浏览量
51900 -
MDK
+关注
关注
4文章
211浏览量
33728
原文标题:Keil MDK使用编译器AC5与AC6生成浏览信息的差异
文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
Aimtec AMFE305150 AC EMC滤波器:助力AC - DC应用稳定运行
使用 Keil Studio for Visual Studio Code开发 STM32 设备
在Keil5中查看栈大小
5 GHz,802.11ac,支持 LAA 的前端模块 skyworksinc
scons --target=mdk5编译不成功如何解决?
nano版本使用AC6编译器下,不显示msh怎么解决?
rt_list_for_each_entry编译失败怎么解决?
CW32L011_PD Power 口袋电源活动
stm32f407ZGT6生成的bootloader打印的app分区偏移地址正常吗?
求助,关于NanoEdge AI Studio生成的库交叉编译器版本疑问求解
5 GHz 802.11ac WLAN 前端模块 skyworksinc
5 GHz,802.11ac 前端模块 skyworksinc
5 GHz,802.11n/ac 前端模块 skyworksinc
Keil MDK使用编译器AC5与AC6生成浏览信息的差异有哪些
评论