PicoLibc C库,用于资源有限的嵌入式系统

嵌入式C-

Keith Packard是一位活跃的Debian开发人员 这也是 X.Org项目负责人和 也是创作者 X扩展的一个,包括XRender,XComposite和XRandR。 PicoLibc是他的另一本作品 这是一个C库 开发用于嵌入式设备 资源有限(也就是说,它们的固定存储空间和RAM很少)。 在开发过程中,某些代码是从Cygwin和AVR Libc项目的newlib库中借用的,该库是为Atmel AVR微控制器开发的。

Keith Packard在找不到合适的Libc版本后开始开发,该版本可用于低RAM嵌入式设备。 该项目自去年以来一直在发展。 在第一阶段 该项目是一个newlib变体,其中stdio函数由avrlibc的紧凑版本代替(newlib中的stdio不适用于资源的大量消耗)。

由于中国目前的活动与RISC-V架构的持续工作以及嵌入式设备工具的开发有关,因此最近 检查了libc实现的状态 y 总结 什么 稍作调整,newlib和avrlibc的组合可以成为一个很好的通用解决方案。 最初,该项目是以“ newlib-nano”的名称开发的,但是为了避免与Newlib库混淆,将其重命名为PicoLibc。

关于PicoLibc

以目前的形式, Picolibc已经完成了删除BSD许可下未提供的所有代码的工作。 (此代码未用于嵌入式设备的程序集中),这大大简化了项目许可证的使用情况。

线程本地实现已从“结构_reent”移至TLS(线程本地存储)机制。 默认情况下,压缩版本的stdio是启用的,取自avrlibc库代码(特定于ATmel的汇编器插入物用C重写)。

的工具 介子用于编译什么 允许您不附加newlib脚本,并简化了从newlib转移更改的操作。 在将控制权转移到main()函数之前,已添加了简化版的初始化代码(crt0),并将其附加到可执行文件中并执行。

PicoLibc的源代码是在BSD许可下分发的,并且 该库支持ARM(32位),i386,RISC-V,x86_64和PowerPC体系结构。

关于新版本的PicoLibc 1.1

我最近介绍了PicoLibc 1.1的新版本,其中 添加了一个帮助程序库以支持半主机技术, 允许在调试器或仿真器环境中运行的代码使用主机系统的输入/输出机制。

对于支持打开,关闭,读取和写入系统调用的系统,tinystdio 添加了标准化的POSIX I / O接口, 包括fopen和fdopen函数,以及将stdin / stdout / stderr绑定到POSIX定义的文件描述符。

  • 最新更改已从newlib代码库继承而来。 包括fenv.h的其他libm存根,可在不支持计算的系统上使用。
  • 除了删除了包含未使用的实验代码的newlib,libm和mathfp目录之外,还为picolibc添加了用于PC和ARM和RISC-V系统的Hello World应用程序编译示例。

开始使用Picolibc

为了开始使用Picolibc,您应该知道Picolibc利用介子构建系统在使用GCC的Linux主机上针对各种硬件平台进行编译。 这就是为什么除了安装Python 3和Ninja之外,他们还必须将介子作为开发环境的一部分。 为此,您可以查阅其指南 在下面的链接中。 

最后,为了获得Picolibc代码,您可以通过以下链接进行操作,在该链接中可以找到 必要的文档。 

或者以相同的方式他们可以咨询 我在网上找到的以下指南 并有详细信息。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。