打印

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

[复制链接]
675|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 提供了更丰富的错误消息和诊断信息,便于开发调试。

使用特权

评论回复
5
公羊子丹| | 2025-4-2 07:44 | 只看该作者
ARM Compiler 5 和 6 在架构支持上有区别,Compiler 6 使用的是 LLVM 架构,优化更好,但有些旧代码可能不兼容。

使用特权

评论回复
6
周半梅| | 2025-4-2 07:45 | 只看该作者
如果项目是老版本的 ST 代码,推荐用 Compiler 5,兼容性更好,避免一些语法或库函数的不兼容问题。

使用特权

评论回复
7
帛灿灿| | 2025-4-2 07:46 | 只看该作者
Compiler 6 生成的代码通常更小更快,支持更多优化特性,但有些 __asm 代码可能需要调整。

使用特权

评论回复
8
童雨竹| | 2025-4-2 07:47 | 只看该作者
如果是 Cortex-M33(比如 STM32U5),推荐使用 Compiler 6,因为它对 ARMv8-M 支持更完善。

使用特权

评论回复
9
万图| | 2025-4-2 07:48 | 只看该作者
Keil MDK 默认新项目会用 Compiler 6,但如果你的项目依赖 Keil 的 ARMCC 专有特性,可能需要切回 Compiler 5。

使用特权

评论回复
10
Wordsworth| | 2025-4-2 07:49 | 只看该作者
Compiler 6 使用 armclang,而 Compiler 5 用的是 armcc,如果你的项目里有 #pragma arm section 之类的语法,可能要改成 __attribute__。

使用特权

评论回复
11
Bblythe| | 2025-4-2 07:50 | 只看该作者
你可以对比两者编译出的代码大小和性能,有些时候 Compiler 6 会更优,但也可能带来一些新问题。

使用特权

评论回复
12
Pulitzer| | 2025-4-2 07:51 | 只看该作者
如果你使用的是 STM32CubeMX 生成的工程,通常推荐 Compiler 6,ST 近年的代码库基本都已经适配。

使用特权

评论回复
13
Uriah| | 2025-4-2 07:52 | 只看该作者
有些 DSP 相关的库,比如 CMSIS-DSP,在 Compiler 5 和 6 下可能有不同的优化效果,建议测试后再决定。

使用特权

评论回复
14
Clyde011| | 2025-4-2 07:53 | 只看该作者
如果不确定的话,可以先用 Compiler 5,确保项目稳定后,再尝试升级到 Compiler 6 进行优化。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

1846

帖子

2

粉丝