CCS编译优化设置

1.优化等级设置

右键点击工程,选择 【属性 】

CCS12 设置菜单

CCS20 设置菜单

2.CCS 优化设置讲解:

Optimization level (--opt_level, -O)

Speed vs. size trade-offs (--opt_for_speed, -mf)

1. 优化等级 (--opt_level, -O)

这个选项决定了编译器对代码进行"整容"的力度。等级越高,代码跑得越快,但编译时间变长,且调试难度增加。

选项 标志 含义 适用场景 注意事项
无优化 -o0 不进行优化,严格对应源代码行号。 Debug调试阶段。方便打断点、看变量值。 代码运行最慢,体积可能反而较大(因为没压缩)。
基本优化 -o1 简单的优化,如删除死代码、常量折叠。 早期开发阶段。 性能提升有限,但保留了较好的调试信息。
高级优化 -o2 (默认推荐) 循环展开、函数内联、指令调度。 Release发布版。大多数工程的最佳平衡点。 可能会导致部分局部变量在调试时不可见。
全力优化 -o3 激进的优化,包括复杂的算法重组。 高性能要求。针对关键算法(如FOC控制环路)。 极易导致 #10068-D 错误(移除了未引用的段),代码体积变大。
自动/定制 -o4 编译器根据目标芯片特性自动选择最佳策略。 特定高端芯片。 需查阅具体芯片手册确认支持情况。

2. 速度与大小权衡 (--opt_for_speed, -mf)

这个选项告诉编译器:"当代码体积和执行速度发生冲突时,你优先保哪个?"

  • 范围 :通常从 1 到 5
  • --opt_for_speed=1 (-mf1)极致省空间。编译器会极力压缩代码体积,哪怕牺牲运行速度。适用于 Flash 空间极度紧张的老旧芯片。
  • --opt_for_speed=5 (-mf5)极致求速度。编译器会使用更多指令来换取更快的执行流(例如多用寄存器,少用内存访问),这会导致代码体积膨胀。

3. 如何搭配设置

针对项目,建议建立两套配置:

🛠️ Debug 配置 (用于写代码、查Bug)
  • Optimization Level (-o) : -o0 (确保断点准确,变量可见)
  • Speed vs Size (-mf): 默认即可
  • 目的: 此时不要在乎快慢,只要能看清程序怎么跑的就行。
🚀 Release 配置 (用于出货、测试性能)
  • Optimization Level (-o) : -o3 (开启强力优化)
  • Speed vs Size (-mf) : -mf5 (优先速度)

3.优化结果对比

优化配置 代码大小(KB) 字节大小 分析
O3/S0 125 KB 128,568 字节 基础 O3 优化,体积最小。
O3/S1 125 KB 128,568 字节 体积无变化,尺寸优化未生效。
O3/S2 125 KB 128,952 字节 仍保持稳定,未明显膨胀。
O3/S3 130 KB 133,432 字节 转折点:体积开始上升,编译器以空间换时间。
O3/S5 133 KB 136,384 字节 体积最大,理论运行速度最优。
相关推荐
非鱼䲆鱻䲜2 天前
CCS 20.5.0的printf重定向串口怎么实现?
linux·单片机·电赛·ccs
非鱼䲆鱻䲜3 天前
CCS 20.5.0配置头文件路径
ccs
yutian06066 天前
CCS21导入老版本工程时,工程propertice属性修改后无法保存问题
ccs
IOT那些事儿1 个月前
Code Composer Studio修改默认的工作空间
dsp·工作空间·ccs
粉色挖掘机1 个月前
lib文件查看函数方法之—反汇编查看函数名称
嵌入式硬件·dsp开发·ccs
yutian06062 个月前
CCS20 代码风格格式化设置
ccs
尽兴-3 个月前
Elasticsearch 生产集群最佳实践:模板治理、ILM 生命周期与运维体系
java·运维·elasticsearch·容量规划·ccs·分片设计
yutian06064 个月前
CCS 20.5.0(CCS Theia) 导入 CCS 12.8.1 之前版本
ccs
yutian06064 个月前
CCS:Code Composer Studio 12.8.1 窗口颜色改为深色
ccs