STM32 - Embedded IDE - GCC - 显著减少固件的体积

导言


如上图所示,在编译器附加选项(全局)里添加--specs=nano.specs,告诉编译器使用newlib-nano替代newlib去编译代码。

newlib vs. newlib-nano

  • newlib 是 GNU ARM 工具链默认的 C 标准库,功能完整,但体积较大(包含了完整的 printf/scanf、浮点支持、本地化、多线程等)。
  • newlib-nano 是针对嵌入式优化的裁剪版本,去掉了大部分不必要的功能,使用更小的缓冲区,更适合 Flash 和 RAM 都比较紧张的 MCU(比如 STM32G431)。

一、测试编译



如上两图所示:

  • RAM的使用从13344 / 1024 = 13.03125kb 变成 10816 / 1024 = 10.5625kb。
  • FLASH的使用从75104 / 1024 = 73.34375kb 变成 45676 / 1024 = 44.60546kb。

总之,--specs=nano.specs的效果非常明显。

相关推荐
都在酒里8 小时前
STM32有限状态机(FSM)详解,综合应用总结(二)
stm32·单片机·嵌入式硬件·状态机
嵌入式-老费9 小时前
esp开发与应用(继电器的使用)
单片机·嵌入式硬件
CPETW9 小时前
RS-232 Sniffer 嗅探器 ---- UNI-T电子负载通讯协议抓取-A
网络·科技·stm32·单片机·嵌入式硬件·电子
wotaifuzao9 小时前
指针和中断不是魔法:用第一性原理看穿嵌入式底层(万字解析)
stm32·嵌入式开发·内存模型·c语言指针·arm架构·中断机制·rtos内核
xiangw@GZ9 小时前
倒 F 天线 (IFA/MIFA) 原理深度解析
单片机·嵌入式硬件
m0_377108149 小时前
stm32时钟
stm32·单片机·嵌入式硬件
smalming9 小时前
【产品开发】空气波按摩器的一些控制逻辑
嵌入式硬件·嵌入式软件
嗯? 嗯。10 小时前
S32K外设Usart
单片机·嵌入式硬件
星夜夏空9910 小时前
STM32单片机学习(24) —— 硬件I2C和软件I2C
stm32·单片机·学习
资深流水灯工程师10 小时前
嵌入式系统中的环形缓冲区:原理、应用与 STM32 实现
网络·stm32·嵌入式硬件