Les microcontrôleurs sont-ils obsolètes ? Systèmes embarqués et systèmes d'exploitation correspondants Systèmes d'exploitation temps réel pour microcontrôleurs

J'ai développé un peu plus de 10 appareils électroniques et j'ai complètement supprimé leur fonctionnement de bas niveau sans système d'exploitation. La situation a changé lorsque la fonctionnalité du prochain appareil s'est considérablement étendue. De plus, il existe un besoin pour une tâche qui est appelée à des intervalles de temps spécifiés, et la précision de l'appel affecte le résultat. Il est également devenu évident qu'il ne serait pas possible d'écrire tous les logiciels dans le temps imparti et qu'ils seraient créés plus tard. Après réflexion, j'ai réalisé que le projet devait inclure un système d'exploitation temps réel (RTOS ou RTOS).

Contrairement à un PC, où l'OS est plus une couche pour travailler avec les ressources système, pour un microcontrôleur RTOS c'est avant tout un planificateur de tâches, en fait il joue le rôle principal en "temps réel". Pour le moment, il est important pour moi de fournir l'exécution de tâche dite "pseudo-parallèle". C'est-à-dire qu'il existe plusieurs tâches avec la même priorité et il est important de les appeler dans l'ordre spécifié à des intervalles spécifiés.

L'exemple suivant est clair : dans le projet Eurobot 2011, il y avait 18 périphériques dans le système. 2 cartes électroniques pourraient être combinées en une seule en termes de fonctionnalité. Leur coût diminuerait, leur fiabilité augmenterait (le nombre de composants du système serait réduit) et la quantité d'espace libre dans le boîtier augmenterait. La circonstance est compliquée par le fait que le nombre de tâches augmente proportionnellement et ici, vous ne pouvez pas vous passer de l'OS. RTOS permet également d'éviter d'éventuels temps d'arrêt du processeur, par exemple, lors de la conversion ADC, vous pouvez bloquer cette tâche et en effectuer d'autres, répartissant ainsi correctement le travail de l'appareil. Il est également important que maintenant l'appareil ne tombe pas en raison d'un échec dans la tâche ; au lieu de cela, il est possible de maintenir une opérabilité partielle (bien que cela puisse conduire à des résultats imprévisibles). Comment assurer la croissance de ces indicateurs ? En fait, nous extrayons tout ce qui est possible du MK, en utilisant efficacement ses capacités de calcul.

Après une courte recherche, le choix s'est porté sur freeRTOS. Ce RTOS est distribué en source C et porté sur 27 architectures. La dernière circonstance est décisive pour moi. Cela réduira les coûts de main-d'œuvre lorsque vous travaillerez avec des microcontrôleurs d'autres fabricants. Maintenant, je suis plus intéressé par le port pour l'AVR.

La présence de RTOS freeRTOS dans le projet consomme environ 9,8 Ko de mémoire programme et 1,8 Ko de RAM. Par exemple, pour ATmega32 et le compilateur WinAVR, il s'agit respectivement de 60 % et 85 %. Il est déjà difficile de créer un appareil avec de grandes fonctionnalités pour ce modèle - il n'y aura pas assez de mémoire. Mais ce problème disparaît avec les nouveaux modèles d'AVR. Cela n'a aucune importance pour le Mega2560 avec ses 256 Ko de mémoire programme et ses 8 Ko de RAM. La tendance des futurs MC n'accompagne que le succès du RTOS.

Après avoir parcouru Runet, j'ai été surpris de constater qu'il n'y avait pas de documentation du système d'exploitation en russe. Qu'est-ce que c'est! La documentation originale est distribuée moyennant des frais supplémentaires. La situation a été simplifiée par l'article d'Andrey Kurnits ( [email protégé]) du magazine "Composants et technologies". Avec le consentement de l'auteur, j'utiliserai les matériaux de l'article dans une version révisée. Son article pourrait bien servir de documentation en russe. Mais l'original n'est pas disponible sous forme imprimée, le site du magazine ment, donc le matériel devra être légèrement retravaillé. En général, l'auteur a fait un excellent article et il ne sert à rien de revenir sur la théorie, il sera publié en intégralité ici. L'article original sera joint à la fin de la publication. J'ai également remarqué que les utilisateurs avaient des difficultés à compiler le RTOS. Cela est dû au fait qu'un makefile externe est utilisé, qui contient les chemins d'accès aux dossiers. Par conséquent, je joindrai un projet fini en tant que modèle pour AVR Studio et AVR Eclipse. Malheureusement, le makefile natif ne produit pas d'informations de débogage telles que l'utilisation de la RAM et de la mémoire du programme, cela a dû être corrigé en ajoutant l'appel standard approprié.

Donc, brièvement sur le besoin, il est conseillé d'utiliser un RTOS dans votre projet, si nécessaire :

Organiser le multitâche et les tâches alternatives

Assurez-vous que la tâche démarre à des intervalles strictement définis

Transférer des informations d'une tâche à une autre

Ajouter de nouvelles tâches au besoin

Avantages RTOS par rapport à MÀ:

  1. Multitâche. RTOS fournit au programmeur un mécanisme multitâche prêt à l'emploi et débogué. Dans un cas simple, chaque tâche peut être programmée séparément, tout le travail peut être réparti entre plusieurs membres de l'équipe. Vous n'avez pas à vous soucier de basculer entre les tâches, le planificateur le fera.
  2. Base de temps. Les intervalles de temps doivent être mesurés. Un RTOS doit avoir cet outil. Il vous permettra d'effectuer des actions à des intervalles strictement alloués.
  3. Échange de données entre les tâches. Pour ce faire, le RTOS utilise une file d'attente.
  4. Synchronisation. Si différentes tâches utilisent la même ressource, comme un port série, alors les mutex et les sections critiques peuvent être utilisés. Si vous devez effectuer des tâches dans un ordre strict ou lorsqu'un événement spécifique se produit, vous pouvez utiliser des sémaphores ou des signaux pour synchroniser les tâches.

Inconvénients du RTOS:

1. Une forte augmentation de la mémoire programme requise pour la mise en œuvre du noyau

2. Augmenter la RAM requise pour stocker la pile de chaque tâche, sémaphores, files d'attente, mutex et autres objets du noyau système.

3. Retards lors du basculement entre les tâches pour enregistrer le contexte.

La descriptionlibreRTOS:

