TP5 Temps Réel : Trampoline
Trampoline est un système temps réel :
Page d'accueil (ne lisez pas la partie sur
les sujets de TP).
Il implémente le système d'exploitation
OSEK/VDX
qui est utilisé dans l'industrie automobile.
La philosophie :
- Un fichier
OIL
contenant la description complète de la machine,
des tâches, des ressources partagées, de la manière de compiler,
des signaux...
- Le compilateur goil génère le fichier Makefile
à partir du fichier .oil en fonction
de l'architecture cible.
- Le programme C a à sa disposition une
bibliothèque de fonction de base.
Ce qui vous est fourni :
GET http://perso.univ-lyon1.fr/thierry.excoffier/COURS/COURS/TEMPS_REEL/tp5.tar.gz | zcat | tar -xvf -
- Un Makefile avec le but exemple-posix
qui compile et exécute sous Unix le fichier Posix/exemple.c
- compile_and_run qui fait toute la chaîne
de compilation jusqu'à l'exécution.
- Posix/exemple.oil, Posix/exemple.c
une application avec une tâche périodique, une tâche en arrière plan
et une tâche qui déclenche l'arrêt du système.
Votre travail de prise en main :
- Comprendre l'exemple Posix.
- Rendre la tâche Thinking plus prioritaire
que l'interruption.
- Ajouter une deuxième tâche périodique avec une période
différente.
Réaliser un piano à 3 touches sur l'Arduino :
- Une tâche qui 10 fois par seconde regarde les touches,
et si une touche est appuyée, fait jouer sa note pendant 0.5 secondes.
- Un son est une fonction du temps t retournant 0 ou 1.
- Une note de période p est la fonction
(t / p) & 1
- Le son du piano est le ou-exclusif entre les notes
actuellement actives.
- Une tâche qui calcule 8000 fois par seconde
la valeur de la fonction son et l'envoit au buzzer.
Compilation et exécution sur l'Arduino :
make exemple-arduino
ATTENTION : l'exécution sur Arduino n'a pas été testée,
indiquez-moi les bugs de compile_and_run pour que
je puisse les corriger.