PicoLibc uma biblioteca C para sistemas embarcados com recursos limitados

Embutido-C-

Keith Packard é um desenvolvedor Debian ativo e é também o Líder do projeto X.Org e também criador de muitas extensões X, incluindo XRender, XComposite e XRandR. PicoLibc é outra de suas obras e esta é uma biblioteca C que é desenvolvido para uso em dispositivos incorporados com recursos limitados (ou seja, eles têm pouco espaço de armazenamento fixo e RAM). Durante o desenvolvimento, parte do código foi emprestado da biblioteca newlib do projeto Cygwin e AVR Libc, que foi desenvolvida para os microcontroladores Atmel AVR.

Keith Packard iniciou o desenvolvimento depois de não conseguir encontrar uma versão decente do Libc, que pudesse ser usada em dispositivos embarcados com pouca RAM. O projeto vem se desenvolvendo desde o ano passado. Na primeira fase, o projeto era uma variante newlib, em que as funções stdio foram substituídas pela versão compacta do avrlibc (stdio em newlib não foi adaptado para o consumo pesado de recursos).

Uma vez que as atividades atuais da China estão relacionadas ao trabalho contínuo na arquitetura RISC-V e no desenvolvimento de ferramentas para dispositivos embarcados, recentemente verificou o status das implementações libc y concluído de que, com um pequeno ajuste, a combinação de newlib e avrlibc pode ser uma boa solução universal. Inicialmente, o projeto foi desenvolvido com o nome de "newlib-nano", mas para evitar confusão com a biblioteca Newlib, foi renomeado para PicoLibc.

Sobre o PicoLibc

Em sua forma atual, Picolibc já trabalhou para remover todo o código que não é fornecido sob a licença BSD (Este código não foi usado na montagem para dispositivos embarcados), o que simplificou muito a situação com a licença do projeto.

A implementação local do thread foi movida do mecanismo 'struct _reent' para o mecanismo TLS (armazenamento local do thread). A versão compacta do stdio é habilitada por padrão, obtida do código da biblioteca avrlibc (inserções de assembler específicas do ATmel são reescritas em C).

As ferramentas de Meson são usados ​​para compilação, Que permite que você não anexe scripts newlib e simplifica a transferência de alterações de newlib. Uma versão simplificada do código de inicialização (crt0) foi adicionada, anexada ao arquivo executável e executada antes de transferir o controle para a função main ().

O código-fonte do PicoLibc é distribuído sob uma licença BSD e a biblioteca oferece suporte às arquiteturas ARM (32 bits), i386, RISC-V, x86_64 e PowerPC.

Sobre a nova versão do PicoLibc 1.1

Recentemente apresentei o lançamento da nova versão do PicoLibc 1.1, na qual uma biblioteca auxiliar foi adicionada para oferecer suporte à tecnologia de semi-hospedagem, Um que permite que o código executado em um ambiente de depurador ou emulador use mecanismos de entrada / saída do sistema host.

Para sistemas que suportam abrir, fechar, ler e escrever chamadas de sistema, tinystdio adiciona interfaces padronizadas de E / S POSIX, incluindo funções fopen e fdopen, bem como ligação de stdin / stdout / stderr a descritores de arquivo definidos por POSIX.

  • Mudanças recentes foram transportadas da base de código newlib. Incluindo stubs libm adicionais para fenv.h, que podem ser usados ​​em sistemas sem suporte de cálculo.
  • Adicionado o exemplo de compilação de aplicativo Hello World com picolibc para sistemas ARM e RISC-V, além de remover os diretórios newlib, libm e mathfp que continham código experimental não utilizado.

Comece a usar Picolibc

Para começar a usar o Picolibc, você deve saber que o Picolibc usa o sistema de construção de meson para compilar para várias plataformas de hardware em um host Linux usando GCC. É por isso que eles devem ter meson como parte do ambiente de desenvolvimento, além de ter Python 3 e Ninja instalados. Para isso você pode consultar o guia do mesmo no link a seguir. 

Por último, para obter o código Picolibc, pode fazê-lo a partir do seguinte link, onde pode encontrar a documentação necessária. 

Ou da mesma forma que eles podem consultar o seguinte guia que encontrei na net e tem informações detalhadas.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.