FreeRTOS est un système d'exploitation libre et open source en temps réel. Principalement écrit en C, mais il y a des inserts en assembleur. Il a été développé par Real Time Engineers Ltd spécifiquement pour les systèmes embarqués. Récemment, le projet SafeRTOS a commencé à développer - une version modifiée, documentée, testée et certifiée de FreeRTOS pour la conformité à la norme de sécurité IEC 61508. Ce projet a été géré par une entreprise allemande et maintenant safeRTOS est utilisé dans l'industrie aérospatiale et la technologie médicale. Il y a aussi le projet openRTOS - une version commerciale avec une garantie du fabricant.

Principales caractéristiques de freeRTOS:

1. Scheduler prend en charge 3 types de multitâche :

Déplacement

Une coopérative

Hybride

2. La taille du noyau est de 9,8 Ko compilé pour AVR. (WINAVR)

3. La base du noyau - 4 fichiers en C.

4. Prend en charge les tâches et les coroutines. Les coroutines sont spécialement conçues pour les MCU avec une petite quantité de RAM.

5. Capacités de traçage riches.

6. Il est possible de suivre le débordement de la pile.

7. Il n'y a aucune restriction logicielle sur le nombre de tâches exécutées simultanément.

8. Il n'y a pas de limite sur le nombre de priorités de tâches.

9. Plusieurs tâches peuvent se voir attribuer la même priorité

10. Moyens avancés de synchronisation "task-task" et "task-interrupt":

Files d'attente

Sémaphores binaires

Compter les sémaphores

Sémaphores récursifs

Mutex

11. Mutex avec héritage prioritaire.

12. Prise en charge du module de protection mémoire pour Cortex-M3

13. Fourni sous forme déboguée avec des projets de démonstration pour diverses plates-formes et compilateurs.

14. Gratuit. Peut être utilisé dans des projets sans divulguer le code source sous la licence GPL étendue.

15. La documentation est payante, mais disponible en ligne ici.

16. Le temps de changement de contexte pour l'AVR avec quartz à 16MHz ne sera que de 20,8 µs. C'est exactement ce qu'il faut pour enregistrer des données dans la pile de tâches et appeler la suivante. (Une note intéressante, si vous comparez cela avec le PIC18xxx, alors le contrôleur AVR le rend 4 fois plus rapide !!!, cela est probablement dû à la qualité du compilateur)

Le multitâche préemptif signifie qu'une tâche en cours d'exécution avec une faible priorité est chevauchée par une tâche terminée avec une priorité plus élevée. La commutation entre les tâches se produit à des tranches de temps égales. Par conséquent, avant que la tâche à haute priorité puisse commencer l'exécution, la tranche de temps actuelle doit s'être écoulée lorsque la tâche à faible priorité est en cours d'exécution.

Ainsi, le temps de réaction de FreeRTOS aux événements externes en mode multitâche préemptif n'est pas supérieur à une tranche de temps du planificateur, qui peut être définie dans les paramètres. Par défaut, c'est 1ms.

Si plusieurs tâches de même priorité sont prêtes à être exécutées, alors le planificateur alloue à chacune d'elles une tranche de temps, après quoi le contrôle est reçu par la tâche suivante de même priorité, et ainsi de suite en cercle.

Le multitâche coopératif diffère du multitâche préemptif en ce que le planificateur lui-même ne peut pas interrompre l'exécution de la tâche en cours, même une tâche de haute priorité qui est prête à être exécutée. Chaque tâche doit transférer indépendamment le contrôle au planificateur. Ainsi, la tâche à priorité élevée attendra que la tâche à faible priorité ait terminé son travail et redonnera le contrôle à l'ordonnanceur. Le temps de réponse du système à un événement externe devient indéfini et dépend de la durée d'exécution de la tâche en cours avant le transfert du contrôle. Le multitâche coopératif a été utilisé dans la famille de systèmes d'exploitation Windows 3.x.

Les concepts de multitâche préemptif et coopératif sont réunis dans le multitâche hybride, où le planificateur est appelé à chaque tranche de temps, mais contrairement au multitâche préemptif, le programmeur a la capacité de forcer cela dans le corps de la tâche. Ce mode est particulièrement utile lorsqu'il est nécessaire de raccourcir le temps de réponse du système à une interruption. Supposons qu'une tâche de faible priorité soit en cours d'exécution et qu'une tâche de haute priorité attend qu'une interruption se produise. Ensuite, une interruption se produit, mais à la fin du gestionnaire d'interruptions, l'exécution revient à la tâche de faible priorité actuelle et la tâche de priorité élevée attend la fin de la tranche de temps actuelle. Cependant, si après l'exécution du gestionnaire d'interruption, le contrôle est transféré au planificateur, alors il transférera le contrôle à une tâche de haute priorité, ce qui peut réduire le temps de réponse du système associé à un événement externe.

Pourquoisur lediscuterb?

Vous pouvez commencer à développer un microcontrôleur exécutant FreeRTOS en téléchargeant sa dernière version.

La distribution FreeRTOS est disponible sous forme d'archive ZIP standard ou auto-extractible. Distribution Contient directement le code du noyau (sous forme de plusieurs fichiers d'en-tête et fichiers avec le code source) et des projets de démonstration (un projet pour chaque environnement de développement pour chaque port). Ensuite, vous devez décompresser l'archive dans n'importe quel emplacement approprié sur la station de développement.

Malgré le grand nombre de fichiers dans l'archive, la structure des répertoires est en fait simple. Si vous envisagez de concevoir des appareils sur 2-3 architectures dans 1-2 environnements de développement, la plupart des fichiers liés aux projets de démonstration et aux divers environnements de développement ne seront pas nécessaires.

La structure détaillée du répertoire est illustrée dans le diagramme.

Tout le code source du noyau se trouve dans le répertoire / Source.

Contenu:

1.tâches.c- mise en place du mécanisme de tâches, ordonnanceur

2. file d'attente.c- mise en place de files d'attente

3. liste.c- les besoins internes de l'ordonnanceur, mais les fonctions peuvent également être utilisées dans des programmes applicatifs.

4. croutine.c- mise en place des coroutines (peut être absente si les coroutines ne sont pas utilisées).

Fichiers d'en-tête qui se trouvent dans le répertoire source / inclure

1.tasks.h, queue.h, tist.h, croutine.h- les fichiers d'en-tête, respectivement, pour les fichiers du même nom avec le code.

2. FreeRTOS.h-contient des directives de préprocesseur pour configurer la compilation.

3.mpu_wrappers.h- contient des remplacements des fonctions de l'interface de programmation FreeRTOS (API) pour prendre en charge le module de protection de la mémoire (MPU).

4.portable.h-Paramètres dépendants de la plate-forme.

5.projdefs.h-quelques définitions du système

6.semhr.h- définit des fonctions API pour travailler avec des sémaphores, qui sont implémentées sur la base de files d'attente.

