|
|
|
|
| 1er jour |
| Le temps réel sous Linux |
 |
Solutions temps réels pour Linux |
 |
Architecture et caractéristiques |
 |
Modularité de Linux |
|
 |
architecture et composition du kernel Linux |
|
 |
développement de modules kernel |
|
 |
distinction entre modules Linux et RTAI |
|
 |
outils de développement (compilateur , debugger) |
|
 |
outils de gestion des modules (chargement, versions, symboles) |
| Le développement de modules noyau Linux |
 |
Outils de développement |
|
 |
outils de compilation |
|
 |
librairies standard |
|
 |
makefile |
|
 |
environnements intégrés |
|
 |
chargement et la gestion des versions des modules kernel |
|
 |
debug kernel |
|
 |
Gestion mémoire |
|
 |
algorithme d'allocation mémoire buddy et slab allocator |
|
 |
zones mémoire d'allocations des drivers |
|
 |
allocation dynamique et au boot |
| Exercice : |
Ecriture d'un module simple |
| 2ème jour |
| Présentation de RTAI |
 |
Installation de RTAI sous Linux |
 |
Structure des applications RTAI |
 |
Programmation des APIS RTAI |
| Exercice : |
Patch du noyau pour RTAI |
| Exercice : |
Configuration et installation de Linux/RTAI |
| Programmation du Multitâche RTAI |
 |
Implémentation des taches RTAI |
 |
Gestion mémoire |
 |
Stratégie d'ordonnancement |
|
 |
algorithme préemptif pur |
|
 |
ordonnancement périodique et one-shot |
|
 |
spectre des priorités |
|
 |
modularité et remplacement de l'ordonnanceur |
|
 |
ordonnancement multi processeur (SMP) |
|
 |
Outils de communication inter processus (IPC) |
|
 |
FIFO de communication |
|
 |
mécanisme de mémoire partagée |
|
 |
synchronisation inter-tâche (mutex, sémaphore, variables de conditions, verrouillage producteurs/consommateurs, signaux, événements des FIFOs) |
| Exercice : |
Réalisation d'application multi-tâches simple |
| Exercice : |
Dialogue Temps-réel - Linux |
| 3ème jour |
| Programmation des timers et des horloges |
 |
Horloges matérielles et logicielles |
 |
Horloges et deamon |
 |
Timer RTAI |
 |
Watchdog |
| Exercice : |
Mesures de performances (changement de contexte) |
| Programmation des interruptions |
 |
Architecture des interruptions |
 |
Installation des ISR RTAI |
 |
Partage des interruptions |
 |
Emulation des interruptions Linux sous RTAI |
 |
Réveil de taches sous interruptions |
| Exercice : |
Mesures de performances (latence d'interruption) |
| Le temps réel en mode utilisateur avec LXRT |
 |
Le principe de LXRT |
|
 |
modules noyau en mode utilisateur |
|
 |
protection mémoire |
|
 |
basculement d'ordonnanceur |
|
 |
Performances comparées entre RTAI et LXRT |
 |
Programmation sous LXRT |
| Exercice : |
Transfert d'application RTAI sous LXRT |
| Présentation de Xenomai |
 |
Les principes de base de Xenomai |
|
 |
modes primaires et secondaires |
|
 |
Comparaison avec LXRT |
 |
La notion de personalité (skin) |
 |
Installation et configuration de Xenomai |
 |
La mise au point sous Xenomai |
|
 |
utilisation de GDB |
|
 |
installation et configuration de LTT (Linux Trace Toolkit) |
| Exercice : |
Patch du noyau pour Xenomai |
| Exercice : |
Configuration et installation de Linux/Xenomai |
| 4ème jour |
| Programmation sous Xenomai |
 |
L'interface native de Xenomai |
|
 |
gestion des tâches |
|
 |
gestion du temps |
|
 |
synchronisation |
|
 |
communication |
|
 |
accès au matériel et aux interruptions |
|
 |
communication entre code noyau et utilisateur |
|
 |
Les "personnalités" de Xenomai |
|
 |
l'API native |
|
 |
RTAI |
|
 |
Posix |
|
 |
pSOS+, vxWorks, VRTX, uItron, ... |
|
 |
Les drivers de périphériques temps réel |
|
 |
le concept RTDM (Real Time Driver Model) |
|
 |
l'interface de développement des drivers |
|
 |
profils de périphériques |
|
 |
interface utilisateur |
| Exercice : |
Réalisation d'applications multi-tâches mixtes temps-réel - non temps réel |
| Exercice : |
Utilisation des API natives et POSIX |