Zephyr OS, un nouvel RTOS pour 6TRON

Depuis sa création, 6TRON cherche à simplifier le développement sur cibles embarquées par l’usage d’un système d’exploitation temps réel (RTOS) modulaire, comprenant de nombreuses API et cibles matérielles : Arm Mbed OS.

Mais Arm a annoncé officiellement cet été l’arrêt de son développement et le retrait de l’ensemble des ressources au 30 août 2026, nécessitant le choix d’un nouvel OS pour 6TRON.

En prévision de cet arrêt, l’équipe 6TRON a débuté la migration de ses cartes Zest vers un autre RTOS : Zephyr OS, un projet open-source et collaboratif, sous l’égide la Linux Foundation, déjà très complet et dont le développement ne cesse de progresser.

Abandon progressif de Mbed OS

Si l’annonce de Arm a été publiée en août 2024, l’arrêt des développements s’est fait progressivement :

  • Changement de gouvernance en octobre 2019, pour permettre aux partenaires (NXP, STMicroelectronics, Silicon Labs, etc.) d’avoir plus d’influence dans les choix de développement.

  • Arrêt de développement de Mbed CLI, tentative de développement de Mbed CLI 2 annoncée en 2020, mais jamais terminé.

  • Annulation de la procédure en cours d’acquisition de Arm par Nvidia en janvier 2022

  • Arrêt de la mise à jour du blog depuis le 22 avril 2022

  • Fork agressif depuis août 2022 par un des membres de la communauté

  • Enfin, en février 2023, l’annonce de l’arrêt des développements depuis janvier 2022 est faite sur son forum :

Unfortunately, Mbed OS is a maintenance mode from January 2022, the development of new features and bugfixes by ARM stopped. Bugfixes from community side are still being accepted, but nothing more.

La transition à Zephyr OS ne veut pas dire que nous ne supportons plus Mbed OS. Par contre, nos développements se limiteront principalement à la correction de bugs sur les cartes existantes et au support client. Comme les fabricants ne porteront pas leurs microcontrôleurs, nos prochaines Zest_Core ne supporteront pas Mbed OS.

Choix d’un nouvel OS

Un grand nombre de RTOS open-source existent avec des couvertures très variées en termes d’architectures, de cibles ou de fonctionnalités, par exemple :

  • Apache NuttX
  • Eclipse ThreadX (anciennement Azure RTOS)
  • FreeRTOS
  • RETMS
  • RIOT
  • Zephyr RTOS
  • etc.

Les échanges que nous avons pu avoir au cours des dernières années avec l’industrie nous ont particulièrement orienté vers trois de ces RTOS, particulièrement populaires : ThreadX, Zephyr et FreeRTOS.

ThreadX, développé initialement par Express Logic a été racheté par Microsoft mi-2019, puis abandonné et rendu open-source sous l’égide de l’Eclipse Foundation fin 2023. La couverture matérielle faible de cet OS et le modèle de distribution actuel de ThreadX, via l’environnement de développement de chacun des fabricants participants (uniquement STMicroelectronics, NXP, Renesas et Microchip), ne répond pas au besoin d’universalité des outils de 6TRON.

L’équipe en charge du développement de FreeRTOS a été rachetée par Amazon en 2017, qui est seul en charge de la gouvernance du projet. FreeRTOS ne fournit pas de drivers, mais dispose de quelques bibliothèques liées au réseau.

Zephyr OS a quant à lui, vu son nombre de plateformes et fonctionnalités supportées augmenter très rapidement depuis son passage en open-source sous l’égide la Linux Foundation en 2016. Supporté par la plupart des fabricants de microcontrôleurs, il est même utilisé comme seul outil de développement par Nordic Semiconductors.

Zephyr a un positionnement proche de Mbed OS : le support est ajouté par les différents fabricants et se base sur leurs implémentations (STM32Cube pour STMicroelectronics par ex). Un grand nombre d’API existent, la gouvernance et le développement sont ouverts et ne dépendent pas d’un unique acteur.

Le nombre de contributeurs actif est un indicateur intéressant pour un projet open-source. Avec la complexité croissante des systèmes embarqués, la mise en commun des ressources de développement est essentielle. Là encore, GitHub permet d’avoir une vision de la communauté entourant chaque projet :

Ce nombre important et croissant de contributeurs a permis à Zephyr OS d’avoir, à ce jour, la plus grande couverture en fonctionnalités, drivers et cibles des RTOS open-source.

Support de Zephyr OS dans 6TRON

Après des essais d’intégration réalisés avec succès fin 2023, l’équipe 6TRON a commencé le port des cartes Zest en 2024. La première livraison, en février, comprenait déjà quelques cartes et drivers, et la livraison d’août ajoute le support de l’ensemble des cartes programmables (Zest_Core et objets intégrés Z). Le support des cartes d’extension et des drivers est en cours, avec des livraisons régulières prévues dans les prochains mois.

Dans 6TRON, le choix a été fait de rendre disponible un « module Zephyr » regroupant l’ensemble des développements compatibles avec une version donnée de Zephyr, et chaque développement reste accessible individuellement dans un dépôt séparé.

L’ajout du module 6TRON à un workspace permet donc d’accéder directement au support de toutes les Zest_Core, Zest et drivers disponibles. L’adresse de son dépôt est :

La version du module, sur le format x.y.z+<année><mois> indique la version de Zephyr supportée (x.y.z), et la date de la version.

Démarrer avec Zephyr OS

Pour simplifier la mise en œuvre et le développement d’applications simples, un « espace de travail Zephyr » comprenant la dernière version supportée de Zephyr et le module 6TRON est disponible sur le dépôt :

Le nommage des versions est le même que pour le module 6TRON.

D’un point de vue pratique, les développements bas niveau sont en C et les applications peuvent être en C ou en C++.

L’outil de build utilisé est west, l’équivalent de mbed, et nous avons configuré chacune de nos cartes pour qu’on puisse directement faire un west flash pour programmer la carte.

Pour débuter, un guide de démarrage rapide est disponible sur le site de 6TRON à cette adresse :

Pour creuser les différents concepts ou trouver des ressources plus détaillées, la documentation officielle est très complète :
https://docs.zephyrproject.org/latest/

Nous espérons que ce choix vous satisfera autant que nous !
Toute l’équipe se tient disponible via ce forum pour vous assister dans cette transition vers ce nouvel OS très prometteur.