在开发ST的时候,使用keil的ARM Compiler什么时候需要修改?

[复制链接]
 楼主| alxd 发表于 2025-3-29 13:58 | 显示全部楼层 |阅读模式
在开发ST的时候,使用keil有ARM Compiler,我看有的项目是Use default compiler version 5,有的是Use default compiler version 6这个是什么时候需要选择和修改?其优势均是什么?
yangjiaxu 发表于 2025-3-29 14:00 | 显示全部楼层

在开发ST的时候,使用keil的ARM Compiler什么时候需要修改?

一般老项目就默认Use default compiler version 5,兼容性很好,如果使用Use default compiler version 6可能编译报错。如果是新的芯片和项目一般都是默认Use default compiler version 6。优势不清楚,但是感觉Use default compiler version 6比5编译的速度会快一些
梅花香自123 发表于 2025-3-31 22:58 | 显示全部楼层
v5 是一个较老的版本,它已经在许多早期的嵌入式开发中得到广泛应用
过期的塔头 发表于 2025-3-31 23:02 | 显示全部楼层
v6 提供了更丰富的错误消息和诊断信息,便于开发调试。
公羊子丹 发表于 2025-4-2 07:44 | 显示全部楼层
ARM Compiler 5 和 6 在架构支持上有区别,Compiler 6 使用的是 LLVM 架构,优化更好,但有些旧代码可能不兼容。
周半梅 发表于 2025-4-2 07:45 | 显示全部楼层
如果项目是老版本的 ST 代码,推荐用 Compiler 5,兼容性更好,避免一些语法或库函数的不兼容问题。
帛灿灿 发表于 2025-4-2 07:46 | 显示全部楼层
Compiler 6 生成的代码通常更小更快,支持更多优化特性,但有些 __asm 代码可能需要调整。
童雨竹 发表于 2025-4-2 07:47 | 显示全部楼层
如果是 Cortex-M33(比如 STM32U5),推荐使用 Compiler 6,因为它对 ARMv8-M 支持更完善。
万图 发表于 2025-4-2 07:48 | 显示全部楼层
Keil MDK 默认新项目会用 Compiler 6,但如果你的项目依赖 Keil 的 ARMCC 专有特性,可能需要切回 Compiler 5。
Wordsworth 发表于 2025-4-2 07:49 | 显示全部楼层
Compiler 6 使用 armclang,而 Compiler 5 用的是 armcc,如果你的项目里有 #pragma arm section 之类的语法,可能要改成 __attribute__。
Bblythe 发表于 2025-4-2 07:50 | 显示全部楼层
你可以对比两者编译出的代码大小和性能,有些时候 Compiler 6 会更优,但也可能带来一些新问题。
Pulitzer 发表于 2025-4-2 07:51 | 显示全部楼层
如果你使用的是 STM32CubeMX 生成的工程,通常推荐 Compiler 6,ST 近年的代码库基本都已经适配。
Uriah 发表于 2025-4-2 07:52 | 显示全部楼层
有些 DSP 相关的库,比如 CMSIS-DSP,在 Compiler 5 和 6 下可能有不同的优化效果,建议测试后再决定。
Clyde011 发表于 2025-4-2 07:53 | 显示全部楼层
如果不确定的话,可以先用 Compiler 5,确保项目稳定后,再尝试升级到 Compiler 6 进行优化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

82

主题

1896

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

82

主题

1896

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部