Plan du cours
Démarrage avec Embedded Rust
- Aperçu de no_std, core et de l'écosystème Rust embarqué
- Choix d'une cible et compréhension des triplets cibles
- Configuration de rustup, cargo et des chaînes d'outils cibles
Outils, flux de construction et de débogage
- Utilisation de cargo, cargo-embed, probe-run et des workflows OpenOCD
- Programmation et débogage avec des sondes matérielles (ST-Link, JLink)
- Considérations CI pour la construction de firmware Rust embarqué
Abstraction matérielle et accès aux périphériques
- Compréhension des traits embedded-hal et des modèles de pilotes
- Crates d'accès aux périphériques (PACs) et crates de dispositifs (svd2rust)
- Écriture et utilisation de pilotes HAL et de crates de support de carte (BSCs)
Sécurité mémoire, concurrence et temps réel
- Modèles sûrs pour l'état partagé et les références mutables dans les interruptions
- RTIC et autres modèles de concurrence pour les systèmes en temps réel
- Utilisation du tas vs. de la pile, gestionnaires d'allocation et évitement de l'allocation dynamique
Gestion des erreurs, tests et fiabilité
- Modèles de gestion des erreurs dans les environnements contraints
- Tests unitaires sur l'hôte vs. tests d'intégration sur le matériel
- Analyse des pannes, journalisation et stratégies post-mortem
Performance, consommation électrique et optimisation des ressources
- Benchmarking, mesure et optimisation des chemins chauds
- Techniques de réduction de la taille du code et scripts de liens
- Stratégies de gestion de l'alimentation et modèles de conception à faible consommation
Déploiement, sécurité et meilleures pratiques de l'écosystème
- Démarrage sécurisé, signature de firmware et stratégies de mise à jour
- Considérations sur la chaîne d'approvisionnement et la gestion des dépendances
- Feuille de route pour migrer du firmware C vers Rust et ressources communautaires
Résumé et étapes suivantes
Pré requis
- Une compréhension des concepts de base de Rust : propriété, emprunt, durées de vie
- Une expérience dans l'écriture de programmes non triviaux en Rust (niveau intermédiaire)
- Une familiarité avec les concepts embarqués : E/S mappées en mémoire, interruptions, périphériques
Audience
- Ingénieurs logiciel embarqué souhaitant adopter Rust
- Ingénieurs logiciel avec une expérience en Rust transitionnant vers les systèmes de bas niveau
- Chefs de projet évaluant Rust pour le développement de produits embarqués
Nos clients témoignent (5)
Il répond à mes questions très bien expliquées.
Khaled Almarzooqi - Beamtrail
Formation - Circuits and Electronics Fundamentals
Traduction automatique
Sean était un orateur dynamique et les exercices pratiques étaient très intéressants, je peux voir comment ils seront vraiment applicables.
Temira Koenig - Yeshiva University
Formation - Raspberry Pi for Beginners
Traduction automatique
Le formateur était vraiment gentil et bien informé, il a fait un effort supplémentaire pour m'expliquer des choses que je ne connaissais pas.
Felix - Microchip Technology Inc
Formation - Embedded C Application Design Principles for Automotive Professionals
Traduction automatique
L'acquisition de connaissances utiles et la clarification de certaines choses dont j'étais incertain précédemment.
Kenneth Mahoney - University of Glasgow
Formation - Arduino: Programming a Microcontroller for Beginners
Traduction automatique
J'ai vraiment apprécié les connaissances du formateur.
Aaron Swift - ITW Hobart
Formation - FreeRTOS: Programming for Real Time Operating Systems
Traduction automatique