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

Minimal libc

最基本的C库,被称为“最小libc”,是Zephyr代码库的一部分,并提供了标准C库的最小子集,以满足Zephyr及其子系统的需求,主要是在字符串操作和显示领域。

它的占用空间非常低,适用于不依赖于ISOC标准库中较少使用的部分的项目。它还可以与许多不同的工具链一起使用。

最小的libc实现可以在主Ziphyr树中的 lib/libc/minimal实现中找到。

动态内存管理

通过选择应用程序配置文件中选择CONFIG_MINIMAL_LIBC_MALLOC,可以启用最小libc中的动态内存管理。

最小的libc在内部使用内核内存堆API来管理标准的动态内存管理接口函数所使用的内存堆,如malloc()和free()。

内部内存堆通常位于.bss部分中。然而,当启用用户空间时,它将被放置在一个名为z_malloc_partition的专用内存分区中,可以从用户模式线程访问该分区。内部内存堆的大小由CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE指定。

由最小libc实现的标准动态内存管理接口函数是线程安全的,可以被多个线程同时调用。这些函数是在 lib/libc/minimal/source/stdlib/malloc.c.中实现的。

错误编号

错误号在整个Zephyrapi中被用来表示错误条件作为函数的返回值。它们通常作为本节中定义的整数文字的负值返回,并在errno.h报头文件中定义。

你可能感兴趣的:(Zephyr,jvm)