Programmation avec nRF Connect SDK
Objectives
|
- Theoretical course
- PDF course material (in English) supplemented by a printed version.
- The trainer answers trainees' questions during the training and provide technical and pedagogical assistance.
- Practical activities
- Practical activities represent from 40% to 50% of course duration.
- Code examples, exercises and solutions
- One PC (Linux ou Windows) for the practical activities with, if appropriate, a target board.
- One PC for two trainees when there are more than 6 trainees.
- For onsite trainings:
- An installation and test manual is provided to allow preinstallation of the needed software.
- The trainer come with target boards if needed during the practical activities (and bring them back at the end of the course).
- Downloadable preconfigured virtual machine for post-course practical activities
- At the start of each session the trainer will interact with the trainees to ensure the course fits their expectations and correct if needed
- Good C programming skills (see our L2 - C language for Embedded MCUs course)
- Total: 5 days
- From 40% to 50% of training time is devoted to practical activities
- Some Labs may be completed between sessions and are checked by the trainer on the next session
- Cours théorique
- Support imprimé et PDF (en anglais).
- Assistance du formateur tout au long de la formation.
- Chaque session débute par un point avec les stagiaires.
- Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
- Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
- Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
- À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.
Plan du cours
- Le projet Zephyr
- L'écosystème Zephyr
- Pourquoi utiliser Zephyr
- Installer et utiliser Zephyr
- Systèmes de compilation et de configuration
- West
- CMake
- Zephyr SDK
- Composants et structure d'une application
- Le manifeste West
- Présentation
- Kconfig
- Configuration par défaut
- Outils de configuration interactifs
- Fragments de configuration
- Devicetree
- Syntaxe
- Propriétés standard
- Source initiale du devicetree
- Accès au devicetree depuis le code source
- Bonnes pratiques
- Fonctionnement sans threads
- Le sous-système GPIO
- Utilitaires
- Container_of
- For_each
- Structures de données
- Liste simplement chaînée
- Liste doublement chaînée
- Ring buffers
- Fondamentaux des threads
- Thread Control Block
- Création de threads
- Priorités des threads
- Modification de la priorité d'un thread
- États d'un thread
- Threads main et idle
- Temporisations
- Suspension des threads
- Structures du noyau
- Ready queue en liste simplement chaînée
- Ready queue en arbre rouge/noir
- Ready queue multi-files traditionnelle
- Données personnalisées de thread
- Statistiques à l'exécution
- Traces d'ordonnancement
- Traçage défini par l'utilisateur
- Percepio Tracealyzer
- Les gestionnaires mémoire
- Gestionnaires de mémoire dynamique
- K_heap
- System heap
- Memory Slabs
- Memory Blocks
- Heap Listeners
- Pools de ressources de thread
- Rapports RAM/ROM
- Informations sur la stack
- Détection des débordements de stack
- Analyse de la stack
- Présentation
- Domaines mémoire
- Partitions
- Applications logiques
- Appels système
- Objets du noyau
- Permissions
- Exclusion mutuelle
- Mutex
- Threads gardiens
- Sections critiques
- Opérations atomiques
- SpinLocks
- Semaphores
- Événements
- Scrutation (polling)
- Files de messages
- Files
- FIFO
- LIFO
- Boîtes aux lettres
- Pipes
- Piles
- Zephyr Bus (Zbus)
- Présentation de Zbus
- Éléments
- Utilisation
- Threads et interruptions
- Les interruptions dans zephyr
- Interruptions sur ARM Cortex-M
- Thread de traitement (handler)
- Les files de messages dans une ISR
- Threads de workqueue
- Les timers
- Définir un timer
- Utiliser une fonction d'expiration de timer
- Types de timers
- Timers one-shot
- Timers auto-reload
- Commandes des timers
- Pourquoi utiliser des modules ?
- Structure d'un module
- Module out-of-tree
- Fichiers YAML
- Le CMakeLists.txt du module
- Avantages
- Les options Kconfig dans Zephyr RTOS
- Le système de configuration
- Écrire des options Kconfig personnalisées
- Extension de Kconfig
- Utiliser les Kconfig
- Introduction aux drivers de périphériques
- Présentation du modèle de driver de Zephyr
- Drivers standard
- La struct device
- Sous-systèmes
- Extensions d'API
- Niveaux d'initialisation
- Dépendances entre drivers de périphériques
- Définir des périphériques par programmation
- Présentation du Device Tree (DT) et de son rôle dans Zephyr
- Device Tree contre Kconfig
- Structure d'un nœud de Device Tree
- Les bindings de Device Tree
- Fichiers overlay et yaml
- API d'accès aux propriétés du device tree
- Écrire des drivers avec les API de device tree
- Le Device Tree dans Zephyr et sous Linux
- Ajouter du code in-tree au code source de Zephyr
- Propriétés courantes
- compatible
- reg
- interrupts
- Présentation
- Gestion de l'énergie du système
- Gestion de l'énergie des périphériques
- Gérée par le système
- À l'exécution
- Domaines d'énergie
Plus d'information
Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.
Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter
Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription
Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.
Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.
Dernière mise à jour du plan de cours : 2 juillet 2026
L'inscription à nos formations est soumise à nos Conditions Générales de Vente
Sur le même sujet :
Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué