请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】
newlib
是为嵌入式系统设计的一种 C 标准库实现,它特别适用于那些没有传统操作系统支持的系统。由于嵌入式系统的资源通常有限,newlib
着重于减少资源使用,同时提供了一组相对完整的 C 标准库函数。
相比于其它版本的标准库,例如 glibc
(GNU C Library,用于大多数 Linux 发行版)或 uclibc
(微型 C 库,针对嵌入式设备的资源节约替代品),newlib
有以下特点和差异:
newlib
旨在占用尽可能少的 ROM 和 RAM 空间。newlib
,以包含或排除特定的库功能,以进一步减少资源占用。newlib
支持多种处理器架构和硬件平台,尤其是 ARM 和其他常见的嵌入式处理器。newlib
可用于没有完整操作系统的裸机(bare-metal)环境。简化的系统调用:newlib
提供了系统调用的简化和存根实现(stub),允许用户根据其嵌入式系统的实际情况提供实现。
重定向支持:newlib
允许重定向标准输入输出(如 stdin
、stdout
和 stderr
)到用户定义的设备或文件,这在嵌入式系统中非常有用。
浮点支持:newlib
提供了对浮点数操作的支持,尽管在资源受限的系统中可能会选择禁用以节约空间。
newlib
的实现偏重于减少资源占用和提高效率,而不是最大化性能。