Le système d'exploitation en temps réel RT-Thread 5.3 est disponible.

La version RT-Thread 5.3, un système d'exploitation en temps réel (RTOS) pour les appareils de l'Internet des objets, a été publiée. Le système est en développement depuis 2006 par une communauté de développeurs chinois et est actuellement porté sur 155 plates-formes, puces et microcontrôleurs basés sur les architectures x86, ARM, MIPS, C-SKY, Xtensa, ARC et RISC-V. L'assemblage minimaliste RT-Thread (Nano) nécessite seulement 3 Ko de Flash et 1,2 Ko de RAM pour fonctionner. Pour les appareils IoT, peu contraints en ressources, une version entièrement fonctionnelle est proposée, prenant en charge la gestion des paquets, les configurateurs, la pile réseau, les paquets avec interface graphique, les systèmes de contrôle vocal, les bases de données, les services réseau et les moteurs pour l'exécution de scripts. Le code est écrit en langage C et est distribué sous la licence Apache 2.0.

Le système d'exploitation est constitué de trois couches de base :

  • Le noyau, qui assure l'exécution des tâches en temps réel. Le noyau fournit des primitives de base universelles couvrant des domaines tels que la gestion des verrouillages et la synchronisation des données, la planification des tâches, la gestion des flux, le traitement des signaux, les files d'attente de messages, la gestion des temporisateurs et la gestion de la mémoire. Les caractéristiques spécifiques au matériel sont réalisées au niveau de libcpu et BSP, qui incluent les pilotes nécessaires et le code pour prendre en charge le CPU.
  • Les composants et services fonctionnant au-dessus du noyau offrent des abstractions telles qu'un système de fichiers virtuel, un système de traitement des exceptions, un stockage au format clé/valeur, une interface de ligne de commande FinSH, une pile réseau (LwIP) et des frameworks réseau, des bibliothèques pour la prise en charge des appareils, un sous-système audio, une pile sans fil, et des composants pour la prise en charge de Wi-Fi, LoRa, Bluetooth, 2G/4G. L'architecture modulaire permet de connecter des composants et des services en fonction de vos tâches et des ressources matérielles disponibles.
  • Paquets de programmes. Les composants logiciels génériques et les bibliothèques de fonctions sont distribués et installés sous forme de paquets. Actuellement, le dépôt comprend plus de 450 paquets, offrant des interfaces graphiques, des applications multimédias et des applications réseau, jusqu'à des systèmes de gestion de robots et des gestionnaires basés sur l'apprentissage automatique. Les paquets incluent également des moteurs pour l'exécution de programmes dans les langages Lua, JerryScript, MicroPython, PikaScript et Rust (rtt_rust).

