Systèmes Temps Réel - TP sous RTAI
Enoncés
- ordonnancement de taches périodiques tp1.pdf
- synchronisations de taches tp2.pdf
Fichiers utiles
- task.c
: source
c comportant le squelette d'un module lançant une tâche
rtai
- Makefile
:
fichier permettant d'effectuer une compilation de vos fichiers à
l'aide
de la commande make. Vous pourrez modifier la variable obj-m dans
celui-ci.
- run
qui permet le chargement
et le lancement
des modules rtai : tapez
./run
mon_module
- acq.ko
: module de simulation d'une carte d'acquisition ADC 2 canaux.
- acq.h
: fichier header du module acq.ko
Aide en ligne
- Une documentation plus complète, mais relative à une
version précédente de RTAI est disponible : RTAI_manual.pdf
Quelques conseils ...
- Attention, avant de lancer une application rtai :
- Vérifiez qu'il n'y a pas de boucle sans fin sans attente
- Vérifiez que vous libérez bien les ressources que vous
allouez
- En cas de doute, demandez à un enseignant avant de
charger le module.
- Les outils de trace ne supportent pas bien la charge et ne
permettent
pas de visualiser correctement le comportement du système.
Effectuez donc des affichages via des printk sur la console, et
restituez
vous même vos chronogrammes.
- Pour le compte rendu, faites une copie des affichages, des
commentaires.
- L'utilisation de la primitive rt_preempt_always()(voir
doc),
permet de s'assurer qu'une tâche sera toujours
intérompue immédiatement par une tâche de plus
haute priorité.
- Pour éviter que les tâches soient exécutées sur des processeurs
différents, ce qui peut être le cas sur les machines de TP équipées de
processeur Dual core, utiliser la fonction suivante à la place de
rt_task_init :
int rt_task_init_cpuid(RT_TASK *task,
void(*rt_thread)(int), int data, int stack_size, int priority, int
uses_fpu, void(*signal)(void), unsigned int cpuid)
cette fonction s'utilise comme
rt_task_init, avec l'argument cpuid positionné à la valeur 0 pour
spécifier que la tâche est exécutée sur le processeur 0.
Sauvegarde
A la fin du TP, vous pouvez rappatrier votre travail sur votre propre
compte
par la procédure proposée par le SMIG :
- Archivez votre travail sous la forme d'un fichier archive
tgz : tar
zcvf mon_fichier.tgz
repertoire_a_archiver
- Rappatriez votre travail grâce à la commande : scp
mon_fichier.tgz mon_login@acme1.esiee.fr:~mon_login/