Connaissances préalables recommandées :
L’étudiant doit connaître et savoir utiliser les notions suivantes :
- L'étudiant-e doit connaître un modèle abstrait d'un processeur
- L'étudiant-e doit avoir obtenu une note supérieure ou égale à la limite de compensation dans les unités : ARO1, ARO2, INF1, INF2
Objectifs :
A l'issue de cette unité d'enseignement, l'étudiant-e sera capable de :
- Comprendre les notions d'environnement croisé, de BSP, de datasheet
- Comprendre les environnements matériels de mise au point (JTAG)
- Comprendre les notions d'assembleur et caractéristiques d'un processeur
- Comprendre le jeu d'instructions d'un processeur, incluant les
instructions de traitement, de transferts de données et de branchement
- Comprendre la notion de mode d'adressage
- Connaître les extensions du langage et directives de compilation
- Comprendre les appels de fonction, conventions d'appel, et gestion de la pile
- Décrire le rôle d'un compilateur et du code généré (code objet)
- Expliquer les mécanismes d'interactions C-assembleur avec
l'assembleur inline et les différentes directives (entrées, sorties,
clobbers, etc.)
- Concevoir le code en assembleur inline dans une code C pour le passage de structures conventionnelles (valeurs, adresses)
A l'issue des travaux pratiques en laboratoire, principalement
destinés à l'assimilation des connaissances et à l'acquisition
d'expérience, l'étudiant-e sera en outre capable de
- Maîtriser un environnement de développement croisé avec une cible à processeur ARM
- Implémenter différents code en assembleur inline effectuant des passages in/out de différentes valeurs
- Implémenter des passages de valeurs entre C et assembleur ARM et x86
- Concevoir et développer une petite application en assembleur ARM et/ou x86