PicoLibc et C-bibliotek for innebygde systemer med begrensede ressurser

Innebygd-C-

Keith Packard er en aktiv Debian-utvikler og det er også X.Org prosjektleder og også skaperen av mange X-utvidelser, inkludert XRender, XComposite og XRandR. PicoLibc er et annet av hans verk og dette er et C-bibliotek som er utviklet for bruk i innebygde enheter med begrensede ressurser (det vil si at de har liten fast lagringsplass og RAM). Under utviklingen ble noe av koden lånt fra Cygwin og AVR Libc-prosjektets newlib-bibliotek, som ble utviklet for Atmel AVR-mikrokontrollere.

Keith Packard startet utviklingen etter at han ikke kunne finne en anstendig versjon av Libc, som kunne brukes på innebygde enheter med lite RAM. Prosjektet har utviklet seg siden i fjor. I den første fasen, prosjektet var en newlib-variant, der stdio-funksjonene ble erstattet av den kompakte versjonen av avrlibc (stdio i newlib var ikke tilpasset det store ressursforbruket).

Siden Kinas nåværende aktiviteter er relatert til pågående arbeid med RISC-V-arkitektur og utvikling av verktøy for innebygde enheter, nylig sjekket status for libc-implementeringer y konkluderte av hva, med en liten justering kan kombinasjonen av newlib og avrlibc være en god universell løsning. Opprinnelig ble prosjektet utviklet under navnet "newlib-nano", men for å unngå forveksling med Newlib-biblioteket ble det omdøpt til PicoLibc.

Om PicoLibc

I sin nåværende form, Picolibc har allerede gjort et arbeid for å fjerne all kode som ikke er gitt under BSD-lisensen (Denne koden ble ikke brukt i forsamlingen for innebygde enheter), noe som i stor grad forenklet situasjonen med prosjektlisensen.

Trådens lokale implementering er flyttet fra 'struct _reent' til TLS (tråd lokal lagring) -mekanisme. Den kompakte versjonen av stdio er aktivert som standard, hentet fra avrlibc-bibliotekkoden (ATmel-spesifikke monteringsinnsatser skrives om i C).

Verktøyene til Meson brukes til kompilering, hva lar deg ikke legge ved newlib-skript og forenkle overføring av endringer fra newlib. En forenklet versjon av initialiseringskoden (crt0) er lagt til, festet til den kjørbare filen og utført før kontrollen overføres til hovedfunksjonen ().

Kildekoden til PicoLibc distribueres under en BSD-lisens og Biblioteket støtter ARM (32-bit), i386, RISC-V, x86_64 og PowerPC-arkitekturer.

Om den nye versjonen av PicoLibc 1.1

Jeg presenterte nylig utgivelsen av den nye versjonen av PicoLibc 1.1, der et hjelperbibliotek er lagt til for å støtte semi-hosting-teknologi, En som gjør at kode som kjører i et feilsøkings- eller emulatormiljø, kan bruke inngangs- / utgangsmekanismer fra vertssystemet.

For systemer som støtter åpne, lukke, lese og skrive systemanrop, tinystdio legger til standardiserte POSIX I / O-grensesnitt, inkludert fopen- og fdopen-funksjonene, samt binding av stdin / stdout / stderr til POSIX-definerte filbeskrivere.

  • Nylige endringer er overført fra newlib-kodebasen. Inkludert ekstra libm-stubber for fenv.h, som kan brukes på systemer uten beregningsstøtte.
  • La til Hello World-applikasjonseksemplet med picolibc for ARM- og RISC-V-systemer, i tillegg til å fjerne newlib-, libm- og mathfp-katalogene som inneholdt ubrukt eksperimentell kode.

Begynn å bruke Picolibc

For å begynne å bruke Picolibc, bør du vite at Picolibc bruker meson build-systemet til å kompilere for forskjellige maskinvareplattformer på en Linux-vert ved bruk av GCC. Derfor må de ha meson som en del av utviklingsmiljøet, i tillegg til at Python 3 og Ninja er installert. For dette kan du se i guiden til den I den følgende lenken. 

Til slutt, for å få tak i Picolibc-koden, kan du gjøre det fra følgende lenke, hvor du finner nødvendig dokumentasjon. 

Eller på samme måte som de kan konsultere følgende guide fant jeg på nettet og har detaljert informasjon.


Innholdet i artikkelen følger våre prinsipper for redaksjonell etikk. Klikk på for å rapportere en feil her.

Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.