ECUE XSE613 - Informatique Embarquée

UE Informatique - 0.6 ECTS



 Structure & Enseignants
Type
Heures
Enseignants Associés
CM 6 (x1)
 Jérôme Lacan 6h
TD 6 (x1)
 Jérôme Lacan 6h
 Laurent Latorre 0h


 Description
Enseignant Responsable Jérôme Lacan
THE 12
Description ECUE

Introduction aux microcontrôleurs ARM Cortex-M : architecture et programmation.

Mots clés Mircocontrôleur
ARM Cortex-M
RISC
Informatique embarquée
Modalités de contrôle
  • Pointage concernant l'execution des tutoriels
  • Un examen écrit final
Contexte

Cet enseignement, placé sous la responsabilité d'un intervenant industriel, a pour objectif de présenter les architures de microcontrôleurs ARM Cortex-Mx ainsi que les concepts de programmation associés. Ces architectures rencontrent actuellement un important succés dans l'industrie des systèmes embarqués, et se retrouvent dans un grand nombre de microcontrôleurs, sous différentes marques. Le cours met l'accent sur les architectures matérielle, ainsi que sur les pratiques de programmation pertinentes sur ce type de composant. Les élèves acquièrent un savoir faire pratique à l'aide d'une série de tutoriels exécutés hors encadrement, et dans le cadre de nombreux projets (liés à leur activité en entreprise, ou personnels) mettant en oeuvre ces produits.

Contenu
  • Concepts généraux concernant les architectures de processeurs
    • Coeur Cortex-Mx (M0, M3, M4, ISA, NVIC, debug)
    • Bus et interconnexions (AMBA, BusMatrix)
    • Blocs spécifiques (MPU, MMU, FPU, Cache)
    • Mémoire et hierarchie
  • Spécificitées des produits STM32
    • Architecture
    • Reset, Horloge, Boot
    • Mémoire
    • I/O et fonctions alternatives
    • Modes de fonctionnement (normal et faible consommation, DVFS)
    • Périphériques
  • Stratégies de programmation
    • Gestion des modes
    • Usage des interruptions
    • C versus ASM, Directives de compilation, Optimisation
    • Gestion des périphériques, polling, DMA, bande-passante
    • Debbogage (breakpoints, watchpoint, data & intsruction tracing)
  • Principaux challenges
    • Lecture & interprétation des specifications
    • Développement "power aware"
    • Robustesse du code
    • Notion de sécurité
    • Adaptabilité, réutilisabilité, rendement

En avance de phase sur le cours, il est demandé aux élèves d'exécuter (hors encadrement) une série de tutoriels leur permettant de prendre en main un processeur Cortex-M4 et l'environnement de développement associé.

Ressources
  • Transparents de cours au format PDF
  • Carte de développement Cortex-M4 et environnement intégré associé (IDE libre)
  • Série de tutoriels pour la prise en main du processeur Cortex-M4
  • Webographie
Prérequis
  • Bases en architecture de circuits numérique
  • Bases de la programmation en C
+ XSE502 - Algorithmique & langage C
+ XSE511 - Logique et VHDL 1
+ -
+ -


 Connaissances
#
Libellé
N
A
M
E
0
Architecture des microcontrôleurs ARM Cortex-Mx x
1
Introduction aux produits de la gamme STM32 x
2
Modes de fonctionnement (faible consommation) x
3
Techniques de gestion des périphériques (polling, interruption, DMA) x
4
Options de compilation x
5
Gestion des interruptions x
6
Outils de débogage x
7
Concepts de programmation "aware" (consommation, réutilisation du code, sécurité, adaptabilité) x


 Compétences
#
Libellé
N
A
M
E
0
Installer et paramétrer un environnement de développement pour un microcontrôleur ARM Cortex-Mx x
1
Initialiser un microcontrôleur ARM Cortex-Mx (horloges et périphériques) en fonction des besoins de l'application et en minimisant la consommation du système x
2
Mettre en oeuvre les périphériques d'un microcontrôleur de la famille STM32 x
3
Développer des applications simples à l'aide d'un microcontrôleur STM32 x
4
Maîtriser les outils de débogage d'un environnement de développement intégré (IDE) pour microcontrôleur x


 Capacités
#
Libellé
Non
Oui
1
Rédiger x
2
Communiquer x
3
Travailler en équipe x
4
Animer et piloter un groupe, un projet x
5
Rigueur et organisation x
6
Sens pratique x
7
Sens critique x
8
Ouverture d'esprit x
9
Capacité d'analyse et de synthèse x
10
Capacité d'abstraction, logique x
11
Capacité d'initiative x
12
Créativité x


 Compétences RNCP
Type
#
Libellé
0
1
2
CTI
1
Aptitude à mobiliser les ressources d'un large champ de sciences fondamentales. x
CTI
2
Connaissance et compréhension d'un champ scientifique et technique de spécialité. x
CTI
3
Maîtrise des méthodes et des outils de l'ingénieur : identification et résolution de problèmes, même non familiers et non complètement définis, collecte et interprétation de données, utilisation des outils informatiques, analyse et conception de systèmes complexes, expérimentation. x
CTI
4
Capacité à s'intégrer dans une organisation, à l'animer et à la faire évoluer : engagement et leadership, management de projets, maîtrise d'ouvrage, communication avec des spécialistes comme avec des non-spécialistes. x
CTI
5
Prise en compte des enjeux industriels, économiques et professionnels : compétitivité et productivité, innovation, propriété intellectuelle et industrielle, respect des procédures qualité, sécurité. x
CTI
6
Aptitude à travailler en contexte international : maîtrise d'une ou plusieurs langues étrangères, sûreté, intelligence économique, ouverture culturelle, expérience internationale. x
CTI
7
Respect des valeurs sociétales : connaissance des relations sociales, environnement et développement durable, éthique. x
POL
1
Aptitude à participer aux actions de recherche et développement des entreprises, éventuellement en lien avec les acteurs de la recherche publique, et à apporter l’esprit d’innovation favorisant l’évolution technologique. x
MEA-SE
1
Spécifier et modéliser dans leur environnement des systèmes embarqués, sous contrainte de cahier des charges, en intégrant les évolutions de l'état de l'art. x
MEA-SE
2
Concevoir, simuler, prototyper et programmer des systèmes embarqués. x
MEA-SE
3
Réaliser, industrialiser, tester et maintenir des systèmes embarqués. x
MEA
4
Spécifier et concevoir des circuits et systèmes intégrés en vue de leur production industrielle. x
MEA
5
Modéliser un système physique, puis concevoir et mettre en œuvre une architecture de contrôle/commande adaptée. x