【ARM 嵌入式 编译系列 3.7 -- newlib 库文件与存根函数 stubs 详细介绍】

发布时间:2024年01月22日


请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】


newlib 库文件介绍

newlib 是为嵌入式系统设计的一种 C 标准库实现,它特别适用于那些没有传统操作系统支持的系统。由于嵌入式系统的资源通常有限,newlib 着重于减少资源使用,同时提供了一组相对完整的 C 标准库函数。

相比于其它版本的标准库,例如 glibc(GNU C Library,用于大多数 Linux 发行版)或 uclibc(微型 C 库,针对嵌入式设备的资源节约替代品),newlib 有以下特点和差异:

资源使用

  • 轻量级newlib 旨在占用尽可能少的 ROM 和 RAM 空间。
  • 可定制性:可以根据需要编译和配置 newlib,以包含或排除特定的库功能,以进一步减少资源占用。

平台支持

  • 跨平台newlib 支持多种处理器架构和硬件平台,尤其是 ARM 和其他常见的嵌入式处理器。
  • 无需操作系统newlib 可用于没有完整操作系统的裸机(bare-metal)环境。

功能

  • 简化的系统调用newlib 提供了系统调用的简化和存根实现(stub),允许用户根据其嵌入式系统的实际情况提供实现。

  • 重定向支持newlib 允许重定向标准输入输出(如 stdinstdoutstderr)到用户定义的设备或文件,这在嵌入式系统中非常有用。

  • 浮点支持newlib 提供了对浮点数操作的支持,尽管在资源受限的系统中可能会选择禁用以节约空间。

性能

  • 针对小型系统优化newlib 的实现偏重于减少资源占用和提高效率,而不是最大化性能。
  • 编译时间优化:可以在编译时进行优化,以适应特定的嵌入式系统需求。
文章来源:https://blog.csdn.net/sinat_32960911/article/details/135729490
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。