Objectifs
Cette formation C/Système temps-réel et embarqué vous permettra de :
- découvrir le monde de l’embarqué et du temps-réel, d’en comprendre les spécificités et les enjeux ;
- maîtriser les algorithmes d'ordonnancement temps-partagé ou temps-réel, les problématiques liées aux fils d’exécutions en concurrence, les mécanismes de communications entre processus, la gestion de la mémoire virtuelle ;
- concevoir du code optimisé grâce à l'ensemble des outils de développement industriel disponibles librement sous Linux ;
- disposer de méthodes pour déployer des systèmes embarqués en équilibrant les performances et l’occupation mémoire.
A qui s'adresse cette formation
Pré-requis :
savoir programmer en C « basique »
Public :
ingénieurs, techniciens supérieurs
Contenu du cours
L’embarqué et le temps-réel
• Généralités, définitions
• Architectures matérielles
• Interruption, latence, multitâche, ordonnancement (FIFO, RR, SJF, EDF, RM)
• Mutex, sémaphore
• La flash
Systèmes d’exploitation embarqués
• Organisation matérielle et logicielle
• Diaporama/écosystème
• Notion de firmware
• Zoom sur Linux et le libre embarqué & temps-réel
Conception
• La compilation croisée
• Exploration du binaire
• Compilation et édition de liens avec gcc et make
• Binutils, outils de désassemblage
Processus et mémoire virtuelle
• Les processus Linux
• Conventions d’appel, pile, tas
Les outils de développement
• GCC
• Les débogueurs
• Les profileurs
• Bibliothèques statiques, partagées et dynamiques
C/système Posix
• Les appels systèmes classiques
• La gestion des processus fork et exec
• La communication entre processus à l’aide des Inter Process Communications (IPC), des pipes classiques et des pipe nommés
• La gestion des threads et de la mémoire
Code avancé
• Macro paramétrées et avancées, pragma & attributes, alignements, structures de données,endinanness
• scripts de link
• La sécurité
Intégration
• Outils Linux
• Débuggage bas niveau (gdb, gbbsever, J-Tag)
• Méthodes d’intégration (flashage)