Dostępny system operacyjny czasu rzeczywistego RT-Thread 5.0

Został wydany RT-Thread 5.0, system operacyjny czasu rzeczywistego (RTOS) dla urządzeń IoT. System jest rozwijany od 2006 roku przez społeczność chińskich programistów i obecnie jest przeportowany na prawie 200 płyt, chipów i mikrokontrolerów opartych na architekturach x86, ARM, MIPS, C-SKY, Xtensa, ARC i RISC-V. Minimalistyczna wersja RT-Thread (Nano) wymaga do działania jedynie 3 KB Flash i 1.2 KB RAM. W przypadku urządzeń IoT, które nie są mocno ograniczone zasobami, oferowana jest w pełni funkcjonalna wersja obsługująca zarządzanie pakietami, konfiguratory, stos sieciowy, pakiety z implementacją interfejsu graficznego, system sterowania głosowego, DBMS, usługi sieciowe i silniki do wykonywania skrypty. Kod napisany jest w języku C i rozpowszechniany na licencji Apache 2.0.

Funkcje platformy:

  • Wsparcie architektury:
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (obsługiwane są mikrokontrolery takich producentów jak ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, Nordic, Nuvoton, NXP).
    • Kora ARM-R4.
    • ARM Cortex-A8/A9 (NXP).
    • ARM7 (Samsunga).
    • ARM9 (Allwinner, Xilinx, GOKE).
    • ARM11 (Fullhan).
    • MIPS32 (Loongson, Ingenic).
    • RISC-V RV32E/RV32I[F]/RV64[D] (sifive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head).
    • ŁUK (SYNOPSJA)
    • DSP (TI).
    • c-niebo.
    • x86.
  • Rozszerzalna architektura modułowa, która pozwala stworzyć środowisko odpowiednie dla systemów o ograniczonych zasobach (minimalne wymagania - 3 KB Flash i 1.2 KB RAM).
  • Obsługa różnych standardowych interfejsów do tworzenia programów, takich jak POSIX, CMSIS, C++ API. Osobno rozwijana jest warstwa RTduino pod kątem zgodności z API i bibliotekami projektu Arduino.
  • Możliwość rozbudowy poprzez system pakietów i wtyczek.
  • Wsparcie w rozwoju aplikacji do wysokowydajnego przetwarzania informacji.
  • Elastyczny system zarządzania energią, który automatycznie przełącza urządzenie w tryb uśpienia oraz dynamicznie zarządza napięciem i częstotliwością w zależności od obciążenia.
  • Sprzętowa obsługa szyfrowania i deszyfrowania, zapewniając bibliotekom różne algorytmy kryptograficzne.
  • Ujednolicony interfejs dostępu do urządzeń peryferyjnych i wyposażenia dodatkowego.
  • Wirtualny FS i dostępność sterowników dla FS, takich jak FAT, UFFS, NFSv3, ROMFS i RAMFS.
  • Stos protokołów dla TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M itp.
  • System zdalnego dostarczania i instalowania aktualizacji obsługujący szyfrowanie i weryfikację za pomocą podpisu cyfrowego, wznawianie przerwanej instalacji, odzyskiwanie po awarii, cofanie zmian itp.
  • System dynamicznie ładowanych modułów jądra, który umożliwia oddzielne budowanie i rozwijanie komponentów jądra oraz dynamiczne ładowanie ich w razie potrzeby.
  • Obsługa różnych pakietów stron trzecich, takich jak Yaffs2, SQLite, FreeModbus, Canopen itp.
  • Możliwość bezpośredniego skompilowania pakietu BSP (pakietu wsparcia płyty) z komponentami obsługującymi określoną platformę sprzętową i przesłania go na płytkę.
  • Obecność emulatora (BSP qemu-vexpress-a9), który pozwala na tworzenie aplikacji bez użycia prawdziwych płytek.
  • Obsługa popularnych kompilatorów i narzędzi programistycznych, takich jak GCC, MDK Keil i IAR.
  • Rozwój własnego zintegrowanego środowiska programistycznego RT-Thread Studio IDE, które pozwala na tworzenie i debugowanie aplikacji, wgrywanie ich na tablice oraz zarządzanie ustawieniami. Wtyczki programistyczne RT-Thread są również dostępne dla Eclipse i VS Code.
    Dostępny system operacyjny czasu rzeczywistego RT-Thread 5.0
  • Obecność interfejsu konsoli Env, który upraszcza tworzenie projektów i konfigurowanie środowiska.
    Dostępny system operacyjny czasu rzeczywistego RT-Thread 5.0

System operacyjny składa się z trzech podstawowych warstw:

  • Jądro wykonujące zadania w czasie rzeczywistym. Jądro zapewnia podstawowe podstawowe funkcje obejmujące obszary takie jak zarządzanie blokadami i synchronizacją danych, planowanie zadań, zarządzanie wątkami, obsługa sygnałów, kolejkowanie wiadomości, zarządzanie timerem i zarządzanie pamięcią. Funkcje specyficzne dla sprzętu są zaimplementowane na poziomie libcpu i BSP, które obejmują niezbędne sterowniki i kod do obsługi procesora.
  • Komponenty i usługi działające na jądrze i oferujące abstrakcje, takie jak wirtualny system plików, system obsługi wyjątków, pamięć kluczy/wartości, interfejs wiersza poleceń FinSH, stos sieciowy (LwIP) i struktury sieciowe, biblioteki do obsługi urządzeń, podsystem dźwiękowy, stos bezprzewodowy, komponenty obsługujące Wi-Fi, LoRa, Bluetooth, 2G/4G. Architektura modułowa pozwala na łączenie komponentów i usług w zależności od zadań i dostępnych zasobów sprzętowych.
  • Pakiety oprogramowania. Komponenty oprogramowania ogólnego przeznaczenia i biblioteki funkcji są dystrybuowane i instalowane w formie pakietów. Repozytorium zawiera obecnie ponad 450 pakietów, od interfejsów GUI, aplikacji multimedialnych i sieciowych po systemy sterowania robotami i procesory uczenia maszynowego. Pakiety udostępniają także silniki do organizowania wykonywania programów w językach Lua, JerryScript, MicroPython, PikaScript i Rust (rtt_rust).

Dostępny system operacyjny czasu rzeczywistego RT-Thread 5.0

Spośród nowych funkcji dodanych w wersji 5.0 można zauważyć znaczną poprawę obsługi systemów wielordzeniowych i wielowątkowych (np. stos sieciowy i systemy plików są przystosowane do pracy w trybie wielowątkowym, harmonogram jest podzielony na opcje dla systemów jednordzeniowych i SMP). Dodano implementację TLS (Thread Local Storage). Ulepszona obsługa chipów Cortex-A. Znacząco ulepszona obsługa systemów 64-bitowych (stos TCP/IP i systemy plików zweryfikowane dla systemów 64-bitowych). Zintegrowane komponenty zarządzania pamięcią Flash. Narzędzia do tworzenia sterowników zostały przeprojektowane.

Źródło: opennet.ru

Dodaj komentarz