Опубликована операционная система реального времени RT-Thread 5.1

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 2583
Зарегистрирован: 20.08.2022

#

Опубликована операционная система реального времени RT-Thread 5.1
Дата публикации:Wed, 24 Apr 2024 12:40:45 +0300




После года разработки доступен выпуск RT-Thread 5.1, операционной системы реального времени (RTOS) для устройств интернета-вещей. Система развивается с 2006 года сообществом китайских разработчиков и в настоящее время портирована для 154 плат, чипов и микроконтроллеров на базе архитектур x86, ARM, MIPS, С-SKY, Xtensa, ARC и RISC-V. Минималистичная сборка RT-Thread (Nano) требует для работы всего 3 КБ Flash и 1.2 КБ ОЗУ. Для IoT-устройств, сильно не ограниченных в ресурсах, предлагается полнофункциональная версия, поддерживающая управление пакетами, конфигураторы, сетевой стек, пакеты с реализацией графического интерфейса, системы голосового управления, СУБД, сетевых сервисов и движков для выполнения скриптов. Код написан на языке Си и распространяется под лицензией Apache 2.0.




Операционную систему образуют три базовых слоя:
  • Ядро, обеспечивающее выполнение задач в режиме реального времени. Ядро предоставляет универсальные базовые примитивы, охватывающие такие области, как управление блокировками и синхронизацией данных, планирование задач, управление потоками, обработка сигналов, очереди сообщений, управление таймером, управление памятью. Специфичные для аппаратного обеспечения особенности реализованы на уровне libcpu и BSP, которые включают необходимые драйверы и код для поддержки CPU.

    Компоненты и сервисы, работающие поверх ядра и предлагающие такие абстракции как виртуальная файловая система, система обработки исключений, хранилище в формате ключ/значение, интерфейс командной строки FinSH, сетевой стек (LwIP) и сетевые фреймворки, библиотеки для поддержки устройств, звуковая подсистема, беспроводной стек, компоненты для поддержки Wi-Fi, LoRa, Bluetooth, 2G/4G. Модульная архитектура позволяет подключать компоненты и сервисы в зависимости от своих задач и имеющихся аппаратных ресурсов.

    Пакеты программ. Программные компоненты общего назначения и библиотеки функций распространяются и устанавливаются в форме пакетов. В настоящее время репозиторий включает более 450 пакетов, предлагающих от графических интерфейсов, мультимедийных приложений и сетевых приложений до систем управления роботами и обработчиков на базе машинного обучения. В пакетах также поставляются движки для организации выполнения программ на языках Lua, JerryScript, MicroPython, PikaScript и Rust (rtt_rust).
Изображение



Особенности платформы:
  • Поддержка архитектур:

    ARM Cortex-M0/M0+/M3/M4/M7/M23/M33
    (поддерживаются микроконтроллеры таких производителей, как ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP).
    ARM Cortex-R4.
    ARM Cortex-A8/A9 (NXP).
    ARM7 (Samsung).
    ARM9 (Allwinner, Xilinx, GOKE).
    ARM11 (Fullhan).
    MIPS32 (Loongson, Ingenic).
    RISC-V RV32E/RV32I[F]/RV64[D] (sifive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head, HPMicro).
    ARC (SYNOPSYS)
    DSP (TI).
    C-Sky.
    x86.
Расширяемая модульная архитектура, позволяющая сформировать окружение, подходящее для систем с ограниченными ресурсами (минимальные требования - 3 КБ Flash и 1.2 КБ ОЗУ).
Поддержка различных стандартных интерфейсов для разработки программ, таких как POSIX, CMSIS, C++ API. Отдельно развивается прослойка RTduino для совместимости с API и библиотеками проекта Arduino.
Возможность расширения через систему пакетов и подключаемых компонентов.
Поддержка разработки приложения для высокопроизводительной обработки информации.

Гибкая система управления питанием, позволяющая автоматически переводить устройство в режим сна и динамически управлять напряжением и частотой в зависимости от нагрузки.
Поддержка аппаратных средств для шифрования и расшифровки, предоставление библиотек с различными криптографическими алгоритмами.
Унифицированный интерфейс для доступа к периферийным устройствам и дополнительному оборудованию.

