Accueil Astuces et Informations RT-Thread, un système d’exploitation en temps réel pour les appareils IoT

RT-Thread, un système d’exploitation en temps réel pour les appareils IoT

1
0
RT-Thread

RT-Thread est un système d’exploitation en temps réel (RTOS) open source, neutre et basé sur la communauté.

Il est récemment devenu connu la sortie de la nouvelle version du système d’exploitation «RT-Thread 5.0»qui se positionne comme un système d’exploitation en temps réel (RTOS) pour les appareils IoT.

Le système est développé depuis 2006 par une communauté de développeurs chinois et est actuellement porté sur près de 200 cartes, puces et microcontrôleurs basés sur les architectures x86, ARM, MIPS, C-SKY, Xtensa, ARC et RISC-V.

La version minimaliste de RT-Thread (Nano) ne nécessite que 3 Ko de Flash et 1,2 Ko de RAM pour fonctionner. Pour les appareils IoT qui ne sont pas sévèrement contraints en ressources, une version complète est proposée qui prend en charge la gestion des packages, les configurateurs, la pile réseau, les packages avec implémentation d’une interface graphique, le système de contrôle vocal, le SGBD, les services réseau et les moteurs pour exécuter des scripts.

Caractéristiques du filetage RT

Le système d’exploitation se compose de trois couches de base :

  1. Un noyau qui exécute des tâches en temps réel. Le noyau fournit des primitives de base génériques qui couvrent des domaines tels que la gestion des verrous et de la synchronisation des données, la planification des tâches, la gestion des threads, la gestion des signaux, la mise en file d’attente des messages, la gestion des temporisateurs et la gestion de la mémoire. Les fonctionnalités spécifiques au matériel sont implémentées au niveau libcpu et BSP, qui incluent les pilotes et le code nécessaires pour prendre en charge le processeur.
  2. Composants et services qui s’exécutent au-dessus du noyau et offrent des abstractions telles que le système de fichiers virtuel, le système de gestion des exceptions, le stockage clé/valeur, l’interface de ligne de commande FinSH, la pile réseau (LwIP) et les frameworks réseau, les bibliothèques pour la prise en charge des appareils, le sous-système audio, la pile sans fil, les composants compatibles avec le Wi-Fi, LoRa, Bluetooth, 2G/4G. L’architecture modulaire vous permet de connecter des composants et des services en fonction de vos tâches et des ressources matérielles disponibles.
  3. Forfaits de programme. Les composants logiciels à usage général et les bibliothèques de fonctions sont distribués et installés sous forme de packages.
    Le référentiel comprend actuellement plus de 450 packages allant des interfaces graphiques, des applications multimédias et des applications réseau aux systèmes de contrôle de robots et aux processeurs d’apprentissage automatique.

Filetage RT dispose d’une architecture modulaire extensible Quoi vous permet de créer un environnement adapté aux systèmes aux ressources limitées (exigences minimales : 3 Ko de Flash et 1,2 Ko de RAM), en plus d’avoir également la compatibilité avec plusieurs interfaces standard pour le développement de programmes, telles que POSIX, CMSIS, C++ API. Séparément, la couche RTduino est en cours de développement pour être compatible avec l’API et les bibliothèques du projet Arduino.

Une autre caractéristique qui se démarque est la système de gestion de l’alimentation flexible qui met automatiquement l’appareil en veille et gère dynamiquement la tension et la fréquence en fonction de la charge.

Il a également le support matériel pour le chiffrement et le déchiffrementfournissant aux bibliothèques divers algorithmes cryptographiques.

En plus de cela, il dispose également d’un système d’envoi et d’installation à distance des mises à jour qui prend en charge le cryptage et la vérification au moyen d’une signature numérique, la reprise d’une installation interrompue, la récupération après une panne, l’annulation des modifications, etc.

Ainsi qu’un système de modules de noyau chargeables dynamiquement qui vous permet de créer et de développer des composants de noyau séparément et de les charger dynamiquement si nécessaire.

Parmi les autres caractéristiques qui se démarquent :

  • Prise en charge de divers packages tiers tels que Yaffs2, SQLite, FreeModbus, Canopen, etc.
  • Prise en charge des compilateurs et outils de développement courants tels que GCC, MDK Keil et IAR.
  • Développement d’un environnement de développement intégré RT-Thread Studio IDE, qui permet de créer et de déboguer des applications, de les télécharger sur des tableaux de bord et de gérer les configurations. Des plugins de développement RT-Thread sont également disponibles pour Eclipse et VS Code.
  • La présence de l’interface de la console Env, qui simplifie la création de projets et la configuration de l’environnement.
  • La possibilité de compiler directement un package BSP
  • Extensible grâce à un système de packages et de plugins.
  • Interface unifiée pour l’accès aux périphériques et équipements supplémentaires.
  • Appui au développement d’une application de traitement de l’information haute performance.
  • FS virtuel et disponibilité des pilotes pour FS

À propos de RT-Thread 5.0

Concernant les nouvelles fonctions ajoutées dans la version 5.0, on peut remarquer une Amélioration significative de la prise en charge des systèmes multicœurs et multithreads (Par exemple, la pile réseau et les systèmes de fichiers sont adaptés pour fonctionner en mode multithread.

Une autre nouveauté est la le planificateur est divisé en options pour les systèmes monocœur et SMP, ainsi que l’implémentation supplémentaire de TLS (Thread Local Storage).

En plus de cela, il met également en évidence la prise en charge améliorée des puces Cortex-A, une compatibilité considérablement améliorée pour les systèmes 64 bits (systèmes de fichiers vérifiés et piles TCP/IP pour les systèmes 64 bits) et les composants intégrés de gestion de la mémoire Flash, ainsi que que les outils de création de contrôleurs ont été repensés.

Pour ceux qui s’intéressent à ce système, ils doivent savoir que le code est écrit en langage C et distribué sous la licence Apache 2.0.

Vous pouvez vérifier plus de détails dans le lien suivant.