PicoLibc une bibliothèque C pour les systèmes embarqués avec des ressources limitées

Embarqué-C-

Keith Packard est un développeur Debian actif et c'est aussi le Chef de projet X.Org et aussi créateur de nombreuses extensions X, y compris XRender, XComposite et XRandR. PicoLibc est une autre de ses œuvres et ceci est une bibliothèque C qui est développé pour une utilisation dans les appareils embarqués avec des ressources limitées (c'est-à-dire qu'ils ont peu d'espace de stockage fixe et de RAM). Au cours du développement, une partie du code a été empruntée à la bibliothèque newlib du projet Cygwin et AVR Libc, qui a été développée pour les microcontrôleurs Atmel AVR.

Keith Packard a commencé le développement après avoir été incapable de trouver une version décente de Libc, qui pourrait être utilisée sur des appareils embarqués à faible RAM. Le projet se développe depuis l'année dernière. Dans la première étape, le projet était une variante newlib, dans laquelle les fonctions stdio ont été remplacées par la version compacte d'avrlibc (stdio dans newlib n'était pas adapté à la forte consommation de ressources).

Étant donné que les activités actuelles de la Chine sont liées aux travaux en cours sur l'architecture RISC-V et au développement d'outils pour les dispositifs embarqués, récemment vérifié le statut des implémentations de libc y conclu de quoi, avec un petit ajustement, la combinaison de newlib et avrlibc peut être une bonne solution universelle. Initialement, le projet a été développé sous le nom de «newlib-nano», mais pour éviter toute confusion avec la bibliothèque Newlib, il a été renommé PicoLibc.

À propos de PicoLibc

Dans sa forme actuelle, Picolibc a déjà fait des travaux pour supprimer tout le code qui n'est pas fourni sous la licence BSD (Ce code n'a pas été utilisé dans l'assemblage pour les périphériques embarqués), ce qui a grandement simplifié la situation avec la licence de projet.

L'implémentation locale de thread a été déplacée du mécanisme 'struct _reent' vers le mécanisme TLS (stockage local des threads). La version compacte de stdio est activée par défaut, tirée du code de la bibliothèque avrlibc (les insertions d'assembleur spécifiques à ATmel sont réécrites en C).

Les outils de Meson sont utilisés pour la compilation, Qui vous permet de ne pas attacher de scripts newlib et de simplifier le transfert des modifications depuis newlib. Une version simplifiée du code d'initialisation (crt0) a été ajoutée, attachée au fichier exécutable et exécutée avant de transférer le contrôle à la fonction main ().

Le code source de PicoLibc est distribué sous une licence BSD et la bibliothèque prend en charge les architectures ARM (32 bits), i386, RISC-V, x86_64 et PowerPC.

À propos de la nouvelle version de PicoLibc 1.1

J'ai récemment présenté la sortie de la nouvelle version de PicoLibc 1.1, dans laquelle une bibliothèque d'aide a été ajoutée pour prendre en charge la technologie de semi-hébergement, A qui permet au code exécuté dans un environnement de débogage ou d'émulateur d'utiliser les mécanismes d'entrée / sortie du système hôte.

Pour les systèmes prenant en charge les appels système d'ouverture, de fermeture, de lecture et d'écriture, tinystdio ajoute des interfaces d'E / S POSIX standardisées, y compris les fonctions fopen et fdopen, ainsi que la liaison de stdin / stdout / stderr aux descripteurs de fichiers définis par POSIX.

  • Les changements récents ont été reportés de la base de code newlib. Y compris des stubs libm supplémentaires pour fenv.h, qui peuvent être utilisés sur des systèmes sans support de calcul.
  • Ajout de l'exemple de compilation d'application Hello World avec picolibc pour les systèmes ARM et RISC-V, en plus de la suppression des répertoires newlib, libm et mathfp qui contenaient du code expérimental inutilisé.

Commencez à utiliser Picolibc

Afin de démarrer avec Picolibc, vous devez savoir que Picolibc utilise le système de construction meson pour compiler pour diverses plates-formes matérielles sur un hôte Linux utilisant GCC. C'est pourquoi ils doivent avoir meson dans l'environnement de développement, en plus d'avoir Python 3 et Ninja installés. Pour cela vous pouvez consulter le guide de celui-ci dans le lien suivant. 

Enfin, pour obtenir le code Picolibc, vous pouvez le faire à partir du lien suivant, où vous pouvez trouver la documentation nécessaire. 

Ou de la même manière qu'ils peuvent consulter le guide suivant que j'ai trouvé sur le net et a des informations détaillées.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.