7. StackMacros.h- contient des macros pour contrôler le débordement de la pile. Chaque plate-forme matérielle nécessite un petit morceau de code du noyau qui implémente l'interopérabilité de FreeRTOS avec cette plate-forme. Tout le code spécifique à la plate-forme se trouve dans le sous-répertoire / Source / Portable, où il est classé par environnements de développement (IAR, GCC, etc.) et plates-formes matérielles (par exemple, AtmelSAM7S64, MSP430F449). Par exemple, le sous-répertoire / Source / Portable / GCC / ATMega323 contient les fichiers port.c et portmacro.h, qui implémentent la sauvegarde/restauration du contexte de la tâche, l'initialisation du temporisateur pour créer une base de temps, l'initialisation de la pile de chaque tâche et d'autres fonctions dépendantes du matériel pour les microcontrôleurs de la famille mega AVR et le WinAVR compilateur (GCC).

Séparément, vous devez mettre en surbrillance le sous-répertoire / Source / Portable / MemMang qui contient les fichiers tas_l.c, tas_2.c, tas_3.c, qui implémentent 3 mécanismes différents d'allocation de mémoire pour les besoins de FreeRTOS, qui seront décrits en détail plus loin.

Le répertoire / Demo contient des projets de démonstration prêts à compiler et à construire. La partie commune du code pour tous les projets de démonstration est mise en évidence dans un sous-répertoire / Démo / Commo n.m.

Pour utiliser FreeRTOS dans votre projet, vous devez inclure les fichiers source du noyau et les fichiers d'en-tête associés. Il n'est pas nécessaire de les modifier ou de comprendre leur mise en œuvre.

Par exemple, si vous prévoyez d'utiliser le port pour les microcontrôleurs MSP430 et le compilateur GCC, alors pour créer un projet à partir de zéro " vous aurez besoin de sous-répertoires / Source / Portable / GCC / MSP430_GCC et / Source / Portable / MemMang... Tous les autres sous-répertoires du répertoire /Source / Portable sont inutiles et peuvent être supprimés.

