Linux embarqué

Systèmes embarqués, programmation assembleur ARM

Objectifs de la formation

  • Maîtriser l'environnement de développement, le debugger, le compilateur, l'éditeur de liens
  • Mettre en oeuvre des programmes en assembleur ARM
  • Intégrer de routines assembleur dans un programme C
  • Programmer les coprocesseurs des SoC ARM9 et CortexA9
  • Optimiser les librairies


Programme de la formation

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.

Please login to get access to the quiz
Yocto, développer son propre système embarqué sous Linux (Prev Lesson)
(Next Lesson) Linux industriel, temps réel et embarqué
Back to Linux embarqué
Public

Les informaticiens désireux d'acquérir une formation complète sur la programmation assembleur ARM et la mise en œuvre de SoC ARMv5 à ARMv7.

Pré-requis

Connaissances de base de la programmation et des micro-processeurs. La connaissance du système Linux facilitera la mise en œuvre des travaux pratiques.