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.