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
    +关注

    关注

    69

    文章

    1224

    浏览量

    171800
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

    51078
  • MDK
    MDK
    +关注

    关注

    4

    文章

    211

    浏览量

    33465

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Keil5中查看栈大小

    :打开生成的.map文件,在Image Symbol Table部分查找栈的相关信息,包括栈的大小和使用情况。 3、利用IDE的功能: 方法说明:Keil编译器
    发表于 11-14 06:32

    nano版本使用AC6编译器下,不显示msh怎么解决?

    ;gt; 字符串。 排查问题大概猜测应该是 FinSH 根本就不工作,主要原因很可能是 AC6 版本没有把FinSH那些代码编译到最终的bin文件。 网上说要修改链接文件,但是网上的资源都是gcc编译器的链接文件。 暂时不知道
    发表于 09-25 07:19

    rt_list_for_each_entry编译失败怎么解决?

    ,这个宏是在rtservice.h中定义的 网上搜了一遍,好心的网友说可以在AC5编译器里增加—gnu 我尝试了一下行不通,AC6编译器
    发表于 09-18 07:14

    请问如何在keil μVision 5上进行ARM编译器的代码优化?

    如何在keil μVision 5上进行ARM编译器的代码优化?
    发表于 08-20 07:37

    如何在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6

    Keil中将NuMicro BSP从Arm编译器5迁移到编译器6
    发表于 08-20 06:29

    stm32f407ZGT6生成的bootloader打印的app分区偏移地址正常吗?

    stm32f407ZGT6生成的bootloader打印的app分区偏移地址正常吗?bootloader使用iot平台配置自动生成的,日志信息如下图
    发表于 08-15 08:24

    求助,关于NanoEdge AI Studio生成的库交叉编译器版本疑问求解

    20231009\", 那么问题来了,怎么在NanoEdge AI Studio设定交叉编译器呢,比如设置为armcc、armclang、iccram,因为我需要将库加到keil或者iar工程里面。 看样子这个软件生成的库是a
    发表于 08-08 07:25

    使用STM32CubeMX生成FreeRTOS的MDK工程,选择AC6编译器很多错误,为什么?

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

    STM32H750VBT6程序只有在调试时可以运行,为什么?

    最近在调试 STM32H750VBT6 时遇到程序只有在调试时可以运行,虽然勾选了 rest and run ,但下载完任然不运行。检查了 boot 和 reset 电压均正常。最后,是用了 AC5 编译一遍后下载,就解决了问题
    发表于 03-07 06:19

    什么样的代码会被编译器优化

    现在的编译器多智能,可能你辛辛苦苦写的代码,在编译器看来就是几句废话,直接被删除掉。
    的头像 发表于 01-16 16:38 929次阅读

    Triton编译器与GPU编程的结合应用

    Triton编译器简介 Triton编译器是一种针对并行计算优化的编译器,它能够自动将高级语言代码转换为针对特定硬件优化的低级代码。Triton编译器的核心优势在于其能够识别并行模式,
    的头像 发表于 12-25 09:13 1313次阅读

    Triton编译器在高性能计算中的应用

    先进的编译技术,为高性能计算提供了强大的支持。 Triton编译器简介 Triton编译器是一种开源的编译器框架,旨在为异构计算环境提供高效的编译
    的头像 发表于 12-25 09:11 1560次阅读

    Triton编译器的优化技巧

    在现代计算环境中,编译器的性能对于软件的运行效率至关重要。Triton 编译器作为一个先进的编译器框架,提供了一系列的优化技术,以确保生成的代码既高效又适应不同的硬件架构。 1. 指令
    的头像 发表于 12-25 09:09 1827次阅读

    Triton编译器与其他编译器的比较

    Triton编译器与其他编译器的比较主要体现在以下几个方面: 一、定位与目标 Triton编译器 : 定位:专注于深度学习中最核心、最耗时的张量运算的优化。 目标:提供一个高度抽象、灵活、高效
    的头像 发表于 12-24 17:25 1580次阅读

    Triton编译器功能介绍 Triton编译器使用教程

    Triton 是一个开源的编译器前端,它支持多种编程语言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一个可扩展和可定制的编译器框架,允许开发者添加新的编程语言特性和优化技术
    的头像 发表于 12-24 17:23 2686次阅读