当前位置: 首页 > news >正文

嵌入式学习笔记 - 关于ARM编辑器compiler version 5 and compiler version 6

KEIL中关于ARM编译器是可选的,如下图,默认是最新版本,可以下载旧版本并放置到KEIL安装根目录下就可以在此处出现可选项。

一 关于ARM 编译器compiler version 5 和 compiler version 6 的区别,

以下是deepseek的回答:

ARM Compiler 5(AC5)与 ARM Compiler 6(AC6)的主要区别体现在以下方面:


一、编译架构差异

  • ‌AC5‌:基于传统编译器架构,优化策略以静态分析为主3。

  • ‌AC6‌:基于 LLVM 框架,支持更先进的动态优化算法和对新型 Arm 处理器架构(如 Cortex-M55、Cortex-A78)的适配36。


二、优化能力对比

  1. ‌优化等级‌

    • ‌AC5‌:提供 0~3 级优化,其中 -O3 侧重性能,但可能显著增加代码体积;-O0 保留完整调试信息23。

    • ‌AC6‌:新增 -Os(平衡优化)、-Oz(极致代码体积优化),且默认推荐 -O1(有限优化,适合调试)24。

  2. ‌性能提升‌

    • AC6 在复杂嵌入式代码中综合性能提升约 ‌14.9%‌,部分工业/汽车应用中性能提升超过 ‌30%‌5。

    • 代码体积优化效果优于 AC5,尤其在结合 microlib 时更明显5。


三、兼容性与调试支持

  • ‌语法兼容性‌:
    AC6 对代码要求更严格,例如 naked 函数内禁止非汇编语句,可能导致 AC5 代码迁移时报错(需修改代码逻辑)6。

  • ‌调试体验‌:
    AC6 在 -O1 下保留更多调试信息,而 AC5 的 -O0 优化可能因调试窗口关闭导致断点设置受限24。


四、编译速度与工具链

  • ‌编译速度‌:AC6 的编译速度显著快于 AC5(尤其在大型工程中)16。

  • ‌工具链默认设置‌:AC6 默认启用 --strict_ansi 模式,而 AC5 的语法检查相对宽松6。

  • ‌安全认证‌:AC6 更新了针对功能安全(如 ISO 26262)的认证支持5。


五、适用场景建议

  • ‌推荐 AC6‌:新项目开发、需适配最新处理器架构或追求高性能/小体积的场景。

  • ‌保留 AC5‌:维护旧项目或需兼容特定语法(如部分嵌入式库)时。

‌迁移注意事项‌:切换至 AC6 需检查裸机代码中的 naked 函数实现,并调整文件级优化设置(不再支持局部代码优化指令。

二 兼容性问题

使用KEIL旧版本生成的代码移植到新版本KEIL之后,由于新版本keil使用新版的编译器,就会造成代码不兼容问题,编译会提示错误.

同样如果新版的keil生成的代码使用旧版本的编译器同样会造成不兼容,并且报错。

http://www.xdnf.cn/news/590203.html

相关文章:

  • 软考高项考前48小时冲刺:核心考点记忆 + 错题复盘 + 3 科重点
  • 养生指南:五维提升健康品质
  • 基于cornerstone3D的dicom影像浏览器 第二十一章 显示DICOM TAGS
  • Paimon和Hive相集成
  • Java基础 Day18
  • Redis 是否适合像 MySQL 一样当数据库使用?
  • 单一职责原则 (Single Responsibility Principle, SRP)
  • html主题切换小demo
  • Oracle 中 SHRINK 与 MOVE 操作的比较
  • NR 通讯的整体架构
  • PyTorch可视化工具——使用Visdom进行深度学习可视化
  • Jetson:aarch64平台编译onnxruntime使用GPU
  • 【GESP】C++三级真题 luogu-B4038 [GESP202409 三级] 平衡序列
  • Flask 路由跳转机制:url_for生成动态URL、redirect页面重定向
  • 基于 ZU49DR FPGA 的无线电射频数据采样转换开发平台核心板
  • Docker-Mysql
  • LLaMA-Factory微调LLM-Research/Llama-3.2-3B-Instruct模型
  • 基于多目标优化的样本调度适应度函数设计
  • 7.1.查找的基本概念
  • 高等数学-无穷级数
  • Unity飞机大战-射击类游戏3D虚拟
  • Athena 执行引擎:在线服务计算的效率王者
  • pandas :从入门到进阶的系统实践笔记
  • 错误: gdalbuildvrt 命令未找到————的问题
  • 数字孪生驱动的离散制造智能升级:架构设计与工程实践
  • C++:关联式容器map容器,multimap容器
  • ssrf漏洞学习
  • 并发编程:各种锁机制、锁区别、并发工具类深刻总结
  • 关于标准盒模型和怪异盒模型
  • python正方形面积 2024年信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析