Caractéristiques de la plateforme :

  • Support des architectures :
    • ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (supporte les microcontrôleurs de fabricants tels que 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.
  • Architecture modulaire extensible permettant de créer un environnement adapté aux systèmes à ressources limitées (exigences minimales : 3 Ko de Flash et 1,2 Ko de RAM).
  • Support de diverses interfaces standard pour le développement de programmes, telles que POSIX, CMSIS, API C++. Une couche RTduino est développée séparément pour la compatibilité avec l'API et les bibliothèques du projet Arduino.
  • Possibilité d'extension via un système de paquets et de composants connexes.
  • Support du développement d'applications pour un traitement d'information à haute performance.
  • Système de gestion d'énergie flexible, permettant de mettre automatiquement l'appareil en mode veille et de gérer dynamiquement la tension et la fréquence en fonction de la charge.
  • Support du matériel pour le cryptage et le décryptage, fournissant des bibliothèques avec divers algorithmes cryptographiques.
  • Interface unifiée pour l'accès aux périphériques et équipements supplémentaires.
  • FS virtuel et disponibilité de pilotes pour des systèmes de fichiers tels que FAT, UFFS, NFSv3, ROMFS et RAMFS.
  • Pile de protocoles pour TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M, etc.
  • Système de distribution et d'installation à distance des mises à jour, supportant le cryptage et la vérification par signature numérique, la reprise des installations interrompues, la récupération après échec, le retour en arrière et plus encore.
  • Un système de modules dynamiquement chargés du noyau, permettant de rassembler et de développer séparément des composants du noyau, et de les charger dynamiquement en cas de besoin.
  • Support de divers paquets tiers, comme Yaffs2, SQLite, FreeModbus, Canopen, etc.
  • Possibilité de compiler directement le paquet BSP (Board Support Package) avec des composants pour le support d'une plateforme matérielle spécifique, et de le charger sur la carte.
  • Présence d'un émulateur (BSP qemu-vexpress-a9), permettant de développer des applications sans utiliser de cartes physiques.
  • Support des compilateurs et outils de développement standards, tels que GCC, MDK Keil et IAR.
  • Développement d'un environnement de développement intégré, RT-Thread Studio IDE, permettant de créer et de déboguer des applications, de les charger sur des cartes, et de gérer les paramètres. Des plugins pour développer des logiciels pour RT-Thread sont également disponibles pour Eclipse et VS Code.
  • Présence d'une interface de console Env, simplifiant la création de projets et la configuration de l'environnement.

Parmi les changements de la nouvelle version :

  • Support étendu pour le développement de composants en langage Rust. Ajout de liaisons Rust pour les threads, les mutexes, les sémaphores, les files d'attente de messages, ainsi que pour les opérations de mémoire, de temps et de fichiers. Réalisation de composants pour l'intégration avec SCons et Cargo. Détection automatique des plateformes cibles ARM, AArch64 et RISC-V. Ajout de macros procédurales pour l'initialisation et l'enregistrement des commandes.
  • Pour les microcontrôleurs Cortex-M, support de la norme Open Firmware avec une description des périphériques via Device Tree.
  • Ajout du support VirtIO 1.2 avec la possibilité d'utiliser des files d'attente de paquets, des transports MMIO/PCI et de la synchronisation DMA. Ajout de pilotes VirtIO 9P, crypto, RNG, SCMI et SCSI. Mise à jour des pilotes VirtIO pour le réseau, les périphériques block, la console, les dispositifs d'entrée et le GPU.
  • Ajout d'un cadre DVFS (Dynamic Voltage and Frequency Scaling) pour une gestion dynamique de la fréquence des CPU et des dispositifs. Intégration avec le firmware ARM SCMI pour la gestion de l'énergie. Amélioration de la gestion des ventilateurs.
  • Ajout du support des environnements TEE (Trusted Execution Environment) et du mécanisme de messagerie RPMSG (Remote Processor Messaging).
  • Mise en œuvre du support des sockets Unix.
  • Ajout de la prise en charge des mécanismes de protection des réseaux sans fil WPA3, EA (Enterprise Authentication), WAPI, OWE et DPP.
  • Ajout du support du protocole de synchronisation de temps PTP (Precision Time Protocol).
  • Le framework Clock Time a été ajouté pour travailler avec le temps, prenant en charge des minuteries haute précision et la synchronisation du temps à partir de plusieurs sources. Ce nouveau framework remplace les composants précédemment utilisés tels que ktime, cputime et hwtimer.
  • La système de fichiers 9PFS a été implémenté, utilisé pour l'échange de fichiers entre l'environnement hôte et les machines virtuelles.
  • La mise en œuvre des processus légers lwP (Lightweight Process) a introduit le support de l'architecture ARM et ajouté la prise en charge du mécanisme vDSO (objet partagé dynamique virtuel), permettant de déplacer les gestionnaires de l'espace noyau à l'espace utilisateur et d'éviter les changements de contexte.
  • Le noyau prend désormais en charge les opérations atomiques 8 et 16 bits.
  • La prise en charge de la multiprocesseurité symétrique (SMP) a été ajoutée pour les processeurs RISC-V de la série XuanTie C/R et pour l'émulateur QEMU virt64.
  • La pile USB CherryUSB 1.6.1 a été mise à jour.
  • De nouveaux pilotes DM (Device Manager) ont été ajoutés pour UFS, AHCI, NVMe, Ethernet, Intel HDA, joysticks et écrans tactiles.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster