0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

strongerHuang 来源:strongerHuang 作者:strongerHuang 2021-01-18 11:17 次阅读

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

编译器

代码量大小

工程配置(生成信息

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

ebacc578-58f7-11eb-8b86-12bb97331649.png

ebcb7810-58f7-11eb-8b86-12bb97331649.png

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

嵌入式专栏

1

关于Keil浏览信息

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

ebf893cc-58f7-11eb-8b86-12bb97331649.png

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

ec2734de-58f7-11eb-8b86-12bb97331649.png

生成浏览信息会比较影响编译速度,同时在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快很多。

而且代码量也有差异:

ecc545de-58f7-11eb-8b86-12bb97331649.png

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

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

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

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

ecf4a1a8-58f7-11eb-8b86-12bb97331649.png

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

责任编辑:xj

原文标题:Keil MDK使用编译器AC5与AC6生成浏览信息的差异

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • keil
    +关注

    关注

    68

    文章

    1196

    浏览量

    165291
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48614
  • MDK
    MDK
    +关注

    关注

    4

    文章

    208

    浏览量

    31770

原文标题:Keil MDK使用编译器AC5与AC6生成浏览信息的差异

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Keil使用AC6编译提示CUDA版本过高怎么解决?

    今晚搞 ToughGFX 最后快成功了 ,Keil 编译又提示: *** Using Compiler \'V6.14\', folder: \'D:Keil_v5
    发表于 04-11 07:56

    请问TouchGFX如何用AC6编译器呢?

    最近几天 研究了下AC6编译器 ,想使用AC6 编译TouchGFX, 用ArmV5 编译 工程
    发表于 04-11 07:36

    使用mdkac6编译器一直报错是怎么回事?

    使用mdkac6编译器一直报错
    发表于 04-10 06:01

    printf在keil5AC6编译器下运行进入死循环的原因?

    Initialization ...n\");把信息显示在屏幕上,用AC5编译时运行正常,但是编译速度太慢;而用AC6
    发表于 04-07 06:46

    用CUBE生成STM32H743工程,用iar编译器进入硬件错误是哪里的问题?

    最近在用CUBE 生成STM32H743工程,用iar编译器进入硬件错误,用MDK就没问题,STM32H743只能用MDK吗?
    发表于 04-07 06:07

    用cubemx6.3.0生成以前的keil程序后运行不正常的原因?

    用cubemx6.3.0生成以前的keil程序后运行不正常。
    发表于 04-02 08:05

    STM32CubeMX生成FreeRTOS的MDK工程不支持AC6编译器吗?

    使用STM32CubeMX生成FreeRTOS的MDK工程,选择AC5编译器可以编译成功,选择AC6
    发表于 03-06 08:24

    M481系列KEIL选择ARM5编译器编译速度非常慢怎么解决?

    M481系列,如果KEIL选择ARM5编译器编译速度非常慢
    发表于 01-16 06:51

    基于ARM编译器版本5的工程迁移与适配到ARM编译器版本6.12

    AC5AC6的主要差异AC6使用armclang代替了armcc,因此在AC6中就没有armcc这个
    的头像 发表于 11-12 11:17 7498次阅读
    基于ARM<b class='flag-5'>编译器</b>版本5的工程迁移与适配到ARM<b class='flag-5'>编译器</b>版本6.12

    FAQ0115使用AC6编译器注意事项

    使用AC6编译器注意事项在使用ARM Compiler version 6AC6)时,可能会出现如下情形之一
    发表于 10-23 08:06

    关于MDK编译器AC5AC6切换的问题

    如上图所示,作者将一个工程从AC5切换到AC6后,出现编译报错。
    的头像 发表于 10-16 14:16 1739次阅读
    关于<b class='flag-5'>MDK</b><b class='flag-5'>编译器</b><b class='flag-5'>AC5</b>与<b class='flag-5'>AC6</b>切换的问题

    Keil修改ARM编译器及配置方法

    Keil MDK自 V5.36 版本之后,默认就不带 Arm Compiler V5版本编译器。如果需要使用 V5 版本编译器,就需要自己下载并安装。
    发表于 09-19 10:41 2204次阅读
    <b class='flag-5'>Keil</b>修改ARM<b class='flag-5'>编译器</b>及配置方法

    M481系列如果KEIL选择ARM5编译器编译速度非常慢怎么解决?

    M481系列,如果KEIL选择ARM5编译器编译速度非常慢
    发表于 08-25 06:00

    Arm编译器嵌入式FuSa 6.16.2版LTS用户指南

    和ARM Keil MDK的一个组件。 或者,您可以将用于Embedded Fusa 6的ARM编译器作为独立产品使用。 用于嵌入式FUSA 6
    发表于 08-18 06:42

    安装Keil MDK for Holtek Edition 1.0版应用程序说明

    编译器Keil RTX5实时操作系统内核以及µVision IDE和调试。 如果您希望对Holtek的所有基于ARM Cortex-M的设备进行编程,请在线购买
    发表于 08-11 06:51