Connaissances préalables recommandées :
L’étudiant doit connaître et savoir utiliser les notions suivantes :
- programmation en C : pointeurs, fonctions, arguments par valeur/référence, gestion mémoire (statique/dynamique).
- programmation temps réel : notion d'exécutif, threads, gestion du temps et des interruptions, objets de synchronisation/communication inter-tâche, priorités.
- architecture des systèmes à processeur : schéma bloc, bus, mémoire, timer et notion d'interruption.
Les unités d'enseignement INF2 (informatique), PTR (programmation temps réel) et ASP (architecture des systèmes à processeur) permettent d'acquérir ces connaissances.
Objectifs :
A l'issue de cette unité d'enseignement, l'étudiant-e sera capable de :
- expliquer l'architecture-bloc d'un microcontrôleur 32 bits (ARM9) et des contrôleurs périphériques embarqués.
- expliquer le fonctionnement général et le modèle de programmation d'un microcontrôleur de type ARM9.
- expliquer le jeu d'instructions et les modes d'adressage d'un microcontrôleur de type ARM9.
- traduire en langage d'assemblage un programme écrit en pseudo-langage structuré.
- écrire et utiliser à bon escient des sous-programmes utilisant les passages de paramètres par registre, par mémoire et par pile.
- écrire et utiliser à bon escient des macro-instructions.
- développer et mettre au point une application sur une machine hôte pour un système embarqué (machine cible).
- d'une manière générale, programmer une application en C et en assembleur destinée à un système embarqué muni d'un microcontrôleur 32 bits.
- reconnaître différents types de périphériques et être capable de les interfacer avec le processeur.
A l'issue des travaux pratiques en laboratoire, principalement destinés à l’assimilation des connaissances et à
l’acquisition d’expérience dans la mise en oeuvre de systèmes à microcontrôleur, l’étudiant-e sera en outre capable de :
- concevoir et mettre au point une application d'un microcontrôleur, en langage d'assemblage et en langage C.
- utiliser des outils de développement sur microcontrôleur.
- utiliser une chaîne d'outils pour le développement croisé.