加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

Keil MDK使用编译器AC5与AC6生成浏览信息的差异

2021/01/13
598
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

很多使用过 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 的文章:

全面认识 ARM 编译器 AC6.12

Keil MDK 编译器 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 生成浏览信息是在后台自动完成的,可能需要等待几秒钟或者更长时间(与你电脑配置有关)。

相关推荐

电子产业图谱

作者黄工,从事嵌入式软件开发工作8年有余,高级嵌入式软件工程师,业余维护公众号『strongerHuang』,分享嵌入式软硬件、单片机、物联网等内容。