PicoLibc C könyvtár korlátozott erőforrású beágyazott rendszerek számára

Beágyazott-C-

Keith Packard aktív Debian fejlesztő és ez is az X.Org projektvezető és alkotója is sok X kiterjesztés közül, beleértve az XRender-t, az XComposite-ot és az XRandR-t. PicoLibc egy másik műve és ez egy C könyvtár amelyet beágyazott eszközökben fejlesztettek ki korlátozott erőforrásokkal (vagyis kevés a fix tárhely és a RAM). A fejlesztés során a kód egy részét a Cygwin és az AVR Libc projekt újlib könyvtárából kölcsönözték, amelyet az Atmel AVR mikrovezérlők számára fejlesztettek ki.

Keith Packard azután kezdte meg a fejlesztést, hogy nem talált egy megfelelő verziót a Libc-től, amelyet alacsony memóriájú beágyazott eszközökön lehetne használni. A projekt tavaly óta fejlődik. Az első szakaszban a projekt newlib változat volt, amelyben az stdio funkciókat az avrlibc kompakt változatával helyettesítették (az newlibben az stdio nem volt alkalmazkodva a nagy erőforrás-felhasználáshoz).

Mivel Kína jelenlegi tevékenységei a közelmúltban a RISC-V architektúrájával és a beágyazott eszközökhöz szükséges eszközök fejlesztésével kapcsolatos folyamatban vannak ellenőrizte a libc implementációk állapotát y következtetett miből, kis csípéssel a newlib és az avrlibc kombinációja jó univerzális megoldás lehet. Kezdetben a projektet "newlib-nano" néven fejlesztették ki, de a Newlib könyvtárral való összetévesztés elkerülése érdekében átnevezték PicoLibc-re.

A PicoLibc-ről

Jelenlegi formájában A Picolibc már megtette az összes olyan kód eltávolítását, amely nem szerepel a BSD licencben (Ezt a kódot nem használták a beágyazott eszközök összeállításában), ami jelentősen leegyszerűsítette a projektlicenc helyzetét.

A szál helyi megvalósítása átkerült a 'struct _reent' helyett a TLS (szál helyi tároló) mechanizmusba. Az stdio kompakt változata alapértelmezés szerint engedélyezve van, az avrlibc könyvtár kódjából származik (az ATmel-specifikus összeállító betéteket C-ben írják át).

A A Mesont az összeállításhoz használják, mit lehetővé teszi, hogy ne csatoljon newlib parancsfájlokat, és egyszerűbbé tegye a változtatások átvitelét az newlibből. Az inicializáló kód (crt0) egyszerűsített változata hozzáadódott, csatolva a futtatható fájlhoz, és végrehajtásra került, mielőtt a vezérlőt a main () függvénybe helyezné át.

A PicoLibc forráskódját BSD licenc és a könyvtár támogatja az ARM (32 bites), az i386, a RISC-V, az x86_64 és a PowerPC architektúrákat.

A PicoLibc 1.1 új verziójáról

Nemrég mutattam be a PicoLibc 1.1 új verziójának kiadását, amelyben egy segítő könyvtár került hozzá a félig hosting technológia támogatásához, A, amely lehetővé teszi a hibakereső vagy emulátor környezetben futó kód számára, hogy a gazdagép bemeneti / kimeneti mechanizmusait használja.

A rendszerhívások nyitását, bezárását, olvasását és írását támogató rendszerek esetében a tinystdio szabványosított POSIX I / O interfészeket ad hozzá, beleértve a fopen és az fdopen függvényeket, valamint az stdin / stdout / stderr kötését a POSIX által definiált fájlleírókhoz.

  • A legújabb változtatásokat átvitték az newlib kódbázisból. Beleértve a fenv.h további libm csonkjait, amelyek számítási támogatás nélkül használhatók a rendszereken.
  • Hozzáadta a Hello World alkalmazás-összeállítási példát picolibc-sel ARM és RISC-V rendszerekhez, valamint eltávolította a fel nem használt kísérleti kódot tartalmazó newlib, libm és mathfp könyvtárakat.

Kezdje el használni a Picolibc-et

A Picolibc használatának megkezdése érdekében tudnia kell, hogy a Picolibc a mezon build rendszert használja a Linux hardverének különböző hardverplatformjainak fordításához a GCC segítségével. Ezért a fejlesztőkörnyezet részeként a mesonnak rendelkeznie kell a Python 3 és a Ninja telepítésén kívül. Ehhez olvassa el az útmutatót A következő linken. 

Végül a Picolibc kód megszerzéséhez megteheti a következő linken, ahol megtalálhatja a szükséges dokumentációt. 

Vagy ugyanúgy konzultálhatnak a következő útmutatót találtam a neten és részletes információval rendelkezik.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.