电子产业一站式赋能平台

PCB联盟网

搜索
查看: 88|回复: 0
收起左侧

Keil V6编译器性能优化时的注意事项

[复制链接]

418

主题

418

帖子

4293

积分

四级会员

Rank: 4

积分
4293
发表于 2024-8-30 12:10:00 | 显示全部楼层 |阅读模式
关注+星标公众,不错过精彩内容

cs4agy3xehv6403003933.gif

cs4agy3xehv6403003933.gif

作者 | strongerHuang
微信公众号 | strongerHuang

Keil MDK自 V5.36 版本之后,默认就不带 Arm Compiler V5版本编译器。如果需要使用 V5 版本编译器,就需要自己下载并安装。
注意:这里说的是V6版本编译器,不是Keil V6集成开发环境。
Arm Compiler V6 和 V5兼容性不好,有很多地方都需要注意。这里简单分享几点注意事项。
Keil修改ARM编译器及配置
很多小伙伴可能还不知道怎么修改Keil MDK编译器,这里可以参看我之前分享的文章:手把手教你修改Keil MDK的ARM编译器

因为ARM编译器下载需要注册,可能会因为各种原因下载失败,这里可以参看文章:折腾 Keil 编译器的经历

这里再说下配置,Keil MDK 配置 AC6编译:

tyfpkpx1qqa6403004033.png

tyfpkpx1qqa6403004033.png

配置优化选项:

jhesksjei3j6403004133.png

jhesksjei3j6403004133.png

优化选项描述
AC6默认,默认值为-O0。这种情况下,代码不做优化,适用于在线调试。
对于需要优化,但不是对速度和时间非常苛刻,通常建议使用-Os balanced。
对于存储容量小的芯片,可以使用-Oz选项以获得最佳代码大小,此优化级别会降低调试体验。
对运行效率(时间)有要求的工程,可以使用-Ofast优化代码。
当然,如果使用armlink命令行,还有-Omin,-Omax等选项。
AC6编译器的优化选项(含命令选项很多),这里可以参看我之前的一篇文章:AC5 和 AC6 优化选项重要内容和区别
AC6的注意事项
除了在Keil MDK中使用常规的优化选项之外,还有很多选项,在使用的时候需要注意。
比如:-Omin将自动启用armclang -flto选项,并且生成的目标文件不适合创建静态库。
使用-Omin、-Omax时,Arm 无法保证在所有代码情况下都能实现最佳的代码大小优化。
启用-ffp-mode=fast armclang选项执行的积极优化可能会违反严格遵守语言标准的规定。
------------ END ------------

nxluxo3jald6403004233.gif

nxluxo3jald6403004233.gif

●专栏《嵌入式工具●专栏《嵌入式开发》●专栏《Keil教程》●嵌入式专栏精选教程
关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
点击“阅读原文”查看更多分享。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表