Виртуальная ФС и наличие драйверов для таких ФС, как FAT, UFFS, NFSv3, ROMFS и RAMFS.
Стек протоколов для TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M и т.п.
Система удалённой доставки и установки обновлений, поддерживающая шифрование и верификацию по цифровой подписи, возобновление прерванной
установки, восстановление после сбоя, откат изменений и т.п.
Система динамически загружаемых модулей ядра, позволяющая отдельно собирать и разрабатывать компоненты ядра, и динамически загружать их при появлении необходимости.

Поддержка различных сторонних пакетов, например, Yaffs2, SQLite, FreeModbus, Canopen и т.п.

Возможность прямой компиляции BSP-пакета (Board Support Package) с компонентами для поддержки определённой аппаратной платформы, и его загрузки на плату.


Наличие эмулятора (BSP qemu-vexpress-a9), позволяющего разрабатывать приложения без использования реальных плат.

Поддержка типовых компиляторов и инструментов для разработки, таких как GCC, MDK Keil и IAR.




Развитие собственной интегрированной среды разработки RT-Thread Studio IDE, позволяющей создавать и отлаживать приложения, загружать их на платы, управлять настройками. Плагины для разработки программ для RT-Thread также доступны для Eclipse и VS Code.



Наличие консольного интерфейса Env, упрощающего создание проектов и настройку окружения.







Среди изменений в новом выпуске:
  • В RT-Smart, гибридной операционной системе на базе RT-Thread,
    отделяющей приложения от ядра, включена по умолчанию поддержка механизмов epoll, eventfd, signalfd, timerfd и select. Реализована подсистема эмулятора терминала. Добавлена поддержка устройств DFZU2EG MPSoC и cv181x-riscv.
    В RTduino, слой для обеспечения совместимости с экосистемой Arduino, добавлена поддержка плат raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark.

    Обновлены сторонние компоненты, такие как ssh, sftp, weston и vim.
    Добавлена поддержка новых плат и чипов, таких как HPMicro RISC-V, STM32 Nucleo, Adafruit Metro M4, Seeed Wio-Terminal, ST (stm32L431_tencentos, stm32h7s7-disco, stm32f407-lckfb-skystar, stm32h503-st-nucleo), Renesas (ek-ra8m1, ek-ra8d1, ra8d1-vision-board),
    AT32 (at32f402-start, at32f405-start),
    HT32 (ht32f52352, ht32f12366, AVR32 at32uc3a0256, at32uc3b0256),
    CVITEK (c906_little, cv18xx_risc-v),
    WCH (yd-ch32v307vct6),
    HC32 (ev_hc32f4a0_lqfp176, ev_hc32f460_lqfp100_v2), (ev_hc32f448_lqfp80, GD32 gd32407v-lckfb), NXP (frdm-mcxn947, frdm-mcxa153).


    Оптимизирована работа планировщиков задач и CPU. Добавлена прослойка для абстрагирования планировщика rt_sched.

    Проведена оптимизация работы на многоядерных системах.

    Предоставлена возможность подключения обработчиков к операциям выделения памяти malloc.

    Для архитектур ARM64 и RV64 реализована поддержка обратной трассировки (backtrace) ядра.

    Продолжен переход на новую модель драйверов устройств.
    В virtio-драйверах qemu-virt64-aarch64 и qemu-virt64-riscv добавлена поддержка SDL2.


    Добавлен фреймворк для разработки драйверов clk.

    В DFS добавлена конфигурация exfat. Ядро по умолчанию переведено на использование ФС dfsv2.
    Улучшена поддержка TTY-терминалов.
    В системе ввода/вывода добавлена поддержка флагов O_DIRECT и O_SYNC.



    В реализации легковесных процессов lwP (Lightweight Process) функция wp_new заменена на lwp_create. Добавлена
    функция sys_setitimer.


    В менеджер памяти MM добавлена поддержка резервирования памяти и
    реализована функция rt_aspace_mremap_range.
    В Libcpu добавлена поддержка процессоров ARM Cortex-M85 и Cortex-R52



Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61063

Жизнь за Нер'зула!

Ответить