Aller au contenu

Les besoins pour un système d'exploitation temps réel (RTOS)

Une question qui se pose pour développer une application embarquée: devons-nous utiliser un système d’exploitation (OS) ? La réponse dépend évidemment de beaucoup de facteurs, mais dans tous les cas les points suivants doivent être considérés:

  • Le besoin d’un certain niveau d’abstraction du matériel est évident. Le matériel est spécifique à chaque fabricant, même si ces fabricants adoptent un standard d’architecture comme ARM. La manipulation du matériel exige non seulement des connaissances de programmation, mais également une connaissance précise du matériel. Plus le niveau d’abstraction est élevé, moins le programmeur doit se soucier des détails de chaque matériel sur lequel le programme doit fonctionner.

  • Programmer une application en suivant le modèle super-loop (boucle d’événements séquentiels infinie) limite les possibilités de développement d’applications modulaires facilement testables. Il est nécessaire de pouvoir modéliser une application en tâches concurrentes communiquant entre elles.

Choix d’un système d’exploitation

Il existe beaucpoup de systèmes d’exploitation pour les systèmes embarqués.

Pour ce cours, nous avons choisi FreeRTOS pour les raisons suivantes :

  • Il est très populaire et il y a une grande communauté active
  • Il est également disponible sur d’autres microcontrolleurs (ESP32)
  • La documentation est très bonne
  • C’est le système d’exploitation par défaut avec STM32Cube

Dans d’autres cours, c’est MBedOS qui a été choisi. Les avantages de MbedOS sont les suivants :

  • L’interface est en C++
  • Le système couvre aussi la partie “HAL” et on n’a plus besoin de bibliothèque telle que STM32Cube
  • Le niveau d’abstration est plus haut et l’utilisation des classes est plus simple que l’utilisation à STM32Cube

Mais il y a aussi dans MbedOS des choses qui me déplaisent :

  • Ils ont fait des choix qui ne correspondent pas au matériel (par exemple le timer 5 n’est pas disponible par défaut et on ne peut pas avoir de PWM sur le 7-segments sans entreprendre des changements considérables)
  • L’interface C++ ne correspond pas à ma manière de penser.
  • Le système s’adresse aux processeurs ARM uniquement et n’est pas disponible pour d’autres microcontrolleurs (par exemple ESP32)

De plus, ARM a annoncé en juillet 2024 que MbedOS est en fin de vie et que le support sera arrêté en juillet 2026.

Une alternative actuelle est Zephyr, un système d’exploitation temps réel open-source pour les appareils connectés, qui est également supporté par la Fondation Linux.

Selon Wikipedia, en janvier 2025, Zephyr est le système d’exploitation avec le plus grand nombre de contributeurs comparé aux autres systèmes d’exploitation temps réel.