TP3 : ColdFire uCLinux Tube


Mise en situation
Le travail de ce TP se déroule seul.
Temps alloué : 6h
La programmation se fait sur PC sous Windows. Utilisation de la compilation croisée
Carte processeur ColdFire 5272, uCLinux
|
Objectif
- C3.7 Valider l’organisation de l’application sous forme d’un ensemble de tâches
communicantes
- C4.4 Ecrire les tâches d’une application. Résoudre des problèmes de communication et de synchronisation inter-processus
|
Pré requis
- Initiation à la compilation croisée m68k.
- Prise en main de la chaîne de développement de la carte Acturus
- Liaison parallèle et prise en main Ravoux
|
Travail demandé
Listing commenté.
|
Critères d’évaluation
Autonomie, apprentissage d’un nouvel environnement de travail, maîtrise de la commande vfork, signal/kill et communication.
|
But :
Lors du
TP2, nous avons vu comment commander le tapis du
système Ravoux suivant l’état des capteurs de présence B1 et B2, ainsi que commander/superviser le pupitre.
Dans ce TP, nous aimerions connaître l’état global du procédé.
Pour cela, nous allons utiliser un processus « spécialisé » qui aura la possibilité soit d’afficher, soit de sauvegarder dans un fichier l’état du procédé. La communication entre les deux processus (pupitre et tapis) et le processus état se fera par tube.
Pour les plus rapides, nous allons rajouter un télémètre qui permettra de connaître la distance (position) exact du pot sur le tapis. Un autre processus gèrera ce télémètre.
Déroulement du TP :
- Créer le 1er prg père qui crée les 3 fils (Attention, un seul père) qui affiche juste « Je suis fils N° » toutes les secondes (sleep). Boucle infinie.
- Faire attendre le père sur une entrée clavier, quand le père reçoit le caractère Q, il tue ses 3 fils et le prg se termine.
- Créer deux tubes dans le père, passer l’identifiant du/des tube respectif à chaque fils lors de l’execl.
- Quand un « écrivain » laisse une donnée dans le tube, il envoie un signal au fils « lecteur ». Tester la synchronisation et l’écriture/lecture.
- Ecrire le processus Etat (reçoit une donnée et l’affiche si elle a changée par rapport à la dernière donnée reçue)
- Ecrire le fils Tapis qui commande le tapis et transmet par tube au fils Etat toute modification d’état du procédé (Présence pot, remplissage…)
- Ecrire le fils Pupitre qui commande le pupitre et transmet par tube au processus Etat tout changement.
- Sauvegarder dans un fichier tout les états du procédé (Dans processus Etat)
Remarque :

