Knižnica PicoLibc a C pre vstavané systémy s obmedzenými zdrojmi

Zabudované-C-

Keith Packard je aktívny vývojár Debianu a je to tiež Vedúci projektu X.Org a aj tvorca mnohých rozšírení X., vrátane XRender, XComposite a XRandR. PicoLibc je ďalším z jeho diel a toto je knižnica C. ktorý je vyvinutý na použitie vo vložených zariadeniach s obmedzenými zdrojmi (to znamená, že majú málo pevného úložného priestoru a RAM). Počas vývoja bola časť kódu vypožičaná z knižnice newlib projektu Cygwin a AVR Libc, ktorá bola vyvinutá pre mikrokontroléry Atmel AVR.

Keith Packard začal vývoj po tom, čo nemohol nájsť slušnú verziu Libc, ktorá by sa dala použiť na zariadeniach s nízkou pamäťou RAM. Projekt sa rozvíja od minulého roku. V prvej etape projekt bol variantom newlib, v ktorom boli funkcie stdio nahradené kompaktnou verziou avrlibc (stdio v newlib nebol prispôsobený veľkej spotrebe zdrojov).

Keďže súčasné čínske aktivity súvisia s pokračujúcou prácou na architektúre RISC-V a vývojom nástrojov pre vstavané zariadenia, nedávno skontroloval stav implementácií libc y uzavrel čoho, s trochou vylepšenia môže byť kombinácia newlib a avrlibc dobrým univerzálnym riešením. Pôvodne bol projekt vyvinutý pod názvom „newlib-nano“, ale aby nedošlo k zámene s knižnicou Newlib, bol premenovaný na PicoLibc.

O spoločnosti PicoLibc

V súčasnej podobe Picolibc už vykonal prácu na odstránení všetkého kódu, ktorý nie je uvedený v licencii BSD (Tento kód nebol použitý v zostave pre vložené zariadenia), čo výrazne zjednodušilo situáciu s licenciou na projekt.

Lokálna implementácia vlákna bola presunutá z mechanizmu „struct _reent“ do mechanizmu TLS (Thread Local Storage). Kompaktná verzia stdio je predvolene povolená, prevzatá z kódu knižnice avrlibc (ATmel-špecifické vložky assembleru sú prepísané v C).

Nástroje Na kompiláciu sa používajú mezóny, čo umožňuje neprikladať skripty newlib a zjednodušuje prenos zmien z newlib. Bola pridaná zjednodušená verzia inicializačného kódu (crt0), ktorá je pripojená k spustiteľnému súboru a je vykonaná pred prenosom ovládacieho prvku do funkcie main ().

Zdrojový kód PicoLibc je distribuovaný pod licenciou BSD a Knižnica podporuje architektúry ARM (32-bit), i386, RISC-V, x86_64 a PowerPC.

O novej verzii PicoLibc 1.1

Nedávno som predstavil vydanie novej verzie PicoLibc 1.1, v ktorej bola pridaná pomocná knižnica na podporu technológie semi-hostingu, A, ktorý umožňuje kódu bežiacemu v prostredí debuggera alebo emulátora používať vstupné / výstupné mechanizmy z hostiteľského systému.

Pre systémy, ktoré podporujú otváranie, zatváranie, čítanie a zápis systémových hovorov, tinystdio pridáva štandardizované POSIX I / O rozhrania, vrátane funkcií fopen a fdopen, ako aj väzba stdin / stdout / stderr na deskriptory súborov definované POSIX.

  • Posledné zmeny boli prenesené z kódovej základne newlib. Vrátane ďalších úponov libm pre fenv.h, ktoré je možné použiť v systémoch bez podpory výpočtov.
  • Pridaný príklad kompilácie aplikácií Hello World s picolibc pre systémy ARM a RISC-V, okrem odstránenia adresárov newlib, libm a mathfp, ktoré obsahovali nepoužitý experimentálny kód.

Začnite používať Picolibc

Ak chcete začať s programom Picolibc, mali by ste vedieť, že program Picolibc využíva systém zostavovania meson na kompiláciu pre rôzne hardvérové ​​platformy na hostiteľovi systému Linux pomocou GCC. Preto musia mať mezon ako súčasť vývojového prostredia a navyše musia mať nainštalovaný Python 3 a Ninja. Môžete sa obrátiť na jeho sprievodcu Na nasledujúcom odkaze. 

Nakoniec, aby ste získali kód Picolibc, môžete to urobiť z nasledujúceho odkazu, kde nájdete potrebnú dokumentáciu. 

Alebo rovnakým spôsobom môžu konzultovať nasledujúci návod, ktorý som našiel na nete a má podrobné informácie.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.