Den standard C-biblioteket PicoLibc 1.1 Àr tillgÀngligt.

Keith Packard, aktiv utvecklare av Debian, projektledare för X.Org och skapare av mÄnga X-tillÀgg, inklusive XRender, XComposite och XRandR, Är utgivning av det nya standard C-biblioteket PicoLibc 1.1, som utvecklas för anvÀndning pÄ inbÀddade enheter med begrÀnsat permanent lagringsutrymme och RAM. Vid utvecklingen har en del av koden lÄnat frÄn biblioteket newlib frÄn Cygwin-projektet och AVR Libc, som har utvecklats för Atmel AVR-mikrokontrollrar. Koden för PicoLibc sprids Àr licensierad under BSD. Biblioteket stöder sammanstÀllning för ARM-arkitekturer (32-bit), i386, RISC-V, x86_64 och PowerPC.

Keith Packard började utvecklingen efter att han inte kunde hitta ett tillfredsstÀllande alternativ till Libc som kunde anvÀndas pÄ inbÀddade enheter med lÄg RAM. Projektet har utvecklats sedan förra Äret. I det första skedet var projektet en variant av newlib, dÀr stdio-funktionerna ersattes med en kompakt variant frÄn avrlibc (stdio i newlib var inte tillfredsstÀllande pÄ grund av hög resursanvÀndning). Eftersom Keiths nuvarande arbete Àr kopplat till kontinuerlig utveckling för RISC-V-arkitekturen och verktygen för inbÀddade enheter, har han nyligen granskat tillstÄndet för libc-implementationer och kommit fram till att med smÄ justeringar kan kombinationen av newlib och avrlibc bli en bra universell lösning. Projektet utvecklades ursprungligen under namnet "newlib-nano", men för att undvika förvirring med Newlib-biblioteket döptes det om till PicoLibc.

I sin nuvarande form har PicoLibc genomfört arbete för att ta bort all kod som inte levereras under BSD-licensen (denna kod anvÀndes inte vid sammanstÀllning för inbÀddade enheter), vilket har förenklat situationen med projektets licens avsevÀrt. Implementeringen av lokala trÄdar har övergÄtt frÄn 'struct _reent' till en TLS-mekanism (thread-local storage). Den kompakta versionen av stdio, som lÄnas frÄn avrlibc, Àr som standard aktiverad (specifika assemblerinsatser för ATmel har skrivits om i C). För sammanstÀllning anvÀnds verktyget Meson, vilket har gjort det möjligt att inte vara bunden till newlib:s byggscripts och förenkla överföringen av förÀndringar frÄn newlib. En förenklad version av initieringskoden (crt0) har lagts till, som kopplas till körbar fil och körs innan kontrollen överförs till main()-funktionen.

I versionen PicoLibc 1.1:

  • En hjĂ€lpmedelsbibliotek har lagts till för att stödja teknologin "semihosting«, vilket gör att kod som körs i en debugger eller emulator kan anvĂ€nda vĂ€rdsystemets in- och utmatningsmekanismer;
  • För system som stödjer systemanropen open, close, read och write har tinystdio lagt till standardiserade POSIX-inmatnings- och utmatningsgrĂ€nssnitt, inklusive funktionerna fopen och fdopen, samt bindning av stdin/stdout/stderr till specifika POSIX filbeskrivare;
  • Senaste Ă€ndringar har flyttats frĂ„n newlibs kodbas. Bland annat har stubbar lagts till för libm fenv.h, vilket kan anvĂ€ndas pĂ„ system utan stöd för flyttalsberĂ€kningar;
  • Ett exempel pĂ„ byggnation av en "Hello world"-applikation med picolibc för ARM- och RISC-V-system har lagts till;
  • Katalogerna newlib, libm och mathfp, som innehöll oanvĂ€nd experimentell kod, har tagits bort.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster