PicoLibc C библиотека за вградени системи с ограничени ресурси

Вграден-C-

Кийт Пакард е активен разработчик на Debian и също е X.Org ръководител на проекта и също създател на много X разширения, включително XRender, XComposite и XRandR. PicoLibc е друга негова творба и това е C библиотека който е разработен за използване във вградени устройства с ограничени ресурси (т.е. те имат малко фиксирано място за съхранение и RAM). По време на разработката част от кода е заимствана от библиотеката newlib на проекта Cygwin и AVR Libc, разработена за микроконтролерите Atmel AVR.

Кийт Пакард стартира разработката, след като не можа да намери достойна версия на Libc, която може да се използва на вградени устройства с ниска RAM. Проектът се развива от миналата година. На първия етап, проектът беше вариант на newlib, в който функциите stdio бяха заменени от компактната версия на avrlibc (stdio в newlib не беше адаптиран към голямото потребление на ресурси).

Тъй като текущите дейности на Китай са свързани с текущата работа по RISC-V архитектурата и разработването на инструменти за вградени устройства, напоследък провери състоянието на реализациите на libc y заключи от какво, с малко ощипване, комбинацията от newlib и avrlibc може да бъде добро универсално решение. Първоначално проектът е разработен под името "newlib-nano", но за да се избегне объркване с библиотеката Newlib, той е преименуван на PicoLibc.

Относно PicoLibc

В сегашния си вид, Picolibc вече е свършил работа за премахване на целия код, който не е предоставен под лиценза BSD (Този код не беше използван в сглобката за вградени устройства), което значително опрости ситуацията с лиценза за проект.

Локалната реализация на нишката е преместена от механизма 'struct _reent' в TLS (локално съхранение на нишки). Компактната версия на stdio е активирана по подразбиране, взета от кода на библиотеката avrlibc (специфичните вложки за асемблер на ATmel се пренаписват в C).

Инструментите на Мезон се използват за компилация, Какво ви позволява да не прикачвате скриптове newlib и да опростявате прехвърлянето на промени от newlib. Добавена е опростена версия на кода за инициализация (crt0), прикрепена към изпълнимия файл и изпълнена преди прехвърляне на контрола към функцията main ().

Изходният код на PicoLibc се разпространява под BSD лиценз и Библиотеката поддържа ARM (32-битова), i386, RISC-V, x86_64 и PowerPC архитектура.

Относно новата версия на PicoLibc 1.1

Наскоро представих изданието на новата версия на PicoLibc 1.1, в която добавена е помощна библиотека в подкрепа на полухостинг технология, A, който позволява на кода, изпълняван в дебъгер или емулаторна среда, да използва механизми за въвеждане / извеждане от хост системата.

За системи, които поддържат отваряне, затваряне, четене и запис на системни повиквания, tinystdio добавя стандартизирани POSIX I / O интерфейси, включително функции fopen и fdopen, както и свързване на stdin / stdout / stderr към дескриптори на файлове, дефинирани от POSIX.

  • Последните промени са пренесени от базата на newlib код. Включително допълнителни мънички за libm за fenv.h, които могат да се използват в системи без изчислителна поддръжка.
  • Добавен е пример за компилация на приложението Hello World с picolibc за ARM и RISC-V системи, в допълнение към премахването на директориите newlib, libm и mathfp, които съдържат неизползван експериментален код.

Започнете да използвате Picolibc

За да започнете с Picolibc, трябва да знаете, че Picolibc използва системата за изграждане на meson, за да компилира за различни хардуерни платформи на Linux хост, използвайки GCC. Ето защо те трябва да имат мезон като част от средата за разработка, освен да имат инсталирани Python 3 и Ninja. За това можете да се консултирате с ръководството за него В следващия линк. 

И накрая, за да получите кода на Picolibc, можете да го направите от следната връзка, където можете да намерите необходимата документация. 

Или по същия начин, по който могат да се консултират следното ръководство, което намерих в мрежата и има подробна информация.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.