Si vous envisagez de modifier le projet de démonstration existant (ce qui, en fait, est recommandé au début de l'étude FreeRTOS), vous aurez également besoin de sous-répertoires / Démo / msp430_GCC et / Démo / Commun... Le reste des sous-répertoires / Demo est inutile et peut être supprimé.

Lors de la création d'une application, il est recommandé d'utiliser makefile(ou fichier de projet d'environnement de développement) à partir du projet de démonstration correspondant comme point de départ. Il est conseillé d'exclure du build (build) les fichiers du répertoire / Demo, en les remplaçant par les vôtres, et les fichiers du répertoire / Source - intacts. Le fichier d'en-tête doit également être mentionné FreeRTOSConfig.h trouvé dans chaque projet de démonstration. FreeRTOSConfig.h contient des définitions (#define) qui permettent de configurer le noyau FreeRTOS :

1. Un ensemble de fonctions système.

2. Utiliser des coroutines.

3. Le nombre de priorités de tâches et de coroutines

4. Tailles de la mémoire (pile et tas).

5. Fréquence d'horloge de MK.

6. La période du time scheduler allouée à chaque tâche d'exécution, qui est généralement égale à 1 ms. Désactivez certaines fonctions du système et réduisez le nombre de priorités (réduit la consommation de mémoire).

La distribution FreeRTOS comprend également des outils pour convertir les informations de trace reçues du planificateur sous forme de texte (répertoire / TgaseCon) et le texte de la licence (répertoire / Licence).

conclusions

À l'aide du premier article de la série, le lecteur s'est familiarisé avec le système d'exploitation des microcontrôleurs FreeRTOS. Les caractéristiques de l'œuvre sont présentées. Décrivez le contenu de la distribution FreeRTOS. Les étapes de base pour commencer à développer un appareil exécutant FreeRTOS sont données.

Dans les publications futures, l'attention sera portée sur le mécanisme multitâche, à savoir les tâches et les coroutines. Un exemple du planificateur sera montré en utilisant l'exemple des microcontrôleurs Atmel AVR et le compilateur WinAVR (GCC).

RTOS MAX est un système d'exploitation russe gratuit en temps réel pour les systèmes cohérents multi-agents.

MAKS incarne la fonctionnalité classique des systèmes d'exploitation de ce type et présente un certain nombre d'avantages qui accélèrent considérablement le développement de logiciels embarqués lors de la création de nouveaux appareils basés sur des microcontrôleurs. Les avantages du nouveau système d'exploitation sont particulièrement évidents dans l'organisation de l'interaction entre plusieurs appareils.


RTOS MAKS comprend :
  • Noyau RTOS entièrement fonctionnel.
  • Ensemble complet de codes sources.
  • Documentation.
  • Applications de démonstration.
Découvrez le projet sur github : https://github.com/AstroSoft-MIR/macs-rtos

Ou téléchargez la version stable dans le cadre de l'environnement de développement MACS Master basé sur Eclipse


Fabriqué par STMicroelectronics (y compris des projets prêts à l'emploi pour le kit de débogage STM32F429I-DISCO).

Prise en charge des outils de développement


Éclipse + GCC.

RTOS MAX est :

Planificateur:

  • création et suppression dynamiques de tâches,
  • prise en charge des modes multitâches préemptifs et coopératifs,
  • sélection du mode d'exécution de la tâche - privilégié ou non privilégié.
Objets de synchronisation :
  • sémaphores binaires et comptages,
  • mutex récursifs et non récursifs avec prise en charge de l'héritage prioritaire,
  • événements,
  • files d'attente de messages.
Utilisation de la protection matérielle de la mémoire :
  • pour protéger la pile de processus contre les débordements,
  • pour protéger la mémoire à l'adresse zéro,
  • pour protéger les ports périphériques des accès non privilégiés.
Gestion des interruptions dans les tâches utilisateur :
  • activation de tâches de gestion personnalisées à partir d'un gestionnaire d'interruption universel prédéfini ne nécessitant pas de configuration supplémentaire,
  • la possibilité d'affecter plusieurs tâches de gestion pour une interruption,
  • contrôle de la séquence de traitement à travers les priorités des tâches de traitement.
Profilage :
  • mesurer le temps d'exécution de sections de code de point à point ou dans le cadre d'une variable automatique,
  • la possibilité de réglage automatique (augmentation de la précision de la mesure en calculant les retards de son propre travail),
  • génération de statistiques de mesures avec le regroupement des tronçons par tronçons (temps d'exécution total de tous les tronçons avec et sans imbrication, temps d'exécution minimum/moyen/maximum des tronçons, écart type).
Mécanisme de mémoire partagée :
  • synchronisation du contexte des tâches entre appareils,
  • échange de messages au sein d'un groupe d'appareils.

Les dispositifs contrôlés par microcontrôleur sont utilisés pour résoudre un large éventail de tâches. RTOS MAKS est une plate-forme universelle pour le développement d'applications embarquées, et la portée de son application est liée à l'opportunité d'utiliser des microcontrôleurs dans une tâche particulière.


Robotique, drone
  • Système de contrôle

    L'électronique de commande est installée directement sur le robot lui-même et met en œuvre des algorithmes qui lui permettent de résoudre la tâche.

  • Système de télémétrie

    Fournit la communication entre le robot et le terminal distant, permet à l'opérateur de recevoir des informations sur l'état du robot et d'envoyer des commandes.


  • Système de positionnement

    Des périphériques externes supplémentaires permettent aux robots de naviguer à l'intérieur et à l'extérieur, de trouver leur chemin vers leur destination et les stations de base.

Systèmes de maison intelligente
  • Contrôle de l'alimentation et de l'éclairage

    Assurer une alimentation électrique ininterrompue du bâtiment, maîtriser la consommation d'énergie, allumer/éteindre automatiquement l'éclairage en fonction de la présence de personnes dans la pièce et contrôler le niveau d'éclairement (réglage de la luminosité de la lumière aux différents moments de la journée).


  • Contrôle du climat

    Le maintien d'un microclimat confortable dans la pièce (contrôle de la température et de l'humidité, ventilation et purification de l'air) s'effectue en fonction des préférences de l'utilisateur, de la présence de personnes dans la pièce, ainsi que de facteurs externes (météo, heure de la journée).


  • Systèmes de surveillance et de sécurité

    Vidéosurveillance et contrôle d'accès aux locaux, surveillance des événements menaçant la sécurité d'un logement (cambriolage, incendie, fuite d'eau) et notification automatique des propriétaires et des services concernés à leur sujet (sécurité, pompiers).

Electronique grand public et électroménager


Avec le développement de la technologie, les appareils électroménagers deviennent plus fonctionnels et plus faciles à utiliser. Par exemple, de nos jours, le consommateur a déjà accès à des équipements contrôlés de manière centralisée depuis un smartphone ou une tablette au lieu de télécommandes séparées. La technologie « Smart » nécessite de moins en moins d'attention de la part d'une personne, ce qui permet à l'utilisateur de gagner beaucoup de temps et d'argent (les aspirateurs robots se nettoient eux-mêmes, les fonctions de démarrage différé et d'arrêt automatique contrôlent le temps de fonctionnement du appareil et ainsi optimiser la consommation d'énergie). Les technologies en développement rapide de l'Internet des objets (IoT) impliquent une autonomie complète des appareils, ce qui donne lieu à des exigences élevées pour leur bourrage logiciel, et de la part des développeurs de ces appareils, il y a un intérêt croissant pour les systèmes d'exploitation qui déjà "hors de la box" fournissent des services et des protocoles d'interaction permettant d'assurer cette autonomie.


Les technologies IoT impliquent une autonomie complète des appareils. Cela donne lieu à des exigences élevées pour leur bourrage logiciel. De la part des développeurs de ces appareils, il y a un intérêt croissant pour les systèmes d'exploitation qui fournissent des services prêts à l'emploi et des protocoles d'interaction qui permettent d'assurer cette autonomie.


Support de maille
  • Fiabilité et résilience du réseau

    Les nœuds du réseau sont connectés les uns aux autres, formant un grand nombre de liens. Plusieurs voies de circulation peuvent être formées entre les nœuds. S'il existe des routes redondantes, la défaillance d'un des nœuds intermédiaires ne perturbera pas le fonctionnement de l'ensemble du réseau. Les informations seront redirigées dynamiquement vers un itinéraire différent.


  • Auto-organisation

    La structure du réseau est formée automatiquement au fur et à mesure que les nœuds sont connectés/déconnectés. Si nécessaire, chaque nœud peut indépendamment obtenir des informations sur la disponibilité du nœud de destination et construire une route optimale pour l'échange de données.


  • Portée de communication augmentée

    Chacun des appareils peut avoir une courte portée de communication. Cependant, la répartition territoriale de nombreux appareils connectés les uns aux autres permet une couverture beaucoup plus grande.

Prise en charge des technologies IoT
  • Configuration optimale d'un système distribué

    Les ressources matérielles de chaque périphérique du système sont sélectionnées en fonction de son objectif fonctionnel. Il n'est pas nécessaire d'avoir des ordinateurs puissants pour résoudre des tâches simples, telles que l'identification d'objets ou la mesure de paramètres de l'environnement externe. Ces fonctions peuvent être exécutées dans de petits modules autonomes, réduisant ainsi le coût d'un système distribué.


  • Fonctionnement autonome du système

    En interagissant les uns avec les autres, les appareils sont capables de prendre des décisions et d'effectuer des tâches sans intervention humaine, ce qui réduit le coût de maintenance du système.


  • Évolutivité

      L'entrée et la sortie des appareils du réseau sont simples et automatiques. Le réseau "découvrira" par lui-même quel appareil y est apparu et comment l'utiliser.

Applications
  • Capteurs, capteurs, convertisseurs
  • Systèmes de maison intelligente et de ville intelligente
  • Internet des objets (IoT)
  • Automatisation industrielle, contrôle
  • Robotique
  • Équipement médical
  • Transport ferroviaire
  • Electronique grand public
  • Systèmes de communication

Bonjour Haber !
Aujourd'hui, je vais parler d'une chose aussi intéressante que le système d'exploitation en temps réel (RTOS). Je ne sais pas si ce sera intéressant pour les programmeurs chevronnés, mais je pense que les débutants l'aimeront.

Qu'est-ce qu'un RTOS ?

Si nous regardons Wikipédia, nous voyons jusqu'à 4 définitions.
En bref, un RTOS est un système d'exploitation qui réagit aux événements externes dans un certain laps de temps. Par conséquent, nous pouvons comprendre le but principal d'un RTOS - des dispositifs dans lesquels une réaction rapide aux événements est requise (cependant, le fonctionnement d'un RTOS ne doit en aucun cas être confondu avec des interruptions).

Pourquoi en avons-nous besoin?

Il y a plusieurs raisons à cela.
Premièrement, le RTOS prend en charge le multitâche, les priorités de processus, les sémaphores, etc.
Deuxièmement, il est très léger et ne nécessite pratiquement aucune ressource.
Troisièmement, nous pouvons obtenir tout ce qui précède sur presque n'importe quel matériel (par exemple, FreeRTOS fonctionne même sur AtMega 8 bits).
Et quatrièmement : jouez et amusez-vous.

Revue de 3 RTOS bien connus.

Attention : ce qui suit est mon avis personnel.
FreeRTOS
L'un des RTOS les plus populaires aujourd'hui. Porté à une énorme quantité de fer. Site officiel.
avantages
1) Gratuit
2) Porté à une grande quantité de fer
3) Fonctionnalité puissante
4) Il existe diverses bibliothèques : graphiques, Internet et plus encore.
5) Bonne documentation.
Inconvénients
1) Un processus assez compliqué de portage vers un nouveau matériel.

