Objectifs
Au terme de ce cours, la personne étudiante sera en mesure de/d’ :
• Connaitre les caractéristiques des langages dédiés à la programmation avancée de différents types de systèmes embarqués;
• Identifier et utiliser les interfaces de programmation entre les différentes couches;
• Programmer des systèmes embarqués complexes en utilisant ces langages.
Contenu
Taxonomie et caractéristique des systèmes informatisés : réactif, temps-réel, transformationnel. Systèmes synchrones et asynchrones. Systèmes déterministes et Système non-déterministe. Systèmes multi-tâches : ordonnancement préemptif, ordonnancement non-préemptif. Couches et interfaces de programmation de l’architecture logicielle des systèmes embarqués : couche application, couche middleware, couche système d’exploitation, couche pilote de périphériques, couche matérielle. Programmation avancée de divers types de systèmes embarqués à l’aide de langages de programmation: assembleur, C, Lustre/Scade, Esterel, Méthode B, Coq, etc. Compilation et architectures matérielles; Étude des cas et projets de conception et de programmation de divers types de systèmes embarqués dans différents domaines d’application (transport, Industrie 4.0, Santé, Agriculture, Ville intelligente). Ce cours comporte des séances obligatoires de travaux dirigés (TD) et de travaux pratiques (TP).