4 points par GN⁺ 2026-01-10 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Framework de nouvelle génération conçu pour développer rapidement des applications embarquées sûres et efficaces
  • Assure la sécurité mémoire et des threads à la compilation sans runtime ni garbage collector, et permet le multitâche sans RTOS
  • Prend en charge divers microcontrôleurs avec des fonctions clés comme le HAL, le réseau, le Bluetooth, l’USB et le bootloader
  • Conçu pour la basse consommation avec un executor à priorités, en prenant en compte à la fois le traitement temps réel et l’autonomie sur batterie
  • S’impose comme la plateforme de référence du développement embarqué asynchrone associée à l’écosystème Rust

Présentation d’Embassy

  • Embassy est un framework de nouvelle génération permettant d’écrire des applications embarquées de manière sûre et efficace grâce à Rust et aux fonctionnalités async
    • Fonctionne sans runtime, garbage collector ni système d’exploitation
    • Garantit la sécurité mémoire et des threads à la compilation

Architecture basée sur Rust + async

  • Grâce à la fonctionnalité async/await de Rust, Embassy met en œuvre un multitâche efficace dans les environnements embarqués
    • Les tâches sont transformées à la compilation en machines à états (state machines) et exécutées de façon coopérative
    • Aucune allocation mémoire dynamique nécessaire, exécution sur une pile unique
    • Permet d’obtenir un code plus rapide et plus compact sans changement de contexte d’un RTOS
  • Les documents liés mentionnent une supériorité de performances par rapport à un RTOS

Composants principaux (Batteries Included)

  • Couche d’abstraction matérielle (HAL)
    • Contrôle des fonctions matérielles via une API Rust sûre
    • Principales cibles prises en charge : STM32, nRF, RP2040, MSPM0, ESP32, CH32, PolarFire SoC, PY32
  • Gestion du temps (embassy-time)
    • Fournit des types Instant, Duration, Timer utilisables globalement, sans débordement
  • Prise en charge du temps réel et de la basse consommation
    • Possibilité de créer plusieurs executors pour une exécution des tâches basée sur les priorités
    • En veille, le cœur passe automatiquement en mode économie d’énergie, avec réveil basé sur les interruptions
  • Réseau (embassy-net)
    • Prend en charge Ethernet, IP, TCP, UDP, ICMP, DHCP
    • La structure asynchrone simplifie la gestion des timeouts et le traitement de multiples connexions
  • Bluetooth
    • Prend en charge divers stacks BLE comme trouble, nrf-softdevice, embassy-stm32-wpan
  • LoRa, USB, Bootloader
    • Prise en charge du stack LoRaWAN avec lora-rs
    • embassy-usb implémente les classes USB CDC et HID
    • embassy-boot prend en charge des mises à jour de firmware sûres même en cas de coupure d’alimentation

Spécifications techniques et licence

  • Version minimale de Rust prise en charge (MSRV) : 1.75 ou supérieure
  • Licence : au choix entre Apache-2.0 et MIT
  • Le nom du projet est l’abréviation de « EMBedded ASYnc »

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.