PicoLibc, biblioteka C dla systemów wbudowanych, osiąga wersję 1.8.6

Osadzony-C-

Picolibc to kompletna implementacja biblioteki C napisana dla systemów wbudowanych

Nowa wersja PicoLibc 1.8.6 został już wydany w tej nowej wersji zaimplementowano różne ulepszenia, takie jak te optymalizacja, czyszczenie kodupoprawiono także obsługę nowych platform, poprawiono błędy i nie tylko.

Ci, którzy nie wiedzą o PicoLibc, powinni wiedzieć, że tak jest biblioteka C zaprojektowana specjalnie do użytku w urządzeniach wbudowanych o ograniczonych zasobachtakich jak mikrokontrolery i systemy wbudowane. PicoLibc przeszedł znaczące ulepszenia i optymalizacje w trakcie swojego rozwoju.

Cały kod nieobjęty licencją BSD został usunięty, co upraszcza sytuację dotyczącą licencjonowania projektów. Dodatkowo implementacja thread-local została przeniesiona do mechanizmu TLS (thread-local Storage), a domyślnie włączona jest kompaktowa wersja stdio, oparta na kodzie avrlibc.

Główne nowe funkcje PicoLibc 1.8.6

W nowej wersji PicoLibc 1.8.6 zaprezentowano jedną z najważniejszych zmian, przeniesienie zmian z Newlib 4.4.0 Z którym rozszerzona obsługa danych typu „long double” na architekturach takich jak i386, RISC-V, Aarch64 i x86_64, a także możliwość użycia masek podczas wstawiania katalogów

Ponadto w PicoLibc 1.8.6 Rozszerzono obsługę różnych architektur, odkąd został dodany obsługa procesorów Xtensa, także dla 32-bitowych platform SPARC oraz architektura SuperH RISC, rozszerzająca zasięg PicoLibc na szerszą gamę urządzeń i systemów wbudowanych.

Kolejną atrakcją tej nowej wersji jest optymalizacja rozmiaru i wydajności Wprowadzono opcję „-Dfast-bufio=true”, aby poprawić wydajność odczytu i zapisu W przypadku korzystania z bufio, a także sterowników printf, zostały one rozdzielone na osobne pliki, co pomaga zmniejszyć rozmiar podczas łączenia.

Nowa wersja PicoLibc 1.8.6 zawiera także optymalizację funkcji i czyszczenie kodu, ponieważ wydajność została zoptymalizowana poprzez wdrożenie funkcji wbudowanych (gnu_inline) zamiast normalnych dla większości funkcji fenv. Poprawiono publiczne funkcje wbudowane, aby udostępnić wspólny mechanizm używania semantyki gnu_inline, zapewniając, że w publicznych nagłówkach API nie ma żadnych statycznych deklaracji wbudowanych, które powinny być symbolami łączy zewnętrznych.

Ponadto Stworzono alternatywną implementację ctype poprawiającą wydajność nie używając tablicy ctype i wykonując bezpośrednie porównania wartości (działa tylko wtedy, gdy picolibc jest ograniczony do ASCII) i ma wbudowaną obsługę rozszerzeń RISC-V Zfinx/Zdinx.

z inne wyróżniające się zmiany:

  • Ulepszenia debugowania i śledzenia stosu: Ulepszono śledzenie stosu podczas debugowania kodu wyjątku w systemach RISC-V, dzięki czemu łatwiej jest identyfikować i rozwiązywać problemy w tego typu systemach.
  • Dodano symbole „__eh_*” do picolibc.ld dla LLVM libunwind.
  • Naprawiono kilka błędów fmemopen
  • Zapewniono obsługę platform docelowych z nietypowymi typami zmiennoprzecinkowymi, które są teraz odzwierciedlone w typach 32-, 64-, 80- i 128-bitowych w kodzie picolibc.
  • Dodano obsługę SuperH, w tym infrastrukturę testową.
  • Ulepszone śledzenie stosu debugera w kodzie wyjątku risc-v.
  • Naprawiono użycie zmiennych FORMAT_ przez cmake
  • Usuń jawną definicję _POSIX_C_SOURCE w zephyr/zephr.cmake.

Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami w poniższy link.

Zacznij używać Picolibc

Aby rozpocząć korzystanie z Picolibc, powinieneś wiedzieć, że korzysta on z systemu kompilacji Meson do kompilacji dla różnych platform sprzętowych na hoście Linux przy użyciu GCC. Dlatego muszą mieć Mesona jako część środowiska programistycznego, oprócz zainstalowanego Pythona 3 i Ninja. W tym celu możesz zapoznać się z 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.