STM32 + FreeRTOS + LwIP
Objectifs
|
||||||
- Cours théorique
- Support de cours imprimé et au format PDF (en anglais)
- Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique
- Activités pratiques
- Les activités pratiques représentent de 40% à 50% de la durée du cours
- Elles permettent de valider ou compléter les connaissances acquises pendant le cours théorique.
- Un PC pour deux stagiaires pour les activités pratiques
- Une plateforme cible (base STM32) pour deux stagiaires (sauf en cas d'utilisation de qemu)
- Accès à un serveur cloud privé
- Exemples de code, exercices et solutions
- Le formateur assiste les stagiaires pendant les exercices
- Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
- Familiarité avec les concepts C et la programmation visant le monde embarqué
- Connaissance de base des processeurs embarqués
- Connaissance de base de l'ordonnancement multi-tâches
- Les cours suivants pourraient vous intéresser :
- 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
- Présentation de l'architecture V7-M
- Architecture du cœur
- Architecture Harvard, I-Code, D-Code et bus système
- Write Buffer
- Bit-Banding
- Registres (deux pointeurs de pile)
- États
- Différents modes d'exécution et niveaux de privilège
- System Control Block
- Timer Systick
- Présentation de la MPU
- Programmation
- Alignement et boutisme
- Bibliothèque CMSIS
- Présentation du mécanisme d'exception / interruption
- Table des vecteurs
- Présentation de l'entrée et du retour d'interruption
- Tail-Chaining
- Préemption (imbrication)
- Contrôleur d'interruptions intégré NVIC
- Gestion des priorités d'exception
- Escalade des fautes
- Interface de débogage
- Architecture basée sur un cœur ARM
- Description de l'architecture du SoC STM32Fx
- Clarification des chemins internes de données et d'instructions : Bus Matrix, interconnexion AHB-lite, bus périphériques, ponts AHB-to-APB, DMA
- Organisation de la mémoire
- Interface de lecture de la mémoire Flash
- Accélérateur mémoire Adaptive Real-Time, file de préchargement d'instructions et branch cache
- Effacement par secteur et effacement total
- Accès concurrents aux blocs de RAM
- Cartographie du SoC
- Méthodes de programmation de la Flash
- Configuration de boot
- Reset
- Sources de reset
- Configuration de boot, remap physique
- Boot loader intégré
- Horloges
- Sources d'horloge, HSI, HSE, LSI, LSE
- PLL intégrées
- Sorties d'horloge
- Système de sécurité d'horloge
- Contrôle de l'alimentation
- Alimentations, régulateur intégré
- Domaine sauvegardé par batterie, SRAM de sauvegarde
- Alimentation et tension de référence indépendantes du convertisseur A/N
- Superviseur d'alimentation
- Brownout reset
- Détecteur de tension programmable
- Modes basse consommation
- Entrée dans un mode basse consommation, WFI et WFE
- Mode Sleep
- Mode Stop
- Mode Standby
- Architecture à double bus maître AHB, l'un dédié aux accès mémoire et l'autre aux accès périphériques
- 8 streams par contrôleur DMA, jusqu'à 8 canaux (requêtes) par stream
- Priorités entre les requêtes de stream DMA
- Structure FIFO
- Largeurs de transfert source et destination indépendantes
- Gestion de buffer circulaire
- Mode double buffer
- Cartographie des requêtes DMA1 et DMA2
- Broches d'alimentation
- Brochage
- Multiplexage des broches, fonctions alternatives
- Module GPIO
- Configuration d'un GPIO
- Sélection de la vitesse
- Mécanisme de verrouillage
- Fonction analogique
- Pull-up / pull-down intégrés
- Multiplexeur et cartographie des broches d'E/S
- Contrôleur de configuration système
- Cellule de compensation d'E/S
- Sélection des interruptions externes / lignes de réveil
- Sélection de l'interface PHY Ethernet
- Interruptions externes
- Résolution configurable 12 bits, 10 bits, 8 bits ou 6 bits
- Groupe de canaux réguliers et groupe de canaux injectés
- Modes de conversion simple et continue
- Mode scan
- Option de déclenchement externe à polarité configurable, pour les conversions régulières comme injectées
- Mode discontinu
- Watchdog analogique
- Mode double/triple (sur les composants à 2 ADC ou plus)
- Délai configurable entre conversions en mode double/triple entrelacé
- Génération de requêtes DMA pendant la conversion des canaux réguliers
- Timers de contrôle avancé TIM1 et TIM8
- Compteur 16 bits avant, arrière, avant/arrière avec auto-reload ; prédiviseur programmable 16 bits
- Input Capture, Output Compare, génération de PWM, mode One-pulse
- Circuit de synchronisation / Contrôle des signaux externes des timers / Interconnexion de plusieurs timers
- Génération d'interruptions/DMA
- Horloge temps réel
- Timer/compteur BCD indépendant ; prédiviseur programmable 16 bits
- Compensation de l'heure d'été programmable par logiciel
- Deux alarmes programmables avec fonction d'interruption
- Unité de réveil automatique
- Détection de l'horloge de référence / Circuit de calibration numérique
- Détection d'intrusion
- Introduction à FreeRTOS
- L'architecture et les fonctionnalités de FreeRTOS
- Obtenir le code source de FreeRTOS
- Structure des fichiers et des répertoires
- Types de données et style de codage
- Conventions de nommage
- FreeRTOS sur les processeurs Cortex/M
- Ordonnancement préemptif à priorités / ordonnancement coopératif
- Le cycle de vie d'une tâche
- Fonctions de tâche
- Création de tâches
- Utilisation du paramètre de tâche
- La machine à états d'une tâche
- Suppression de tâches
- Priorités des tâches
- Affectation des priorités de tâche
- Modification des priorités de tâche
- La tâche idle
- Hook de la tâche idle
- Blocage d'une tâche pendant un délai déterminé
- Édition du fichier d'en-tête FreeRTOSConfig.h
- Suspension d'une tâche
- Présentation des structures du noyau
- Capacités de débogage de FreeRTOS (Hook, Trace)
- Diagnostic visuel des traces avec Tracealyzer
- Schémas d'allocation mémoire fournis par FreeRTOS
- Choix du fichier heap_x.c selon l'application
- Ajout d'un allocateur mémoire spécifique à l'application
- Contrôle de la mémoire libre restante
- Surveillance de la stack
- Dimensionnement de la stack et du heap
- Blocage en lecture sur une file
- Blocage en écriture sur une file
- Création d'une file
- Émission sur une file
- Réception depuis une file
- Émission de types composés
- Transfert de données volumineuses
- Présentation des queue sets / blocage sur plusieurs objets
- Introduction aux semaphores et aux événements
- Exemples de conflits
- Exclusion mutuelle
- Sections critiques
- Masquage des interruptions
- Suspension (verrouillage) de l'ordonnanceur
- Mutex
- Scénario d'exclusion mutuelle
- Fonctions d'API pour les mutex
- Mutex récursifs
- Inversion de priorité
- Héritage de priorité
- Interblocage
- Tâches gardiennes
- Semaphore binaire utilisé pour la synchronisation par interruption
- Fonction d'API pour le semaphore binaire
- Semaphores à compte
- Utilisation des files de messages dans une ISR
- Imbrication des interruptions
- Interruptions sur Cortex-M
- Support de la basse consommation
- La tâche Timer Daemon
- Configuration des timers
- Timer one-shot / auto-reload
- API des timers logiciels
- Mode utilisateur et mode privilégié
- Attributs de permission d'accès
- Définition d'une région MPU
- Création d'une tâche non privilégiée
- Configuration de l'éditeur de liens
- Conseils pratiques d'utilisation
- Architecture du MAC
- Connexion au PHY, RMII / MII
- Réglage des seuils des FIFO d'émission et de réception
- Filtrage d'adresses multicast et unicast
- Interface de gestion
- Organisation des buffers et des descripteurs de buffer
- Drivers bas niveau pour STM32
- Présentation
- Gestion des tampons et de la mémoire
- Options de configuration de LwIP
- Interfaces réseau
- Réglage des adresses MAC et IP
- Traitement IP
- Traitement UDP
- Traitement TCP
- Interfaçage de la stack
- Interface de programmation (API)
- Mode standalone
- Bibliothèque Netconn et socket BSD
- Présentation du portage STM32/FreeRTOS
- Description de la bibliothèque et du paquet
- Comment utiliser la bibliothèque
- Configuration
- Initialisation
- Fonctions principales
- Développement d'une application multitâche avec EmWin
- Travail avec quelques widgets (comme Windows, Buttons, Multipage, Image, ListBox, CheckBox)
- Utilisation du logiciel EmWinGuiBuilder
- Développement d'application de base
- Développement d'application avancé
- Configuration de l'application
- Widgets
- Intégration
- Premiers pas avec CubeMX et TouchGFX
- Déploiement de votre application avec ST-Link
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é