Conclusion : il s'agit d'un RTOS vraiment professionnel avec une bonne documentation. Ce sera bien pour un débutant s'il y a déjà un port sur son matériel.

KeilRTX
Jusqu'à récemment, ce RTOS était commercial, mais est récemment devenu ouvert. Fonctionne uniquement sur l'architecture du bras. Site officiel.
avantages
1) Gratuit
2) Facilement porté sur un nouveau matériel (au sein de l'architecture du bras).
3) Il existe diverses bibliothèques : graphiques, Internet et plus encore.
Inconvénients
1) Travailler pour Keil avec elle est presque impossible
2) Fonctionnalité légèrement réduite
3) Seul le bras est pris en charge.
4) (par expérience personnelle) Perd en vitesse face à de nombreux RTOS.
Conclusion : idéal pour les débutants et les petits projets.
uc/os
RTOS commercial puissant. Site .
avantages
1) Un grand nombre de fonctions et de bibliothèques.
2) Supporte beaucoup de fer
Inconvénients
1) Commerciale.
2) Difficile à utiliser.

Conclusion : il est exagéré d'appeler cela un RTOS pour un débutant.

Autres RTOS intéressants

RTLinux Un RTOS basé sur Linux standard.
QNX RTOS basé sur Unix.

Caractéristiques du développement à l'aide de RTOS

Eh bien, tout d'abord, vous devez comprendre ce qui suit : RTOS n'est pas Windows. Il ne peut pas être installé. Ce système est simplement compilé avec votre programme.
Lors de l'écriture de programmes avec RTOS, les fonctions dans leur sens habituel ne sont pas utilisées. Les processus (ou tâches) sont utilisés à la place des fonctions. La différence est que les processus, contrairement aux fonctions, sont des boucles infinies et ne se terminent jamais (sauf si quelqu'un ou lui-même le tue - c'est-à-dire le décharge de la mémoire).
Si plusieurs processus sont activés, le RTOS les commute, affichant un par un l'heure et les ressources de la machine. C'est là que le concept de priorité de processus apparaît - si deux processus ont simultanément besoin de temps machine, le RTOS le donnera à celui qui a la priorité la plus élevée.
Dans RTOS, il existe des fonctions de retard spéciales - afin que le temps ne soit pas perdu pendant le retard d'un processus, le second est exécuté.
Parlons maintenant d'une chose telle qu'un sémaphore - c'est une telle chose qui contrôle l'accès d'un processus aux ressources de l'application. Pour chaque ressource, il y a un marqueur - lorsqu'un processus a besoin d'une ressource, il la prend et utilise cette ressource. S'il n'y a pas de marqueur, le processus devra attendre qu'il soit renvoyé. Je vais donner un exemple : différents processus envoient des informations sur un UART. S'il n'y avait pas de sémaphore, ils enverraient les octets un par un et ce serait un gâchis. Et donc le premier processus a pris le marqueur sur l'UART, a envoyé un message et l'a donné au second (et ainsi de suite - à l'infini).

Bibliothèques RTOS supplémentaires.

RTOS propose souvent diverses bibliothèques pour travailler, par exemple, avec des graphiques, Internet, etc. Ils sont vraiment confortables et il ne faut pas hésiter à les utiliser. Cependant, n'oubliez pas que sans le RTOS pour lequel ils sont écrits, ils ne fonctionneront pas.
Voici quelques exemples:
Pour RTX

Système embarqué, système embarqué Un système embarqué est un système informatique spécialisé dans lequel l'ordinateur lui-même est généralement intégré à l'appareil qu'il contrôle.

Caractéristiques:

  • Très faible consommation électrique, de l'ordre de 0,5 à ~ 20 watts
  • Petite taille
  • Manque de grands systèmes d'évacuation de la chaleur (refroidissement). Souvent, le processeur n'est pas du tout refroidi ou un petit dissipateur thermique est utilisé.
  • Le processeur et la logique système, ainsi que certains autres circuits intégrés, sont souvent combinés sur un seul cristal (System On Crystal = SOC)

La base pour la construction de systèmes embarqués peut être monocarte ou monopuce microcontrôleurs, CPU spécialisés ou à usage général, FPGA. Une caractéristique intéressante de certains types de systèmes embarqués est l'utilisation de processeurs plutôt obsolètes de la famille x86 (par exemple, i386, i486, Pentium) et de leurs clones en raison de leur faible consommation d'énergie et de leur faible coût (environ 1 à 5 $). En outre, de nombreux types de systèmes embarqués utilisent des processeurs d'architecture ARM.

À l'heure actuelle, un assez grand nombre d'entreprises (y compris en Russie) produisent des ordinateurs monocartes basés sur des microcontrôleurs et des processeurs à architecture RISC. Parmi eux Advantech, AAEON, Advanced Micro Peripherals (AMP), Ampro Computers, Diamond Systems, iBASE, InnoDisk, Fastwel (Russie), Lippert, Octagon Systems, RTD Embedded Technologies, Tri-M Systems - Engineering, SanDisk, STEC. Des exemples de systèmes embarqués comprennent les distributeurs automatiques de billets, l'avionique, les PDA, les équipements de télécommunications et similaires.

Certains systèmes embarqués sont utilisés en masse (par exemple les dispositifs RFID). Les systèmes embarqués sont une cible attrayante pour les créateurs de code malveillant en raison de leur ubiquité et de leur relative absence de défense. Des codes malveillants pour les systèmes embarqués font progressivement leur apparition (Cabir, virus RFID) ; Heureusement, ce processus est toujours entravé par l'hétérogénéité des appareils embarqués, l'absence de logiciel dominant et la fonctionnalité limitée de certains types d'appareils. D'autre part, la tâche des sociétés antivirus et des chercheurs en sécurité informatique est également compliquée par ces circonstances, ainsi que par la faible puissance des systèmes embarqués, qui souvent ne permettent pas l'utilisation de logiciels antivirus courants.

Les principaux fabricants de CPU pour systèmes embarqués sont VIA technologies, Transmeta Corporation, Infineon Technologies.

Systèmes d'exploitation pour systèmes embarqués

