Zephyr开发指南——编程语言支持(Newlib)

本文介绍了Newlib,一个用于嵌入式系统的C库实现,详细讲解了ZephyrSDK中Newlib的完整版和Nano版。完整版Newlib注重性能优化,而Nano版则侧重代码大小优化。Newlib的API钩子函数将库调用转化为ZephyrAPI。Newlibnano变体的可用性取决于CONFIG_HAS_NEWLIB_LIBC_NANO配置选项。
摘要由CSDN通过智能技术生成

Newlib

Newlib是一个为嵌入式系统编写的完整的C库实现。它是一个单独的开源项目,不包含在源代码形式中。相反,ZephyrSDK为每个受支持的体系结构(libc.a和libm.a)都包含了一个预编译的库。

注意:

其他的第三方工具链,如GNUArm嵌入式工具链,也捆绑了Newlib作为一个预编译的库。

Zephyr实现了由Newlib中的C标准库函数调用的“API钩子”函数。这些钩子函数是在lib/libc/newlib/libc-hooks.c中实现的,并将库的内部系统调用转换为等效的ZephyrAPI调用。

Newlib类型

ZephyrSDK中包含的新库有两个版本:“完整的”和“nano的”变体。

完整的Newlib

Newlib完整变体(libc.a和libm.a)是ZephyrSDK中Newlib最强大的变体,支持几乎所有标准C库特性。它对性能进行了优化(更喜欢性能而不是代码大小),它的占用空间比nano变体大得多。

可以通过选择CONFIG_NEWLIB_LIBC并在应用程序配置文件中取消选择CONFIG_NEWLIB_LIBC_NANO来启用此变体。

Nano Newlib

Newlibnano变体(libc_nano.a和li

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值