嵌入式省 Flash 的几个笨办法(实测有效)

技术笔记  ·  2026-08-28

项目后期芯片空间见底是常态。分享几个我用过、确实能挤出空间的笨办法。

1. 查表数据换类型

正弦表用 int16_t 完全够,别用 float。一张 1024 点的表能从 4KB 降到 2KB。

2. const 别乱加

听起来反直觉:加上 const 进只读段,本身不省空间,但有些链接器对只读段的对齐更严格,反而膨胀。先看 map 文件再决定。

3. 合并重复的初始化代码

到处 memset 成同样的值,编译器不一定合并。抽成一个函数,让优化器有机会。

4. 打印字符串集中管理

每个文件里散落的 printf("error") 会重复占用空间,集中成字符串表,能省几百字节。

5. 关掉没用的库函数

链接脚本里把不用的向量表项置零;不用的浮点 printf 关掉,单这一项经常省 3~5KB。

6. 优化等级先别急着调

-Os 会让调试变难。先把上面五步做完,实在不够再上优化等级,并且改完必须重测

一句话:省空间是细账,靠 map 文件一项项抠,别指望编译器一键搞定。

 
评论已关闭
suibian. All Rights Reserved. Theme Jasmine by Kent Liao.
本站总访问  ·  访客