„PicoLibc“ C biblioteka įterptosioms sistemoms su ribotais ištekliais

Įterptasis-C-

Keithas Packardas yra aktyvus „Debian“ kūrėjas ir tai taip pat yra X.Org projekto vadovas ir taip pat kūrėjas iš daugelio X plėtinių, įskaitant „XRender“, „XComposite“ ir „XRandR“. „PicoLibc“ yra dar vienas jo darbas ir tai yra C biblioteka kuri sukurta naudoti įterptuosiuose įrenginiuose turėdami ribotus išteklius (tai yra, jie turi mažai fiksuotos vietos ir RAM). Kuriant dalį kodo buvo pasiskolinta iš „Cygwin“ ir „AVR Libc“ projekto newlib bibliotekos, sukurtos „Atmel AVR“ mikrovaldikliams.

Keithas Packardas pradėjo kurti po to, kai negalėjo rasti padorios „Libc“ versijos, kurią būtų galima naudoti įterptiniuose įrenginiuose, kuriuose mažai RAM. Projektas plėtojamas nuo praėjusių metų. Pirmajame etape projektas buvo newlib variantas, kuriame stdio funkcijos buvo pakeistos kompaktiška avrlibc versija (stdio in newlib nebuvo pritaikyta dideliam išteklių naudojimui).

Kadangi dabartinė Kinijos veikla yra susijusi su pastaruoju metu vykdomu darbu dėl RISC-V architektūros ir įterptųjų įrenginių įrankių kūrimo patikrino libc diegimų būseną y padarė išvadą iš ko, šiek tiek pakoregavus, newlib ir avrlibc derinys gali būti geras universalus sprendimas. Iš pradžių projektas buvo kuriamas pavadinimu „newlib-nano“, tačiau siekiant išvengti painiavos su Newlib biblioteka, jis buvo pervadintas į „PicoLibc“.

Apie „PicoLibc“

Dabartine forma „Picolibc“ jau atliko darbą, kad pašalintų visus kodus, kurie nėra pateikti pagal BSD licenciją (Šis kodas nebuvo naudojamas įterptųjų įrenginių surinkime), o tai labai supaprastino situaciją su projekto licencija.

Gijos vietinis diegimas buvo perkeltas iš „struct _reent“ į TLS (gijos vietinės saugyklos) mechanizmą. Kompaktiška „stdio“ versija yra įjungta pagal numatytuosius nustatymus, paimta iš „avrlibc“ bibliotekos kodo („ATmel“ specifiniai surinkėjo intarpai perrašomi C).

Įrankiai Mesonas naudojamas kompiliavimui, ką leidžia nepridėti „newlib“ scenarijų ir supaprastinti pakeitimų perkėlimą iš „newlib“. Supaprastinta inicijavimo kodo versija (crt0) buvo pridėta, pridėta prie vykdomojo failo ir vykdoma prieš perkeliant valdymą į pagrindinę () funkciją.

„PicoLibc“ šaltinio kodas platinamas pagal BSD licenciją ir Biblioteka palaiko ARM (32 bitų), „i386“, „RISC-V“, „x86_64“ ir „PowerPC“ architektūras.

Apie naują „PicoLibc 1.1“ versiją

Neseniai pristatžiau naujos versijos „PicoLibc 1.1“ versiją, kurioje pridėta pagalbinė biblioteka, palaikanti pusiau talpinimo technologijas, A, leidžiančiam kodui, veikiančiam derintuvo ar emuliatoriaus aplinkoje, naudoti pagrindinės sistemos įvesties / išvesties mechanizmus.

Sistemoms, palaikančioms sistemos skambučių atidarymą, uždarymą, skaitymą ir rašymą, tinystdio prideda standartizuotas POSIX I / O sąsajas, įskaitant „fopen“ ir „fdopen“ funkcijas, taip pat „stdin / stdout / stderr“ susiejimą su POSIX apibrėžtais failų aprašais.

  • Naujausi pakeitimai buvo perkelti iš „newlib“ kodų bazės. Įskaitant papildomus „libm“ kamienus fenv.h, kuriuos galima naudoti sistemose be skaičiavimo palaikymo.
  • Pridėjo „Hello World“ programų kompiliavimo pavyzdį su „picolibc“ ARM ir RISC-V sistemoms, be to, pašalino „newlib“, „libm“ ir „mathfp“ katalogus, kuriuose buvo nenaudojamo eksperimentinio kodo.

Pradėkite naudoti „Picolibc“

Norėdami pradėti naudoti „Picolibc“, turėtumėte žinoti, kad „Picolibc“ naudoja „mezon“ sukūrimo sistemą, kad sukompiliuotų įvairias „Linux“ kompiuterio aparatinės įrangos platformas, naudodamas GCC. Štai kodėl jie turi turėti „meson“ kaip kūrimo aplinkos dalį, be to, kad turi įdiegtus „Python 3“ ir „Ninja“. Norėdami tai padaryti, galite kreiptis į jo vadovą Šioje nuorodoje. 

Galiausiai, norėdami gauti „Picolibc“ kodą, galite tai padaryti naudodami šią nuorodą, kurioje galite rasti reikalingus dokumentus. 

Arba tuo pačiu būdu jie gali konsultuotis šį vadovą radau internete ir turi išsamią informaciją.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.