Les systèmes embarqués utilisent environ systèmes d'exploitation en temps réel (RT OS).

Un système d'exploitation en temps réel est un système d'exploitation qui réagit à un moment prévisible à des événements externes imprévisibles. Parfois, le RTOS est appelé systèmes interactifs de disponibilité constante. Ils sont classés dans la catégorie RTOS pour des raisons de marketing, et si un programme interactif est dit « fonctionnant en temps réel », cela signifie seulement que les demandes de l'utilisateur sont traitées avec un délai invisible pour l'homme. Parfois, le concept de système temps réel est assimilé à un "système rapide", mais ce n'est pas toujours correct, car ce n'est pas le temps de retard de la réponse RTOS qui est important, mais que ce temps est suffisant pour l'application en question et c'est garanti.

Parfois, les systèmes sont distingués Temps réel « dur » et « doux »... Le système d'exploitation "hard" en temps réel garantit l'exécution de certaines actions dans un certain intervalle de temps, le système d'exploitation "soft" en temps réel, en règle générale, parvient à effectuer des actions dans un laps de temps donné, mais ne le garantit pas complètement . La plupart des logiciels sont orientés temps réel logiciel.

De tels systèmes sont caractérisés par :

  • temps de réponse garanti aux événements externes (interruptions de l'équipement);
  • un sous-système rigide pour la planification des processus (les tâches hautement prioritaires ne doivent pas être supplantées par celles de faible priorité, à quelques exceptions près) ;
  • exigences accrues pour le temps de réponse aux événements externes ou à la réactivité (le délai d'appel du gestionnaire d'interruption n'est pas supérieur à des dizaines de microsecondes, le délai de commutation de tâches n'est pas supérieur à des centaines de microsecondes)

Un exemple classique de tâche nécessitant un RTOS est le contrôle d'un robot qui prélève une pièce sur une bande transporteuse. La pièce est en mouvement et le robot n'a que peu de temps pour la ramasser. S'il est en retard, alors la pièce ne sera plus dans la section souhaitée du convoyeur, et par conséquent, le travail ne sera pas effectué, malgré le fait que le robot soit au bon endroit. Si elle est positionnée plus tôt, la pièce n'aura pas encore le temps de monter et elle bloquera son chemin.
Windows CE (alias WinCE) est une variante du système d'exploitation Microsoft Windows pour les ordinateurs de poche, les téléphones portables et les systèmes embarqués. Windows CE n'est pas une version « simplifiée » de Windows pour le bureau et est basé sur un noyau complètement différent. Les principaux inconvénients du système incluent l'absence totale des applications logicielles nécessaires. Prend en charge les architectures x86, MIPS, ARM et les processeurs Hitachi SuperH.

Les principaux concurrents de WinCE sont VxWorks, eCos, OSE, QNX, LynxOS, Symbian OS, OS-9 ainsi que divers dérivés de Linux (par ex. uClinux ) et, le plus connu, PalmOS ... Certains fabricants d'appareils fabriquent également leur propre système.

Windows CE est optimisé pour les appareils avec une mémoire minimale : le noyau Windows CE peut fonctionner sur 32 Ko de mémoire. Avec une interface graphique (GWES), Windows CE aura besoin d'au moins 5 Mo pour fonctionner. Les périphériques n'ont souvent pas de mémoire disque et peuvent être conçus comme des périphériques "fermés", sans possibilité d'extension pour l'utilisateur (par exemple, le système d'exploitation peut être "codé en dur" dans la ROM). Windows CE répond à la définition d'un système d'exploitation temps réel.

De nombreuses plates-formes sont basées sur Windows CE, notamment les ordinateurs de poche, Pocket PC, Pocket PC 2002, Pocket PC 2003, Pocket PC 2003 SE, Smartphone 2002, Smartphone 2003, Windows Mobile, ainsi que de nombreux appareils industriels et systèmes embarqués. La Sega Dreamcast était compatible avec Windows CE. Windows CE lui-même n'était pas inclus dans la livraison initiale, mais il pouvait fonctionner sur un décodeur à partir d'un CD. Certains jeux ont utilisé cette fonctionnalité.

Les noms Windows CE, Windows Mobile, Pocket PC sont souvent utilisés de manière interchangeable. Ce n'est pas tout à fait correct. Windows CE 3.0 est un système d'exploitation modulaire qui sert de base à plusieurs classes d'appareils. Tout développeur peut acheter un Platform Builder qui contient tous ces composants et programmes pour créer sa propre plate-forme. Cependant, les applications telles que Word Mobile / Pocket Word ne font pas partie de cette boîte à outils.

Windows Mobile est mieux considéré comme un ensemble de plates-formes basées sur Windows CE. Actuellement, cet ensemble comprend des plateformes : Pocket PC, SmartPhone et Portable Media Center. Chaque plate-forme utilise un ensemble différent de composants Windows CE, ainsi qu'un ensemble différent de fonctionnalités et d'applications associées.

Windows CE.net est le nom de code de Windows CE version 4.2.

Windows Embedded CE 6.0(nom de code « Yamazaki ») est la sixième version du système d'exploitation Windows Embedded, destinée aux entreprises fabriquant des contrôleurs industriels et des appareils électroniques grand public. Windows Embedded CE 6.0 possède un noyau entièrement repensé qui prend en charge plus de 32 000 processus, contre 32 dans les versions précédentes. L'espace d'adressage virtuel alloué aux processus est passé de 32 Mo à 2 Go.

Windows Embedded CE 6.0 est sorti le 1er novembre 2006.
Windows CE 6.0 R2 est sorti le 15 novembre 2007.
Windows Embedded CE 6.0 est également la base de Windows Mobile 7 (nom de code « Photon »).

QNX est un système d'exploitation commercial en temps réel compatible POSIX conçu principalement pour les systèmes embarqués. Il est considéré comme l'une des meilleures implémentations du concept de systèmes d'exploitation à micronoyau.

Comment système d'exploitation micronoyau QNX est basé sur l'idée que la plupart de ses composants fonctionnent comme de petites tâches appelées services. Cela le distingue des noyaux monolithiques traditionnels, dans lesquels le noyau du système d'exploitation est un grand programme, composé de nombreuses "parties", chacune avec ses propres caractéristiques. L'utilisation d'un micronoyau dans QNX permet aux utilisateurs (développeurs) de désactiver toute fonctionnalité dont ils n'ont pas besoin sans changer le noyau. Au lieu de cela, vous ne pouvez tout simplement pas démarrer un processus spécifique.

Le système est suffisamment petit pour tenir sur une disquette dans la configuration minimale, mais en même temps, il est considéré comme très rapide et correctement « complet » (pratiquement exempt d'erreurs).

Neutrino QNX sorti en 2001 a été porté sur de nombreuses plates-formes et est désormais capable de fonctionner sur pratiquement tous les processeurs modernes utilisés sur le marché de l'embarqué. Parmi ces plateformes, il y a des familles x86, MIPS, PowerPC, ainsi que des familles de processeurs spécialisés telles que SH-4, ARM, StrongARM et xScale.

Une version non commerciale est disponible en téléchargement sur le site Web du développeur.

LynxOS- Système d'exploitation en temps réel de type Unix conçu pour les systèmes embarqués, conforme aux normes POSIX et, plus récemment, au système d'exploitation GNU/Linux. LynxOS est principalement utilisé dans l'aviation, les systèmes de contrôle de processus industriels et les télécommunications.

ChorusOS est un système d'exploitation en temps réel à micro-noyau conçu pour les systèmes embarqués. En 1997, Sun Microsystems a acheté Chorus Systems, la société derrière ChorusOS. En août 2002, les fondateurs de Chorus Systems ont formé une nouvelle société, VirtualLogix, et ont commencé à développer des systèmes embarqués utilisant Linux et ChorusOS.

Noyau est un système d'exploitation en temps réel créé par Accelerated Systems, la division des systèmes embarqués de Mentor Graphics, pour une variété de plates-formes de processeurs. Il est largement utilisé dans les décodeurs de télévision, les téléphones portables et autres appareils portables et portables. Nucleus est utilisé par Garmin International dans un module GPS pour l'aviation civile.

OS-9 est un système d'exploitation en temps réel multitâche et multi-utilisateur développé par Microware Systems Corporation.
Utilisé pour les systèmes interactifs et embarqués. Aujourd'hui, OS-9 appartient à RadiSys Corporation basée dans l'Oregon (États-Unis).

VxWorks- un système d'exploitation temps réel (RTOS) développé par Wind River Systems (USA).
Comme la plupart des autres RTOS, VxWorks comprend un noyau de planification préemptif avec une réponse rapide aux interruptions, une communication et une synchronisation interprocessus, ainsi qu'un système de fichiers et une mise en réseau (pile de protocoles TCP/IP). Le package comprend des outils pour la compilation croisée, la surveillance des performances (WindView), le débogage symbolique à distance et l'émulation de divers processeurs. De plus, un nombre important de piles de protocoles, de sous-systèmes graphiques, etc. différents sont fournis à la fois par Wind River Systems lui-même et par des tiers. Les nombreuses plates-formes embarquées prises en charge par VxWorks sont parmi les plus étendues dans un RTOS.

La dernière version de l'IDE Wind River Workbench (livré avec VxWorks 6.x ainsi que 5.x) s'appuie sur le framework Eclipse. L'environnement de développement propriétaire précédent s'appelait Tornado.

Usage:

  • Mars Reconnaissance Orbiter en orbite martienne (en utilisant le système VxWorks)
  • Les sondes Spirit et Opportunity et le Mars Reconnaissance Orbiter utilisent VxWorks sur la plate-forme POWER. Le système est également utilisé dans d'autres missions spatiales, telles que Deep Impact.
  • Prévu pour être utilisé dans les derniers avions de ligne Boeing 787.
  • Équipements de communication de nombreuses entreprises (par exemple, Nortel, 3COM, Alcatel, etc.).
  • Linksys WRT54G (ver.5,6, ...), NetGear WGR614 (ver. 5,6,7)
  • Certaines imprimantes PostScript.
  • Équipements médicaux de Siemens AG (en particulier, appareils d'imagerie par résonance magnétique).
  • Derniers systèmes d'interface BMW iDrive

OS2000- Système d'exploitation en temps réel (OS RT) développé par NIISI RAS sur ordre du ministère de la Défense de la Fédération de Russie pour les microprocesseurs MIPS et Intel.
Ce système d'exploitation RT est conçu pour développer des logiciels pour des systèmes (complexes logiciels et matériels) fonctionnant en temps réel dur.
Prise en charge de l'appareil :

  • Périphériques réseau Ethernet (protocoles NFS, FTP, Telnet), pour la version Intel, la prise en charge est limitée aux cartes ISA et PCI de Realtek, cartes compatibles NE2000.
  • périphériques de stockage - disquettes et disques durs (systèmes de fichiers vfat et tar)

Il existe un support pour le système X Window, un sous-système graphique client-serveur utilisé dans les systèmes Unix.

Un RTOS fournit au développeur un cadre sur lequel les éléments du système sont construits et organisés. En fait, les avantages s'étendent bien au-delà de l'aspect temps réel - même pour les systèmes qui n'en ont pas besoin, car le programme peut être beaucoup mieux organisé s'il est basé sur un RTOS.


L'intégration RTOS vous permet de résoudre de nombreux problèmes pouvant survenir avec un programme d'application, car elle permet le multitâche et vous permet de diviser l'application en plus petites parties (tâches). Chaque tâche obtient sa propre priorité en fonction de son importance, et la planification préférentielle garantit que le microcontrôleur exécutera la tâche qui a la priorité la plus élevée parmi les tâches prêtes à être exécutées. Dans la plupart des cas, l'ajout d'une tâche moins prioritaire n'affecte pas la réactivité du système aux tâches plus prioritaires.


Actuellement, les microcontrôleurs basés sur ARM et Cortex sont disponibles à peu près au même prix que les microcontrôleurs 8 ou 16 bits. L'opérabilité supplémentaire qu'ils offrent signifie que le système spécialisé s'adaptera parfaitement au fonctionnement du RTOS. De plus, la complexité accrue des applications modernes bénéficiera des projets RTOS. Cependant, le microcontrôleur doit avoir au moins 16 à 32 Ko de mémoire flash ou de programme afin d'utiliser le RTOS avec succès.

SELECTIONNER LES RTOS

Un RTOS n'est qu'un élément d'un écosystème de développement complet. Cette complexité, associée à la large gamme de produits disponibles, soulève de nouvelles questions. Le concepteur doit décider quel RTOS est idéal pour l'application et quel RTOS est idéal pour le microcontrôleur. Espérons que ce soit la même chose dans les deux cas. De plus, le développeur doit sélectionner des outils de programmation et de débogage qui fonctionnent bien sous le RTOS sélectionné. Heureusement, il existe aujourd'hui des sources d'informations objectives disponibles pour les développeurs pour les aider à répondre aux questions susmentionnées.

HAUTE PRIORITÉ / FAIBLE PRIORITÉ

Le principal problème des systèmes en temps réel est le temps nécessaire pour répondre à une interruption et exécuter un code personnalisé (tâches) pour traiter l'interruption. Les systèmes non RTOS sont appelés avant-plan/arrière-plan et fonctionnent comme le montre la figure 1. L'application appelle des modules pour effectuer les opérations souhaitées : les modules de faible priorité sont exécutés séquentiellement dans la boucle principale du programme et les interruptions gèrent les événements asynchrones de haute priorité. Les applications typiques effectueront beaucoup d'interrogations et le programme deviendra désordonné à mesure que l'application grandira. Sans RTOS, vous devez également implémenter vous-même des services utiles, tels que des temporisations et des minuteries, qui sont nécessaires pour exécuter un programme avec de nombreuses machines d'état.

Image 1

MULTI-TÂCHES

Le multitâche est le processus de planification et de commutation d'un processeur entre plusieurs tâches qui partagent le processeur. L'un des aspects les plus importants du multitâche est qu'il permet au programmeur d'applications de contrôler la complexité inhérente aux applications modernes. Un RTOS peut faciliter la conception et la maintenance des programmes d'application en gérant les tâches et en transférant les informations entre elles.

Lorsque le système doit démarrer une autre tâche en raison d'un événement plus important, le contenu actuel des registres du processeur est enregistré dans le cadre de la tâche en cours. Le contexte d'une nouvelle tâche (plus importante) est restauré à son état précédent avant d'exécuter son code. Cette procédure est effectuée par ce que l'on appelle un commutateur de contexte ou un commutateur de tâches. Le sommet actuel de la pile pour chaque tâche, ainsi que d'autres informations, est stocké dans une structure de données appelée Task Control Block, qui est gérée par le RTOS.

PLANIFICATION

L'ordre dans lequel les tâches sont exécutées est déterminé par le planificateur ou le répartiteur. Il existe deux types d'ordonnanceurs : coopératif (non préemptif) et préemptif (préemptif).


Dans un ordonnanceur coopératif, les tâches interagissent (coopèrent) les unes avec les autres pour prendre le contrôle du processeur : lorsqu'une tâche libère le processeur, le noyau exécute le code de la prochaine tâche la plus importante, prête à être exécutée. Les événements asynchrones sont toujours servis par les gestionnaires d'interruptions, ce qui peut préparer une tâche de haute priorité à être exécutée, mais le gestionnaire d'interruptions revient toujours à la tâche interrompue. Une nouvelle tâche de priorité plus élevée n'aura accès au processeur que lorsque la tâche en cours libère volontairement le processeur, comme le montre la figure 2.

image 2

Lorsque, dans l'ordonnanceur préemptif illustré à la figure 3, un gestionnaire d'événement ou d'interruption rend une tâche de priorité plus élevée prête à être exécutée, la tâche en cours est immédiatement suspendue et la tâche de priorité plus élevée accède au processeur. La plupart des systèmes temps réel utilisent des ordonnanceurs préemptifs car ils répondent plus rapidement que les noyaux coopératifs.

image 3

RESSOURCES

L'avantage évident d'utiliser un RTOS est qu'il réduit le temps de mise sur le marché en simplifiant le développement sans consommer beaucoup de ressources processeur. L'uC / OS-II de Micrium, par exemple, n'utilise que 6 à 24 Ko de mémoire de programme et 1 à 8 Ko de mémoire de données sur les appareils ARM. Sur les petites plates-formes 8 ou 16 bits, les coûts sont encore plus bas - seulement 4 à 16 Ko de mémoire programme.


En règle générale, un RTOS a une caractéristique déterministe, c'est-à-dire qu'un ensemble donné de tâches critiques peut être entièrement achevé dans un délai donné. L'interrogation est évitée en effectuant des tâches uniquement lorsque des événements se produisent. Les tâches en attente d'événements ne consomment pas de cycles processeur.

AVANTAGES COMMERCIAUX DE L'OSRV

Certaines entreprises utilisent leur propre RTOS, mais leurs systèmes peuvent souffrir d'un manque de documentation et de tests approfondis. Le RTOS natif ne peut généralement pas être porté sur d'autres processeurs et leur code est souvent imparfait. Pire encore, si le concepteur qui les a créés quitte l'entreprise, le système peut être impossible à maintenir.


Un RTOS commercial est utilisé dans des centaines, voire des milliers de projets, et repose sur un code éprouvé pour garantir son bon fonctionnement. L'uC / OS-II de Micrium est certifié FAA / FDA / IEC, ce qui le rend adapté à une utilisation dans l'électronique aéronautique, la médecine et d'autres types d'applications critiques pour la sécurité. Même si un appareil n'a pas besoin de la fiabilité d'un RTOS certifié pour l'électronique d'aviation, il est toujours bon de savoir que le RTOS a subi des tests approfondis. uC / OS-II est également très mobile et peut fonctionner sur plus de 45 processeurs différents. Le code d'application peut être facilement porté (porté) d'une architecture 8 bits à 32 bits et même vers DSP. L'utilisateur bénéficie d'une assistance et d'une documentation complètes.


La plupart des services dont une application peut avoir besoin sont déjà intégrés dans le RTOS. Parmi eux:

Gestion du temps - temporisations et minuteries
- Gestion des tâches - créer, supprimer, suspendre, reprendre
- Exclusions mutuelles
- Messagerie
- Transmission de signaux

Les avantages de l'utilisation d'un RTOS sont mis en évidence par la disponibilité d'un portefeuille complet de composants micrologiciels (logiciels) ainsi que d'intergiciels, notamment une pile TCP / IP, une pile USB, une pile CANbus, UART, des systèmes de fichiers et une interface utilisateur graphique. Bien entendu, certains composants peuvent nécessiter des performances plus rapides que les processeurs bas de gamme.

Deux piliers de l'industrie RTOS commerciale rendent le démarrage encore plus facile. De nombreux RTOS, y compris uC / OS-II, sont désormais vendus sans redevance, ce qui est beaucoup plus rentable que l'utilisation de RTOS, qui nécessitent des paiements de redevances continus. Souvent, le RTOS est inclus, dans le cas d'un achat de licence, dans de nombreux kits de démarrage (kits de démarrage MCU).

CONCLUSION

Un RTOS est un outil précieux qui simplifie le développement de la plupart des applications embarquées - en temps réel ou non - et permet d'ajouter de nouvelles fonctionnalités sans nécessiter de modifications logicielles majeures. Compte tenu de la faible surcharge du système, un RTOS est actuellement justifié dans de nombreux petits systèmes embarqués 8 et 16 bits, ainsi que dans les systèmes dotés de processeurs 32 bits ou plus puissants.
Vous avez aimé l'article ? Partager avec des amis: