PicoLibc 1.5

Опубликовано August@Karro - вт, 01/12/2021 - 09:08

Теги

PicoLibc, развиваемая для применения на встраиваемых устройствах с ограниченным размером постоянного хранилища и оперативной памяти.

При разработке часть кода заимствована из библиотеки newlib от проекта Сygwin и AVR Libc, развивавшейся для микроконтроллеров Atmel AVR.

Изначально проект развивался под именем "newlib-nano" и был нацелен на переработку некоторых ресурсоёмких функций Newlib, которые было проблематично использовать на встраиваемых устройствах с небольшим ОЗУ. Например, в PicoLibc функции stdio заменены на компактный вариант из библиотеки avrlibc. Код также вычищен от неиспользуемых в сборке для встраиваемых устройств компонентов, поставляемых не под лицензией BSD.

Активирован по умолчанию компактный вариант stdio, заимствованный из кода библиотеки avrlibc (специфичные для ATmel ассемблерные вставки переписаны на Си). Для сборки задействован инструментарий Meson, что позволило не привязываться к сборочным сценариям newlib и упростить перенос изменений из newlib. Добавлен упрощённый вариант кода инициализации (crt0), прикрепляемого к исполняемому файлу и выполняемого до передачи управления функции main().

В новом выпуске:

  • Повышена совместимость с компиляторами C++.
  • Добавлен spec-файл для GCC и сценарий для связывания приложений на языке С++ с использованием компилятора g++.
  • Решены проблемы со сборкой при использовании Clang.
  • Исправлены ошибки в реализации Nano malloc и в libm.
  • Перенесены изменения из кода newlib 4.1.0.
  • Добавлены тесты для всех функций semihost 2.0.
  • Улучшена поддержка архитектуры RISC-V.
  • Решены проблемы при замене универсального кода на реализации, специфичные для определённых архитектур.

Код PicoLibc распространяется под лицензией BSD.

 

Последние материалы