ac6-formation, un département d'Ac6 SAS
FR
FrançaisEnglish
 
go-up

ac6 ac6-formation Processors ARM Cores Architecture ARM Cortex-M (v7/v8)
AAM

Architecture ARM Cortex-M (v7/v8)

Ce cours explique l'architecture globale ARM Cortex-M

Objectifs

  • Description de l'architecture des processeurs ARM Cortex-M (ARMv6, ARMv7 et ARMv8).
  • Passer en revue les différences entre les différents noyaux Cortex-M.
  • Obtenez un aperçu des nouvelles fonctionnalités incluses dans l'architecture ARMv8 (TrustZone, MPU, nouveaux types de mémoire, ...).
  • Apprendre à :
    • Développer et déboguer une application ARM Cortex-M
    • Configurer et gérer les exceptions/interruptions
    • Comment configurer un accès privilégié et non privilégié avec le MPU.
  • Ce cours fournit tous les prérequis pour les cours décrivant en détail les différents cŒurs et CPU Cortex-M.
  • Cours théorique
    • Matériel de cours en PDF (en anglais)
  • Pour les cours en ligne :
    • Cours dispensé via le système de visioconférence Teams
    • Le formateur répond aux questions des stagiaires pendant la formation et fournit une assistance technique et pédagogique par le biais du système de visioconférence Teams.
    • Un PC Linux en ligne par stagiaire pour les activités pratiques.
    • Le formateur a accès aux PCs en ligne des stagiaires pour l'assistance technique et pédagogique.
  • Familiarité avec les concepts et la programmation du C embarqué
  • Connaissance de base des processeurs embarqués
  • 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

  • Introduction à l'architecture ARM
  • Processeurs Cortex-M
  • Programmers’ Model
    • Registres du cœur
    • Privilèges, modes et piles
    • Jeu d'instructions
    • Datapath et pipeline, préchargement spéculatif des cibles de branchement
  • Modèle d'exceptions
  • Modèle mémoire
    • Cartographie des adresses
    • Types de mémoire
    • Alignement des instructions et des données
    • System Control Space
  • Gestion de l'énergie
  • Processeur ARM Cortex-M0
  • Processeur ARM Cortex-M0+
  • Processeur ARM Cortex-M3
  • Processeur ARM Cortex-M4
  • Processeur ARM Cortex-M7
  • Processeur ARM Cortex-M33
  • Processeur ARM Cortex-M23
  • Comparaison de la famille de processeurs ARM Cortex-M
  • Outils
    • Présentation de l'IDE Keil et de la sonde Ulink2
    • System Workbench for MCU
  • Standards
    • AAPCS
    • UAL
    • CMSIS
  • Génération de code
    • Types de variables supportés
    • Utilisation des registres, passage des paramètres
    • Accès alignés et non alignés
    • Endianness
  • Génération de l'image
    • Traitement des branchements
  • Tolérance aux fautes
    • Problèmes de pile
  • Déterminisme
  • Support des RTOS
    • Présentation de la MPU
    • Présentation du timer SysTick
  • Optimisations du compilateur
    • Niveaux d'optimisation
    • Tail-call
    • Inlining de fonction
    • Transformation de boucles
    • Compilation multi-fichiers
    • Virgule flottante
  • Bit Banding
  • Optimisation des copies mémoire
  • Optimisation du pointeur de base
  • Présentation du débogage ARMv6-M et ARMv7-M
    • Présentation de CoreSight
  • Débogage invasif
    • Breakpoints et watchpoints
    • Vector Catch
    • Semi-hosting
  • Débogage non invasif
    • Data Watchpoint and Trace unit
    • Instrumentation Trace Macrocell (ITM)
    • Embedded Trace Macrocell (ETM)
    • Micro Trace Buffer (MTB)
  • Comportement au reset
    • Table des vecteurs
  • Démarrage CMSIS-CORE et initialisation du système
    • Fichier de démarrage
    • Gestionnaires d'exception
    • Mise en place de la pile et du tas
  • Initialisation après le démarrage
  • Travailler avec l'éditeur de liens
    • Créer des sections de code et de données
    • Placer le code et les données en mémoire
  • Traitement des exceptions
  • Entrée et sortie d'exception
  • Empilement lors d'une exception
  • Imbrication
  • Tail-chaining
  • Late-arriving
  • Priorisation et contrôle
  • Registres du NVIC
  • Élévation de priorité
  • Regroupement des priorités
  • Masquage des exceptions
  • Écrire des gestionnaires d'interruption
  • Sensibilité des interruptions
  • Exceptions internes et faults
  • Escalade des faults
  • Régions de la MPU
  • Privilégié face à non privilégié
  • Types de mémoire
  • Permissions d'accès
  • Recouvrement de régions
  • Access Fault
  • États de sécurité
  • Banking des registres
  • Protection des adresses de l'état secure
  • Interactions secure et non-secure
  • Configuration et calibration du SysTick
  • Synchronisation
    • Section critique, atomicité
    • Instructions LDREX/STREX
    • Exemples de lock et unlock
  • Barrières mémoire
    • Data Memory, Data Synchronization et Instruction Synchronization Barriers
    • Exemples d'utilisation
  • Compléments sur le jeu d'instructions
    • Retour sur le jeu d'instructions
    • Bloc If-Then
    • Présentation de l'extension DSP
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é