PicoLibc C knjižnica za ugrađene sustave s ograničenim resursima

Ugrađeni-C-

Keith Packard je aktivni programer za Debian a također je X.Org voditelj projekta i također kreator mnogih X ekstenzija, uključujući XRender, XComposite i XRandR. PicoLibc je još jedno od njegovih djela a ovo je C biblioteka koja je razvijena za upotrebu u ugrađenim uređajima s ograničenim resursima (odnosno, imaju malo fiksnog prostora za pohranu i RAM-a). Tijekom razvoja dio koda posuđen je iz knjižnice newlib projekta Cygwin i AVR Libc, koja je razvijena za mikrokontrolere Atmel AVR.

Keith Packard započeo je razvoj nakon što nije uspio pronaći pristojnu verziju Libca, koja bi se mogla koristiti na uređajima s ugrađenom RAM memorijom. Projekt se razvija od prošle godine. U prvoj fazi, projekt je bio newlib varijanta, u kojem su funkcije stdio zamijenjene kompaktnom verzijom avrlibc (stdio u newlibu nije prilagođen velikoj potrošnji resursa).

Budući da su trenutne kineske aktivnosti povezane s tekućim radom na RISC-V arhitekturi i razvojem alata za ugrađene uređaje, nedavno provjerio status implementacija libc y zaključio ili što, uz malo podešavanja, kombinacija newlib i avrlibc može biti dobro univerzalno rješenje. U početku je projekt bio razvijen pod nazivom "newlib-nano", no kako bi se izbjegla zabuna s knjižnicom Newlib, preimenovan je u PicoLibc.

O PicoLibcu

U svom sadašnjem obliku, Picolibc je već obavio posao kako bi uklonio sav kod koji nije osiguran pod BSD licencom (Ovaj kod se nije koristio u sklopu za ugrađene uređaje), što je uvelike pojednostavilo situaciju s projektnom licencom.

Lokalna implementacija niti premještena je iz 'struct _reent' u mehanizam TLS (lokalna pohrana niti). Kompaktna verzija stdio omogućena je prema zadanim postavkama, preuzeta iz koda biblioteke avrlibc (umetnuti asemblerski dijelovi za ATmel prepisani su u C).

Alati od Mezoni se koriste za kompilaciju, što omogućuje vam da ne priložite newlib skripte i pojednostavnite prijenos promjena iz newlib. Pojednostavljena verzija inicijalizacijskog koda (crt0) dodana je, pridružena izvršnoj datoteci i izvršena prije prijenosa kontrole na funkciju main ().

Izvorni kod PicoLibca distribuira se pod BSD licencom i Biblioteka podržava ARM (32-bitne), i386, RISC-V, x86_64 i PowerPC arhitekture.

O novoj verziji PicoLibc 1.1

Nedavno sam predstavio izdanje nove verzije PicoLibc 1.1, u kojoj dodana je pomoćna knjižnica koja podržava tehnologiju polu-hostinga, A koji omogućuje da se kôd koji se izvodi u okruženju programa za ispravljanje pogrešaka ili emulatora koristi mehanizme ulaza / izlaza iz glavnog sustava.

Za sustave koji podržavaju otvaranje, zatvaranje, čitanje i pisanje sistemskih poziva, tinystdio dodaje standardizirana POSIX I / O sučelja, uključujući funkcije fopen i fdopen, kao i vezivanje stdin / stdout / stderr za POSIX definirane deskriptore datoteka.

  • Nedavne promjene prenesene su s baze newlib koda. Uključujući dodatne klinove libm za fenv.h, koji se mogu koristiti na sustavima bez potpore proračunu.
  • Dodan je primjer kompilacije aplikacije Hello World s picolibc za ARM i RISC-V sustave, uz uklanjanje direktorija newlib, libm i mathfp koji su sadržavali neiskorišteni eksperimentalni kod.

Počnite koristiti Picolibc

Da biste počeli koristiti Picolibc, trebali biste znati da Picolibc koristi sustav gradnje mezona za kompajliranje za različite hardverske platforme na Linux računalu koristeći GCC. Zbog toga moraju imati i mezon kao dio razvojnog okruženja, uz instaliranje Pythona 3 i Ninje. Za to se možete obratiti vodiču U sljedećem linku. 

Napokon, da biste dobili Picolibc kôd, to možete učiniti na sljedećem linku, gdje možete pronaći potrebna dokumentacija. 

Ili na isti način na koji se mogu savjetovati sljedeći vodič koji sam pronašao na netu i ima detaljne informacije.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.