Biblioteka PicoLibc a C dla systemów wbudowanych z ograniczonymi zasobami

Osadzony-C-

Keith Packard jest aktywnym deweloperem Debiana i jest to również Lider projektu X.Org oraz także twórca wielu rozszerzeń X., w tym XRender, XComposite i XRandR. PicoLibc to kolejna z jego prac a to jest biblioteka C. który został opracowany do użytku w urządzeniach wbudowanych z ograniczonymi zasobami (to znaczy mają mało stałej przestrzeni dyskowej i pamięci RAM). Podczas opracowywania część kodu została wypożyczona z biblioteki newlib projektu Cygwin i AVR Libc, która została opracowana dla mikrokontrolerów Atmel AVR.

Keith Packard rozpoczął rozwój po tym, jak nie mógł znaleźć przyzwoitej wersji Libc, która mogłaby być używana na urządzeniach z wbudowaną małą ilością pamięci RAM. Projekt rozwija się od zeszłego roku. W pierwszym etapie Projekt był wariantem Newlib, w którym funkcje stdio zostały zastąpione kompaktową wersją avrlibc (stdio w newlib nie było przystosowane do dużego zużycia zasobów).

Ponieważ obecne działania Chin są związane z trwającymi pracami nad architekturą RISC-V i rozwojem narzędzi dla urządzeń wbudowanych, ostatnio sprawdził stan implementacji libc y zakończona czego, po drobnych poprawkach połączenie newlib i avrlibc może być dobrym uniwersalnym rozwiązaniem. Początkowo projekt był rozwijany pod nazwą „newlib-nano”, ale aby uniknąć pomyłki z biblioteką Newlib, zmieniono jego nazwę na PicoLibc.

O PicoLibc

W obecnej formie Picolibc wykonał już pracę, aby usunąć cały kod, który nie jest dostarczany na licencji BSD (Ten kod nie został użyty w asemblerze dla urządzeń embedded), co znacznie uprościło sytuację z licencją na projekt.

Lokalna implementacja wątku została przeniesiona z mechanizmu „struct _reent” do mechanizmu TLS (Thread Local Storage). Kompaktowa wersja stdio jest domyślnie włączona, pobrana z kodu biblioteki avrlibc (wstawki asemblera specyficzne dla ATmel są przepisywane w C).

Narzędzia Do kompilacji używane są mezony, co pozwala nie dołączać skryptów newlib i upraszcza przenoszenie zmian z newlib. Uproszczona wersja kodu inicjalizacyjnego (crt0) została dodana, dołączona do pliku wykonywalnego i wykonana przed przekazaniem kontroli do funkcji main ().

Kod źródłowy PicoLibc jest rozpowszechniany na licencji BSD i Biblioteka obsługuje architektury ARM (32-bitowe), i386, RISC-V, x86_64 i PowerPC.

Informacje o nowej wersji PicoLibc 1.1

Niedawno przedstawiłem wydanie nowej wersji PicoLibc 1.1, w której dodano bibliotekę pomocniczą obsługującą technologię pół-hostingu, A, która umożliwia kodowi działającemu w środowisku debugera lub emulatora na wykorzystanie mechanizmów wejścia / wyjścia z systemu hosta.

W przypadku systemów obsługujących otwieranie, zamykanie, odczytywanie i zapisywanie wywołań systemowych, tinystdio dodaje standardowe interfejsy I / O POSIX, w tym funkcje fopen i fdopen, a także powiązanie stdin / stdout / stderr z deskryptorami plików zdefiniowanymi w POSIX.

  • Ostatnie zmiany zostały przeniesione z bazy kodu newlib. Zawiera dodatkowe kody pośredniczące libm dla fenv.h, których można używać w systemach bez obsługi obliczeń.
  • Dodano przykład kompilacji aplikacji Hello World z picolibc dla systemów ARM i RISC-V, oprócz usunięcia katalogów newlib, libm i mathfp, które zawierały nieużywany kod eksperymentalny.

Zacznij używać Picolibc

Aby rozpocząć pracę z Picolibc, powinieneś wiedzieć, że Picolibc używa systemu kompilacji meson do kompilacji dla różnych platform sprzętowych na hoście Linux przy użyciu GCC. Dlatego muszą mieć mezon jako część środowiska programistycznego, oprócz zainstalowania Pythona 3 i Ninja. W tym celu możesz zapoznać się z jego przewodnikiem W poniższym linku. 

Wreszcie, aby uzyskać kod Picolibc, możesz to zrobić z poniższego linku, gdzie możesz znaleźć niezbędną dokumentację. 

Lub w ten sam sposób, w jaki mogą się skonsultować poniższy przewodnik, który znalazłem w sieci i zawiera szczegółowe informacje.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.