硬汉嵌入式论坛

 找回密码
 立即注册
查看: 850|回复: 3
收起左侧

[技术讨论] 使用AC6编译器编译F1的标准库为什么Flash空间占用会更大

[复制链接]

1

主题

23

回帖

26

积分

新手上路

积分
26
发表于 2025-1-9 14:56:11 | 显示全部楼层 |阅读模式
请教硬汉,最近想要把之前的F1代码迁移到最新的AC6编译器,修改完报错之后发现编译的代码比之前的AC5还要大,这个是优化选项有问题吗,而且更奇怪的事情是使用AC5编译器提高优化等级,代码空间占用会减小,但是AC6除了O1相对O0会减小,O2和O3相对O1都是变大

上传的图片中,同一个MDK的版本,使用AC5编译出来的是133.09kB,但是AC6编译出来的是141.95kB

同样代码使用AC5编译结果

同样代码使用AC5编译结果

迁移到AC6之后编译的结果

迁移到AC6之后编译的结果
回复

使用道具 举报

2

主题

35

回帖

41

积分

新手上路

积分
41
发表于 2025-1-9 20:49:45 | 显示全部楼层
首先,编译器优化代码不一定会变小,也可能提高了运行速度;
代码大小和运行速度往往不可兼得,需要相互平衡。
AC5和AC6差别比较大,比如AC6高等级优化,会做较多的循环展开。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116233
QQ
发表于 2025-1-10 08:06:47 | 显示全部楼层
可以选择-Oz image size优化看看
回复

使用道具 举报

218

主题

1106

回帖

1770

积分

至尊会员

More we do, more we can do.

积分
1770
发表于 2025-1-10 08:59:49 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-11 07:41 , Processed in 0.256137 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表