PicoLibc - библиотека C для встроенных систем с ограниченными ресурсами

Встроенный-C-

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

Кейт Паккард начал разработку после того, как не смог найти достойную версию Libc, которую можно было бы использовать на встроенных устройствах с низким объемом оперативной памяти. Проект развивается с прошлого года. На первом этапе проект был вариантом новой библиотеки, в котором функции 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, который позволяет коду, запущенному в среде отладчика или эмулятора, использовать механизмы ввода / вывода из хост-системы.

Для систем, поддерживающих системные вызовы open, close, read и write, tinystdio добавляет стандартизированные интерфейсы ввода / вывода POSIX, включая функции fopen и fdopen, а также привязку stdin / stdout / stderr к файловым дескрипторам, определенным в POSIX.

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

Начать использовать Picolibc

Чтобы начать использовать Picolibc, вы должны знать, что Picolibc использует систему сборки мезонов для компиляции для различных аппаратных платформ на хосте Linux с использованием GCC. Вот почему у них должен быть мезон как часть среды разработки, помимо установленных Python 3 и Ninja. Для этого вы можете обратиться к руководству по нему. По следующей ссылке. 

Наконец, чтобы получить код Picolibc, вы можете сделать это по следующей ссылке, где вы можете найти необходимая документация. 

Или таким же образом они могут проконсультироваться следующее руководство, которое я нашел в сети и имеет подробную информацию.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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