PicoLibc o bibliotecă C pentru sisteme încorporate cu resurse limitate

încorporat-C-

Keith Packard este un dezvoltator Debian activ și este, de asemenea Lider de proiect X.Org și de asemenea creator din multe extensii X, inclusiv XRender, XComposite și XRandR. PicoLibc este o altă lucrare a sa și aceasta este o bibliotecă C. care este dezvoltat pentru a fi utilizat în dispozitive încorporate cu resurse limitate (adică au puțin spațiu de stocare fix și memorie RAM). În timpul dezvoltării, o parte din cod a fost împrumutată din noua bibliotecă a proiectului Cygwin și AVR Libc, care a fost dezvoltată pentru microcontrolerele Atmel AVR.

Keith Packard a început dezvoltarea după ce nu a putut găsi o versiune decentă a Libc, care ar putea fi utilizată pe dispozitive încorporate cu memorie RAM scăzută. Proiectul se dezvoltă încă de anul trecut. În prima etapă, proiectul a fost o variantă newlib, în care funcțiile stdio au fost înlocuite de versiunea compactă a avrlibc (stdio în newlib nu a fost adaptat consumului mare de resurse).

Întrucât activitățile actuale ale Chinei sunt legate recent de lucrările în curs privind arhitectura RISC-V și dezvoltarea instrumentelor pentru dispozitivele încorporate, recent a verificat starea implementărilor libc y încheiat din ce, cu o mică modificare, combinația newlib și avrlibc poate fi o soluție universală bună. Inițial, proiectul a fost dezvoltat sub numele „newlib-nano”, dar pentru a evita confuzia cu biblioteca Newlib, acesta a fost redenumit în PicoLibc.

Despre PicoLibc

În forma sa actuală, Picolibc a făcut deja lucrări pentru a elimina tot codul care nu este furnizat sub licența BSD (Acest cod nu a fost utilizat în ansamblul pentru dispozitive încorporate), ceea ce a simplificat foarte mult situația cu licența de proiect.

Implementarea locală a firului a fost mutată din mecanismul „struct _reent” în mecanismul TLS (thread local storage). Versiunea compactă a stdio este activată în mod implicit, preluată din codul bibliotecii avrlibc (inserțiile de asamblare specifice ATmel sunt rescrise în C).

Instrumentele de Meson sunt utilizate pentru compilare, ce vă permite să nu atașați scripturi newlib și să simplificați transferul modificărilor din newlib. O versiune simplificată a codului de inițializare (crt0) a fost adăugată, atașată la fișierul executabil și executată înainte de a transfera controlul la funcția main ().

Codul sursă al PicoLibc este distribuit sub o licență BSD și Biblioteca acceptă arhitecturi ARM (32 de biți), i386, RISC-V, x86_64 și PowerPC.

Despre noua versiune a PicoLibc 1.1

Am prezentat recent lansarea noii versiuni a PicoLibc 1.1, în care a fost adăugată o bibliotecă de ajutor pentru a sprijini tehnologia de semi-găzduire, A care permite codului care rulează într-un mediu de depanare sau emulator să utilizeze mecanisme de intrare / ieșire din sistemul gazdă.

Pentru sistemele care acceptă apeluri de sistem deschise, închise, citite și scrise, tinystdio adaugă interfețe POSIX I / O standardizate, inclusiv funcțiile fopen și fdopen, precum și legarea stdin / stdout / stderr la descriptorii de fișiere definite de POSIX.

  • Modificările recente au fost reportate din baza de cod newlib. Inclusiv butoane libm suplimentare pentru fenv.h, care pot fi utilizate pe sisteme fără suport de calcul.
  • S-a adăugat exemplul de compilare a aplicației Hello World cu picolibc pentru sistemele ARM și RISC-V, pe lângă eliminarea directorilor newlib, libm și mathfp care conțineau cod experimental neutilizat.

Începeți să utilizați Picolibc

Pentru a începe cu Picolibc, trebuie să știți că Picolibc folosește sistemul de construcție a mesonului pentru a compila diferite platforme hardware pe o gazdă Linux folosind GCC. De aceea trebuie să aibă meson ca parte a mediului de dezvoltare, pe lângă faptul că au instalat Python 3 și Ninja. Pentru aceasta puteți consulta ghidul acestuia În următorul link. 

În cele din urmă, pentru a obține codul Picolibc, îl puteți face de la următorul link, unde puteți găsi documentația necesară. 

Sau în același mod în care se pot consulta următorul ghid pe care l-am găsit pe net și are informații detaliate.


Conținutul articolului respectă principiile noastre de etică editorială. Pentru a raporta o eroare, faceți clic pe aici.

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată.

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

bool (adevărat)