PicoLibc C-kirjasto sulautetuille järjestelmille, joilla on rajoitetut resurssit

Upotettu-C-

Keith Packard on aktiivinen Debian-kehittäjä ja se on myös X.Org-projektin johtaja ja myös luoja monista X-laajennuksista, mukaan lukien XRender, XComposite ja XRandR. PicoLibc on toinen hänen teoksistaan ja tämä on C-kirjasto joka on kehitetty käytettäväksi sulautetuissa laitteissa rajoitetuilla resursseilla (eli niillä on vähän kiinteää tallennustilaa ja RAM-muistia). Kehityksen aikana osa koodista on lainattu Cygwin and AVR Libc -projektin newlib-kirjastosta, joka on kehitetty Atmel AVR -mikro-ohjaimille.

Keith Packard aloitti kehityksen, kun hän ei löytänyt kunnollista versiota Libc: stä, jota voitiin käyttää sulautetuissa laitteissa. Hanketta on kehitetty viime vuodesta. Ensimmäisessä vaiheessa projekti oli newlib-muunnos, jossa stdio-toiminnot korvattiin kompaktilla avrlibc-versiolla (stdio in newlib ei sovitettu voimakkaaseen resurssien kulutukseen).

Koska Kiinan nykyinen toiminta liittyy viimeaikaiseen RISC-V-arkkitehtuuriin ja sulautettujen laitteiden työkalujen kehittämiseen tarkisti libc-toteutusten tilan y päätökseen mistä, pienellä säätämisellä newlibin ja avrlibc: n yhdistelmä voi olla hyvä yleinen ratkaisu. Alun perin projekti kehitettiin nimellä "newlib-nano", mutta sekaannusten välttämiseksi Newlib-kirjastoon se nimettiin uudelleen PicoLibc-nimeksi.

Tietoja PicoLibcistä

Nykyisessä muodossaan Picolibc on jo tehnyt töitä poistaakseen kaikki koodit, joita ei toimiteta BSD-lisenssillä (Tätä koodia ei käytetty upotettujen laitteiden kokoonpanossa), mikä yksinkertaisti huomattavasti projektilisenssin tilannetta.

Lankan paikallinen toteutus on siirretty "struct _reent" -muodosta TLS (thread local storage) -mekanismiin. Stdion pienikokoinen versio on oletusarvoisesti käytössä, otettuna avrlibc-kirjastokoodista (ATmel-spesifiset kokoonpanoyhdistelmät kirjoitetaan uudestaan ​​C: hen).

Työkalut Mesonia käytetään kokoamiseen, mitä sallii sinun liittämättä newlib-komentosarjoja ja yksinkertaistaa muutosten siirtämistä newlibistä. Yksinkertaistettu versio alustuskoodista (crt0) on lisätty, liitetty suoritettavaan tiedostoon ja suoritettu ennen ohjauksen siirtämistä pääfunktiolle ().

PicoLibc-lähdekoodia jaetaan BSD-lisenssillä ja kirjasto tukee ARM (32-bittinen), i386, RISC-V, x86_64 ja PowerPC -arkkitehtuureja.

Tietoja PicoLibc 1.1: n uudesta versiosta

Esitin äskettäin PicoLibc 1.1: n uuden version julkaisun, jossa apukirjasto on lisätty tukemaan puolipalvelintekniikkaa, A, joka sallii virheenkorjaus- tai emulaattoriympäristössä käytetyn koodin käyttää isäntäjärjestelmän syöttö- / lähtömekanismeja.

Järjestelmille, jotka tukevat järjestelmäkutsujen avaamista, sulkemista, lukemista ja kirjoittamista, tinystdio lisää standardoidut POSIX I / O -rajapinnat, mukaan lukien fopen- ja fdopen-toiminnot sekä stdin / stdout / stderr-sidonta POSIX-määriteltyihin tiedostokuvaajiin.

  • Viimeaikaiset muutokset on siirretty newlib-koodikannasta. Sisältää ylimääräisiä libm-tukia fenv.h: lle, joita voidaan käyttää järjestelmissä ilman laskentatukea.
  • Lisättiin Hello World -sovelluskokoelmaesimerkki picolibc-sovelluksella ARM- ja RISC-V-järjestelmille sen lisäksi, että poistettiin käyttämättömää kokeellista koodia sisältävät hakemistot newlib, libm ja mathfp.

Aloita Picolibc-valmisteen käyttö

Picolibc-sovelluksen käytön aloittamiseksi sinun on tiedettävä, että Picolibc käyttää meson-rakennusjärjestelmää kääntäessään eri laitteistoalustoja Linux-isännässä GCC: n avulla. Siksi heillä on oltava meson osana kehitysympäristöä Python 3: n ja Ninjan asentamisen lisäksi. Tätä varten voit tutustua sen oppaaseen Seuraavassa linkissä. 

Lopuksi, saadaksesi Picolibc-koodin, voit tehdä sen seuraavasta linkistä, josta löydät tarvittavat asiakirjat. 

Tai samalla tavalla kuin he voivat kuulla seuraavan oppaan, jonka löysin netistä ja sillä on yksityiskohtaisia ​​tietoja.


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.