Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Durée 14 heures
Plan du cours
Démarrage avec le Rust embarqué
- Aperçu de l'écosystème Rust embarqué : no_std, core et éléments associés
- Choix d'une cible et compréhension des triplets de cible (target triples)
- 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 flux de travail OpenOCD
- Flashage et débogage avec des sondes matérielles (ST-Link, JLink)
- Considérations CI pour la construction du 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 (PAC) et crates de périphériques (svd2rust)
- Écriture et utilisation de pilotes HAL et de crates de prise en charge des cartes (BSC)
Sécurité mémoire, concurrence et temps réel
- Modèles sûrs pour les états partagés et les références mutables dans les interruptions
- RTIC et autres modèles de concurrence pour les systèmes temps réel
- Utilisation du tas (heap) et de la pile (stack), allocateurs et éviter l'allocation dynamique
Gestion des erreurs, tests et fiabilité
- Modèles de gestion des erreurs dans des environnements contraints
- Tests unitaires sur l'hôte par rapport aux tests d'intégration sur le matériel
- Analyse des pannes, journalisation et stratégies de post-mortem
Performance, alimentation et optimisation des ressources
- Benchmarks, mesure et optimisation des chemins critiques (hot paths)
- Techniques de réduction de la taille du code et scripts de liens (linker scripts)
- 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
- Secure boot, signature du firmware et stratégies de mise à jour
- Considérations sur la chaîne d'approvisionnement et gestion des dépendances
- Feuille de route pour migrer un firmware C vers Rust et ressources communautaires
Résumé et prochaines étapes
Pré requis
- Compréhension des concepts fondamentaux de Rust : propriété, emprunts, temps de vie (lifetimes)
- Expérience dans la rédaction de programmes Rust non triviaux (Rust intermédiaire)
- Familiarité avec les concepts embarqués : E/S mappées en mémoire, interruptions, périphériques
Public cible
- Ingénieurs firmware embarqué souhaitant adopter Rust
- Ingénieurs logiciels possédant une expérience en Rust et passant aux systèmes bas niveau
- Responsables techniques évaluant Rust pour le développement de produits embarqués
Nos clients témoignent (1)
Pouvoir demander des sujets avancés même s'ils n'étaient pas prévus initialement.
Gabriel Chouinard - Spark Microsystems
Formation - FreeRTOS: Programming for Real Time Operating Systems
Traduction automatique