Programmation multitâches & OS temps réel  1.0
Travaux dirigés

Les exercices suivants couvrent les différents sujets dans l’ordre où ils ont été abordés en cours. Certains font référence à un exercice précédent, il est donc recommandé de les effectuer dans l‎’‎ordre.

Le code C++ produit lors des TD doit respecter les conventions de codage spécifiées dans la section C++ Coding Conventions.

La chaine de développement s’effectue en compilation croisée (cross-compiling): le code source est édité sur une station de développement Linux puis cross-compilé et cross-linké à l’aide d’une toolchain installée sur la station de développement. Pour ces TD, la toolchain comprend une commande arm-linux-g++ permettant de compiler et linker vos programmes. L’exemple ci-dessous montre la commande qui compile et linke un programme satellite constitué des 2 fichiers source Main.cpp et Satellite.cpp utilisant les librairies Posix de gestion du temps et de programmation multitâches :

arm-linux-g++ -Wall -Wextra Main.cpp Satellite.cpp -o satell.arm -lrt -lpthread

Après avoir produit votre exécutable (satell.arm dans l’exemple), il faut le copier vers votre cible embarquée à travers sa connexion au réseau local. La commande de copie est scp (copie à travers ssh). En supposant que l’adresse IP de votre cible est 192.168.50.11 la commande de copie se présente ainsi (le mot de passe vous est transmis par votre professeur) :

scp satell.arm root@192.168.50.11:

Pour exécuter votre programme, il vous faut une autre fenêtre terminal dans laquelle vous vous connectez à la cible à travers ssh :

ssh root@192.168.50.11

C++ Coding Conventions


[TD-1] Mesure de temps et échantillonnage en temps


[TD-2] Familiarisation avec l’API multitâches pthread


[TD-3] Classes pour la gestion du temps


[TD-4] Classes de base pour la programmation multitâches


[TD-5] Inversion de priorité


[TD-6] Object actif