Programme de la formation assembleur ARM

Introduction à ARM

  • Présentation de l’architecture ARM : de v5 à v7.
  • Le processeur ARM, fonctionnement, les registres.
  • Les instructions ARM. L’architecture load/store.
  • Architecture ARMv5 : TCM, Jazelle, domaines, MMU.
  • Architecture ARMv7 : caches, mode monitor, trustzone.

Travaux pratiques 
Prise en main de l’environnement de développement. Compilateur, éditeur de liens et simulateur. Ecriture d’un programme ARM.

Présentation de l’Assembleur ARM

  • Les opérations de base de l’assembleur ARM.
  • L’exécution conditionnelle et les branches.
  • Les opérations arithmétiques et logiques.
  • Accès à la mémoire, la gestion des piles.
  • Les opérations atomiques.

Travaux pratiques 
Ecriture de différents petits programmes en assembleur ARM.

Interface C et assembleur ARM

  • Utiliser l’assembleur ARM pour optimiser les applications.
  • Intégration de routines assembleur dans un programme C.
  • Bibliothèques de fonctions assembleur.

Travaux pratiques 
Ecriture d’une bibliothèque de synchronisation de threads en assembleur.

Gestion des exceptions et des périphériques

  • La gestion des exceptions et des interruptions par le processeur ARM.
  • Le vecteur d’interruption.
  • Les différentes façons de gérer une interruption.
  • Présentation de quelques périphériques standard, PIC, timer, UART.

Travaux pratiques 
Mise en oeuvre d’une interruption timer sur une carte versatile.

Programmation système ARM9

  • La gestion du processeur par un OS.
  • Modes de fonctionnement. Passage en mode superviseur (SWI et SMC).
  • Gestion du CPSR et des coprocesseurs.
  • Le coprocesseur système CP15.
  • La gestion de la MMU, des domaines et des caches.
  • Les barrières, la Tiny Coupled Memory, le Fast Context Switch.

Travaux pratiques 
Passage en mode superviseur et retour en mode utilisateur. Construction d’un mini-OS, activation de la protection mémoire par domaines.

Programmation système CortexA9

  • Le Cortex A9 pour sécuriser les applications sensibles.
  • Mise en œuvre de la protection par trustzone.
  • Mise en œuvre d’un moniteur sécurisé.
  • Gestion des coprocesseurs, de la MMU et des caches L1 et L2.
  • FCSE et ASID.

Travaux pratiques 
Passage en mode moniteur et gestion d’un mini OS. Activation de la protection mémoire par trustzone.