В новой версии PicoLibc 1.8.6 уже выпущен. и в этой новой версии были реализованы различные улучшения, такие как оптимизация, очистка кода, также была улучшена поддержка новых платформ, исправлены ошибки и многое другое.
Для тех, кто не знает о PicoLibc, следует знать, что это библиотека C, разработанная специально для использования во встроенных устройствах с ограниченными ресурсамитакие как микроконтроллеры и встроенные системы. PicoLibc претерпел значительные улучшения и оптимизации на протяжении всего своего развития.
Весь код, не лицензированный под BSD, был удален, что упрощает ситуацию с лицензированием проектов. Кроме того, реализация локального потока была перенесена в механизм TLS (локальное хранилище потока), а компактная версия stdio включена по умолчанию на основе кода avrlibc.
Основные новые возможности PicoLibc 1.8.6
В этой новой версии PicoLibc 1.8.6 представлено одно из наиболее важных изменений: перенос изменений из Newlib 4.4.0 С которым расширенная поддержка данных типа «long double» на таких архитектурах, как i386, RISC-V, Aarch64 и x86_64, а также возможность использования масок при вставке каталогов
Кроме того, в PicoLibc 1.8.6 Расширена поддержка различных архитектур, с тех пор как оно было добавлено поддержка процессоров Xtensa, а также 32-битных платформ SPARC и архитектура SuperH RISC, расширяющая возможности PicoLibc для более широкого спектра встроенных устройств и систем.
Еще одной особенностью этой новой версии является оптимизация размера и производительности, поскольку Опция «-Dfast-bufio=true» была введена для повышения эффективности чтения и записи. При использовании bufio, а также драйверы printf были разделены на отдельные файлы, что помогает уменьшить размер при связывании.
В новой версии PicoLibc 1.8.6 также включает оптимизацию функций и очистку кода. поскольку производительность была оптимизирована за счет реализации встроенных функций (gnu_inline) вместо обычных для большинства функций fenv. Очищены общедоступные встроенные функции, чтобы использовать общий механизм использования семантики gnu_inline, гарантируя отсутствие статических встроенных объявлений в общедоступных заголовках API, которые должны быть символами внешних ссылок.
Кроме того, Была создана альтернативная реализация ctype, повышающая эффективность. не используя массив ctype и выполняя прямое сравнение значений (работает только тогда, когда picolibc ограничен ASCII), а также включает поддержку расширений RISC-V Zfinx/Zdinx.
Из другие выделяющиеся изменения:
- Улучшения в отладке и трассировке стека. Трассировка стека была улучшена при отладке кода исключений в системах RISC-V, что упрощает выявление и устранение проблем в системах такого типа.
- В picolibc.ld добавлены символы «__eh_*» для LLVM libunwind.
- Исправлено множество ошибок fmemopen.
- Была обеспечена поддержка целевых платформ с нетипичными типами с плавающей запятой, которые теперь отражены в 32-, 64-, 80- и 128-битных типах в коде picolibc.
- Добавлена поддержка SuperH, включая инфраструктуру тестирования.
- Улучшена трассировка стека отладчика в коде исключений risc-v.
- Исправлено использование cmake переменных FORMAT_.
- Удалите явное определение _POSIX_C_SOURCE в zephyr/zephr.cmake.
Наконец, если вы хотите узнать об этом больше, вы можете ознакомиться с подробностями в по следующей ссылке.
Начать использовать Picolibc
Чтобы начать использовать Picolibc, вы должны знать, что он использует систему сборки Meson для компиляции для различных аппаратных платформ на хосте Linux с использованием GCC. Вот почему они должны иметь Meson как часть среды разработки в дополнение к установленным Python 3 и Ninja. Для этого вы можете обратиться к руководству По следующей ссылке.
Наконец, чтобы получить код Picolibc, вы можете сделать это по следующей ссылке, где вы можете найти необходимая документация.
Или таким же образом они могут проконсультироваться следующее руководство, которое я нашел в сети и имеет подробную информацию.