PicoLibc isang C library para sa mga naka-embed na system na may limitadong mapagkukunan

Naka-embed na-C-

Si Keith Packard ay isang aktibong developer ng Debian at ito rin ang X.Org pinuno ng proyekto at tagalikha din ng maraming mga X extension, kabilang ang XRender, XComposite, at XRandR. Ang PicoLibc ay isa pa sa kanyang mga gawa at ito ay isang C library na binuo para magamit sa mga naka-embed na aparato na may limitadong mapagkukunan (iyon ay, mayroon silang maliit na nakapirming espasyo sa imbakan at RAM). Sa panahon ng pag-unlad, ang ilan sa mga code ay hiniram mula sa library ng newlib na proyekto ng Cygwin at AVR Libc, na binuo para sa mga microcontroller ng Atmel AVR.

Sinimulan ni Keith Packard ang pag-unlad matapos niyang hindi makahanap ng disenteng bersyon ng Libc, na maaaring magamit sa mga low-RAM na naka-embed na aparato. Ang proyekto ay umuunlad mula pa noong nakaraang taon. Sa unang yugto, ang proyekto ay isang variant ng newlib, kung saan ang mga pag-andar ng stdio ay pinalitan ng compact na bersyon ng avrlibc (ang stdio sa newlib ay hindi iniakma sa mabigat na pagkonsumo ng mga mapagkukunan).

Dahil ang kasalukuyang gawain ng China ay nauugnay sa patuloy na gawain sa arkitektura ng RISC-V at pagpapaunlad ng mga tool para sa mga naka-embed na aparato, kamakailan sinuri ang katayuan ng pagpapatupad ng libc y natapos ng alin, na may isang maliit na pag-aayos, ang kumbinasyon ng newlib at avrlibc ay maaaring maging isang mahusay na solusyon sa buong mundo. Una, ang proyekto ay binuo sa ilalim ng pangalang "newlib-nano", ngunit upang maiwasan ang pagkalito sa library ng Newlib, pinalitan ito ng pangalan sa PicoLibc.

Tungkol sa PicoLibc

Sa kasalukuyang form, Nagawa na ng Picolibc ang trabaho upang alisin ang lahat ng code na hindi ibinigay sa ilalim ng lisensya ng BSD (Ang code na ito ay hindi ginamit sa pagpupulong para sa mga naka-embed na aparato), na lubos na pinasimple ang sitwasyon sa lisensya ng proyekto.

Ang lokal na pagpapatupad ng Thread ay inilipat mula sa 'struct _reent' sa mekanismo ng TLS (thread local storage). Ang compact na bersyon ng stdio ay pinagana sa pamamagitan ng default, kinuha mula sa avrlibc library code (ang pagsingit ng tukoy na tukoy na ATmel ay muling isinulat sa C).

Ang mga tool ng Ginagamit ang Meson para sa pagtitipon, Ano Pinapayagan kang hindi maglakip ng mga newlib script at gawing simple ang paglilipat ng mga pagbabago mula sa newlib. Ang isang pinasimple na bersyon ng code ng pagsisimula (crt0) ay naidagdag, na naka-attach sa maipapatupad na file, at naisakatuparan bago ilipat ang kontrol sa pangunahing () pagpapaandar.

Ang source code ng PicoLibc ay ipinamamahagi sa ilalim ng isang lisensya ng BSD at Sinusuportahan ng library ang ARM (32-bit), i386, RISC-V, x86_64, at mga arkitektura ng PowerPC.

Tungkol sa bagong bersyon ng PicoLibc 1.1

Ipinakita ko kamakailan ang paglabas ng bagong bersyon ng PicoLibc 1.1, kung saan isang library ng helper ay naidagdag upang suportahan ang teknolohiya ng semi-hosting, Isang nagpapahintulot sa code na tumatakbo sa isang debugger o emulator na kapaligiran upang magamit ang mga mekanismo ng pag-input / output mula sa host system.

Para sa mga system na sumusuporta sa bukas, isara, basahin, at isulat ang mga tawag sa system, tinystdio nagdadagdag ng standardisadong mga interface ng POSIX I / O, kabilang ang mga pagpapaandar ng fopen at tautopen, pati na rin ang pagbubuklod ng stdin / stdout / stderr sa mga tagapaglaraw ng file na tinukoy ng POSIX.

  • Kamakailang mga pagbabago ay natupad mula sa base ng newlib code. Kasama ang karagdagang libm stubs para sa fenv.h, na maaaring magamit sa mga system nang walang suporta sa pagkalkula.
  • Idinagdag ang halimbawa ng pagsasama-sama ng application ng Hello World na may picolibc para sa mga system ng ARM at RISC-V, bilang karagdagan sa pag-aalis ng mga direktoryo ng newlib, libm, at mathfp na naglalaman ng hindi nagamit na pang-eksperimentong code.

Simulang gamitin ang Picolibc

Upang makapagsimula sa Picolibc, dapat mong malaman na ang Picolibc ay gumagamit ng meson build system upang mag-ipon para sa iba't ibang mga platform ng hardware sa isang host ng Linux gamit ang GCC. Iyon ang dahilan kung bakit dapat silang magkaroon ng meson bilang bahagi ng kapaligiran sa pag-unlad, bilang karagdagan sa pagkakaroon ng naka-install na Python 3 at Ninja. Para sa mga ito maaari kang kumunsulta sa gabay nito Sa sumusunod na link. 

Panghuli, upang makuha ang Picolibc code, magagawa mo ito mula sa sumusunod na link, kung saan mo mahahanap ang kinakailangang dokumentasyon. 

O sa parehong paraan maaari silang kumonsulta ang sumusunod na gabay na nakita ko sa net at may detalyadong impormasyon.


Ang nilalaman ng artikulo ay sumusunod sa aming mga prinsipyo ng etika ng editoryal. Upang mag-ulat ng isang pag-click sa error dito.

Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.