Interruptions pdf Interruptions et STM Issam Outassourt Alexis Robert CFonctionnement des interruptions ? Contrôleur d ? interruptions présent dans le c ?ur ARM Cortex-M ? NVIC Nested Vectored Interrupt Controller ? Gère les priorités entre interruptions

Interruptions et STM Issam Outassourt Alexis Robert CFonctionnement des interruptions ? Contrôleur d ? interruptions présent dans le c ?ur ARM Cortex-M ? NVIC Nested Vectored Interrupt Controller ? Gère les priorités entre interruptions ? Gère la sauvegarde restauration des registres ? Le tout de façon optimisée tail chaining stack pop pre-emption late arrival ? Le fabriquant du micro-contrôleur peut y gre ?er ses interruptions ex UART DMA EXTI le c ?ur ayant aussi ses propres interruptions ex Hard Fault ? Le tout de façon commune entre tous les c ?urs ARM a ?n de faciliter le portage des RTOS idem pour le timer SysTick CGroupe de priorités et sous-priorités ? Le Cortex-M possède un registre de priorité sur bits pour chaque interruption niveaux de priorité ? Divisé en deux parties group priority sub priority ? Façon de splitter con ?guré dans le registre PRIGROUP ? Erreur courante priorité maximale priorité minimale ? Group priority dé ?nit si une interruption peut interrompre une interruption courante pré-emption ? Sub priority dé ?nit qui s ? exécutera en premier si deux interruptions du même group priority arrivent en même temps CEXTI sa vie son ?uvre ? On a vu les interruptions venant de l ? extérieur du c ?ur ARM mais lancées par le reste du microcontrôleur ? On veut lancer une interruption depuis l ? extérieur EXTI EXTernal Interrupts ? Exemple Boutons poussoir réveil si tra ?c réseau ? ? Permet de lancer une interruption en front montant et ou descendent ? Séquence les informations via l ? horloge APB ? Réveille le c ?ur ARM de veille ? Résout le problème du polling ? Permet de mettre en veille le c ?ur pour n ? être réveillé que si quelqu ? un agit avec le périphérique ? Soulage le scheduler du RTOS ? Périphérique fourni par ST CSources d ? interruptions ? GPIO ? Périphériques autres pour réveiller le c ?ur ? Ethernet ? USB OTG ? Horloge RTC ? Les sources se con ?gurent dans les registres de AFIO sur STM F CCon ?guration des EXTI Con ?gurer EXTI a Régler le masque des évènements générant des interruptions EXTIIMR b Régler le masque raising falling trigger EXTIRTSR EXTI FTSR Con ?gurer la source dans AFIO Régler le registre AFIO EXTICRx Activer le périphérique AFIO Activer son horloge dans le périphérique RCC Con ?gurer le NVIC Activer l ? interruption et régler la priorité CInterruptions sous ChibiOS ? Types d ? interruptions NMI non maskable interrupts FI fast interrupt RI regular interrupts ? Une machine à états Transitions sur appel de fonctions ou sur interruptions ? Con ?guration ? Dé ?nition des handlers d ? interruptions ? Initialisation du vecteur d ? interruptions ? Exemple pratique ? Faire changer l ? état d ? une LED depuis un bouton via EXTI https gist github com anonymous CStructure d ? un IRQ handler CHIRQHANDLER myIRQ myIRQ IRQ Identi ?er CHIRQPROLOGUE IRQ handling code preemptable if the architecture supports it chSysLockFromIsr Invocation

  • 27
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 01, 2023
  • Catégorie Administration
  • Langue French
  • Taille du fichier 36.3kB