PicoLibc unha biblioteca C para sistemas embebidos con recursos limitados

Incrustado-C-

Keith Packard é un desenvolvedor activo de Debian e tamén é o Líder do proxecto X.Org e tamén creador de moitas extensións X., incluíndo XRender, XComposite e XRandR. PicoLibc é outra das súas obras e esta é unha biblioteca C. que se desenvolve para o seu uso en dispositivos integrados con recursos limitados (é dicir, teñen pouco espazo de almacenamento fixo e memoria RAM). Durante o desenvolvemento, parte do código foi tomado prestado da biblioteca newlib do proxecto Cygwin e AVR Libc, que foi desenvolvida para os microcontroladores Atmel AVR.

Keith Packard comezou a desenvolverse despois de que non atopase unha versión decente de Libc, que podería usarse en dispositivos embebidos con pouca memoria RAM. O proxecto desenvolveuse desde o ano pasado. Na primeira etapa, o proxecto era unha variante newlib, no que as funcións stdio foron substituídas pola versión compacta de avrlibc (stdio en newlib non se adaptou ao forte consumo de recursos).

Dado que as actividades actuais de China están relacionadas recentemente co traballo en curso sobre arquitectura RISC-V e o desenvolvemento de ferramentas para dispositivos integrados comprobou o estado das implementacións de libc y concluíu sobre o que, cun pequeno axuste, a combinación de newlib e avrlibc pode ser unha boa solución universal. Inicialmente, o proxecto desenvolveuse co nome de "newlib-nano", pero para evitar confusións coa biblioteca Newlib, cambiouse o nome a PicoLibc.

Acerca de PicoLibc

Na súa forma actual, Picolibc xa fixo un traballo para eliminar todo o código que non se fornece baixo a licenza BSD (Este código non se usou na montaxe para dispositivos incrustados), o que simplificou moito a situación coa licenza do proxecto.

A implementación local de fíos moveuse de 'struct _reent' ao mecanismo TLS (almacenamento local de fíos). A versión compacta de stdio está habilitada por defecto, tomada do código da biblioteca avrlibc (as insercións de ensamblador específicas de ATmel reescríbense en C).

As ferramentas de Meson úsanse para a compilación, que permite non anexar scripts newlib e simplificar a transferencia de cambios desde newlib. Engadiuse unha versión simplificada do código de inicialización (crt0), unida ao ficheiro executable e executada antes de transferir o control á función main ().

O código fonte de PicoLibc distribúese baixo unha licenza BSD e A biblioteca admite arquitecturas ARM (32 bits), i386, RISC-V, x86_64 e PowerPC.

Acerca da nova versión de PicoLibc 1.1

Recentemente presentei o lanzamento da nova versión de PicoLibc 1.1, na que engadiuse unha biblioteca auxiliar para soportar a tecnoloxía de semialoxamento, A que permite que o código que se executa nun entorno de depuración ou emulador utilice mecanismos de entrada / saída do sistema host.

Para sistemas que admiten abrir, pechar, ler e escribir chamadas de sistema, tinystdio engade interfaces de E / S POSIX estandarizadas, incluíndo as funcións fopen e fdopen, así como unir stdin / stdout / stderr aos descritores de ficheiros definidos por POSIX.

  • Os cambios recentes foron transferidos desde a base de código newlib. Inclúe talóns de libm adicionais para fenv.h, que se poden usar en sistemas sen soporte de cálculo.
  • Engadiuse o exemplo de compilación de aplicacións Hello World con picolibc para sistemas ARM e RISC-V, ademais de eliminar os directorios newlib, libm e mathfp que contiñan código experimental non utilizado.

Comeza a usar Picolibc

Para comezar con Picolibc, debes saber que Picolibc fai uso do sistema de compilación de mesóns para compilar varias plataformas de hardware nun host Linux usando GCC. É por iso que deben ter mesón como parte do entorno de desenvolvemento, ademais de ter instalado Python 3 e Ninja. Para iso podes consultar a guía do mesmo Na seguinte ligazón. 

Finalmente, para obter o código Picolibc, podes facelo desde a seguinte ligazón, onde podes atopar a documentación necesaria. 

Ou do mesmo xeito que poden consultar a seguinte guía que atopei na rede e ten información detallada.


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

Sexa o primeiro en opinar sobre

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.