logo

Général

Accueil

Présentation section

Matériel section

Trombinoscopes

Liens

Plan du site

Contactez-nous

SN 1

Aide spécifique Java

TP C++ Arduino

Les TP réseau Linux

Les TD Java

Les TP Java

TD C#

TP C#

Les Mini-projets

Stage en entreprise

IRIS 2

TP IPC linux / coldFire

TP PHP

Cours / TP XML

Projets

Cours

SN 1

IRIS 2

Statistiques

1 visiteur

Record : 92

Pages vues :

Aujourd'hui : 27

Total : 172383

Valid XHTML 1.0 Transitional

TP1 : Multi-processus - vfork

separation

[Vous êtes ici ] ==> Accueil > IRIS 2 > TP IPC linux / coldFire > TP1 : Multi-processus - vfork

separation

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
C4.6 Assembler les éléments matériels assurant la liaison physique d’un système de Communication
C5.7 Mettre en œuvre un environnement de programmation
Exploiter les commandes console de bases de Linux.

Pré requis
Environnement Linux (uCLinux), TP6/7 1er année.
Programmation C, commande de base du Linux

Travail demandé
Suivre le déroulement du TP pas à pas sans sauter d’étapes

Critères d’évaluation
Autonomie, apprentissage d’un nouvel environnement de travail, maîtrise de la commande vfork.


But du TP



Utiliser le port parallèle (Port C) d’une carte embarquée avec processeur Motorolla ColdFire 5272 ayant comme système d’exploitation uCLinux et apprendre les commandes de base console du système d’exploitation Linux pour permettre la supervision du tapis du système Ravoux.

Remarques générales :

Déroulement du TP :



1ère Partie : prise en main de l’environnement de développement
Pour pouvoir écrire un programme en C sur la carte embarquée GoldFire, il faut dans un premier temps installer le compilateur de cette carte sur le PC.
2ème Partie : Utilisation de vfork pour commander le Ravoux
Pour commencer, utiliser une carte autre que celle du Ravoux. Créer vos deux processus qui afficheront respectivement leur présence (printf). Chaque processus est un exécutable (avec son propre main), le processus père créera son fils (vfork) et fera un execl du fichier exécutable. Le plus simple est de faire un projet par exécutable, ne pas oublier de changer le nom de l’exe dans le makefile. Une fois le fils créé, le père se mettra en attente d’un caractère de l’utilisateur (scanf) pour mettre fin à son fils (kill)
Ecrire le filsCapteur, qui sera à l’écoute du portC en boucle infinie.
Ecrire la fonction suivante :
// Retourne l’état de la broche passée en paramètre (ici, B1 ou B2)
int litBroche(volatile unsigned short * adresseData,int numeroBroche);

L’algorithme sera le suivant :
Boucle infinie
Démarre moteur
Tant que pot pas présent en B1
Lire état de B1
Afficher « pot présent en B1 »
Tant que pot pas présent sous la trémie
Lire état de B2
Stopper moteur pendant 5s
Fin boucle

Tester en lisant B1, afficher si changement, lire B2, afficher si changement. Remarque :
Pour les plus rapides :
On commandera le moteur via T3. Quand le pot arrive sur B2, on coupera le moteur M1 pendant 5s avant de le redémarrer. Pour cela, on rebranchera le câble 16 sur le bornier en laissant le moteur sur l'alimentation extérieure. La commande se fera par la broche 13 du port parallèle du portC de la carte ColdFire.

separation

ancre