勾选 Use MicroLIB 的主要作用是让编译器使用 ARM 专为嵌入式系统高度优化的微型 C 运行库,来替代庞大的标准 C 运行库。

具体来说,勾选它会带来以下几个关键作用:

  • 显著减小代码体积: MicroLIB 去除了标准 C 库中许多在微控制器上用不到的冗余和复杂功能。它对代码和数据内存的分配进行了深度优化,因此编译生成的固件(ROM 和 RAM 占用)通常会比使用标准库小很多。

  • 方便实现 printf 串口打印: 这是新手和工程师最常用的功能。在标准库下,调用 printf 默认会使用 ARM 的“半主机模式”(Semihosting),如果板子没有连接仿真器,程序直接跑就会卡死。勾选 MicroLIB 后,半主机模式被禁用,你只需要在代码中重写(重定向) fputc 函数,就能轻松将 printf 的内容输出到单片机的串口上。

  • 专为裸机环境设计: 它不需要任何底层的操作系统(OS)支持即可运行,非常适合 STM32 这种经常裸机跑代码或者只跑轻量级 RTOS 的环境。

  • 快速的初始化: 它的启动代码非常精简,能够更快地完成 C 语言运行环境的初始化并跳转到 main() 函数。

使用限制 虽然它小巧好用,但 MicroLIB 并不完全符合标准的 ISO C 规范。它不支持某些复杂的标准库功能(例如宽字符处理、复杂的 locale 本地化设置、某些文件 I/O 操作),并且对 C++ 的支持非常有限。不过,对于绝大多数单片机控制、传感器读取和常规调试任务来说,它的功能已经绰绰有余。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