Featured image of post Picolibc 的使用

Picolibc 的使用

Picolibc 是一个专为小内存嵌入式系统设计的标准C库。它通过从 Newlib 和 AVR Libc 中提取代码并重构,在 C17 和 POSIX 标准下,将优化重点放在了 RAM 和 Flash 使用效率上。

1. 前言

Picolibc 由 Keith Packard 创建,是 Newlib 的一个分支,但去除了所有GPL相关代码,全面采用BSD许可,对商业开发非常友好。

它的核心目标是在功能完整的前提下,尽可能降低资源消耗。这一点在 stdio 实现上体现得最为明显——它重写了 stdio,不再在堆上预分配大缓冲区,而是使用更轻量的方式。

2. 使用

基本用法:

1
2
3
4
5
arm-none-eabi-gcc \
    -specs=</path/to/picolibc/dir>/lib/gcc/arm-none-eabi/<gcc-version>/picolibc.specs \
    --picolibc-prefix=</path/to/picolibc/dir>/arm-none-eabi \
    [其他编译参数...] \
    -o output.elf source.c

参数说明:

  • -specs=<path>
    指定 Picolibc 的配置文件,告诉 GCC 使用 Picolibc 替代默认的 newlib。

  • --picolibc-prefix=<path>
    指定 Picolibc 的安装根目录,picolibc.specs 文件会根据此前缀拼接出头文件、库文件和启动文件(crt0.o)的搜索路径。

3. 参考链接

  1. https://github.com/picolibc/picolibc
本博客所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!
最后更新于 2026/08/06 17:28 CST
使用 Hugo 构建
主题 StackJimmy 设计