View the site in Français View the site in English (USA) Site displayed in English (GB)
You are here: ac6 > ac6-formation > Linux > Linux temps-réel Xenomai
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

D4 Linux temps-réel Xenomai

Le temps-réel Linux avec RTAI et Xenomai

Le temps-réel Linux avec RTAI et Xenomai

formateur
Objectifs
bullet_jaune_1 RTAI
bullet_jaune_2 Maîtriser le temps réel avec RTAI
bullet_jaune_2 Synchronisation et communication entre Linux et RTAI
bullet_jaune_2 Gérer les timers rapides de RTAI
bullet_jaune_2 Partage et traitement d'interruptions
bullet_jaune_2 Utiliser LXRT
bullet_jaune_1 Xenomai (ex RTAI/Fusion)
bullet_jaune_2 Différences avec RTAI et LXRT
bullet_jaune_2 Programmation sous Xenomai
bullet_jaune_2 les drivers temps-réel Xenomai
Les exercices se font sur des cartes cibles :
    Carte "SnowBall" de ST-Ericsson, basée sur un ARM Cortex/A9 double cœur, avec sonde JTAG Lauterbach.
    Carte à base de processeur ARM9 d'Atmel, avec sonde JTAG Lauterbach.
Nous utilisons le dernier noyau disponible sur www.kernel.org supporté par Xenomai
Matériel
bullet_jaune_2 Un PC par binôme avec Linux + RTLinux
bullet_jaune_2 Support de cours
bullet_jaune_2 CDROM avec documentation et exercices corrigés
Pré-requis
bullet_jaune_2 Connaissance de la programmation Linux (niveau cours D0)
bullet_jaune_2 Notions d'administration Linux, installation, configuration, mise à jour... (niveau cours D1)
bullet_jaune_2 Notions de temps réel (niveau cours L7)

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