Professional Documents
Culture Documents
Guide de llve
Module
PRATIQUE DE LA PROGRAMMATION
ET DES OS EMBARQUES
Promotion
Enseignants responsables
responsables
Khaled Grati
SOMMAIRE
Partie 1 :
Initiation lenvironnement VDK de Visual DSP
Partie 2 :
Projet dapplication 1 : Driver simplifi dun Module GSM : Couche Phy
Partie 3 :
Projet dapplication 2 : Couche protocolaire de niveau 2 : Couche PPP
Page 2 sur 11
Partie 1
Initi
Initiation
tiation lenvironnement VDK de VDSP++
VDSP++
1.1 But
Pour crer un nouveau projet, il faut choisir le menu File puis New ensuite project. Ensuite
slectionner VDK Application dans la fentre Project Wizard . Sauvegarder le projet sous
un rpertoire nomm \TP0 sous le nom de ClientServeur. tel que cest indiqu par la
Figure 1.
Une fois le projet cr, un nouvel onglet kernel sajoute dans la fentre affichant la
liste des projets en cours de traitement. Cet onglet permet de dterminer les options du
projet VDK telles que les options du processeur systme et celles des threads crer
dans le projet. En cliquant sur le champ Maximum Running Threads , fixer ce nombre 3.
Page 3 sur 11
Avec le bouton droit de la souris cliquer sur le champ Thread Types et choisir New
Page 4 sur 11
Une nouvelle fentre saffiche pour saisir le nom du nouveau thread crer ainsi que le
choix du langage de programmation utiliser, slectionner le langage C. (voir Erreur !
Source du renvoi introuvable.).
introuvable.
Page 5 sur 11
Figure 3. Liste
Liste des threads cres et leurs paramtres.
paramtres.
1.2.2
Thread
Thr
ead (voir Figure 6).
Page 6 sur 11
Afficher les paramtres des messages changs dans le systme, fixer 1 le nombre maximum de messages
changs simultanment (voir figure 8).
Page 7 sur 11
Tool
Manuals\
Manuals\VDK
Manual\
Manual\VisualDSP++
5.0
Figure 11
11. Utilisation de laide pour les fonctions VDK
Avril 2014, SUPCOM K. Grati & F. Rouissi
Page 8 sur 11
VDK_CreateMessage
VDK_CreateMessage .
6. Pour envoyer le message cr de type MSTART vers le thread client_ID :
a. Dclarer dans le fichier booth.h le macro CHANNEL et laffecter la valeur
VDK_kMsgChannel5. Ce canal permettra de transmettre les messages changs
entre les threads.
b. Utiliser la fonction VDK_PostMessage pour transmettre le message de type
MSTART vers le client.
1.4 Dveloppement du code client.c
Commencer par appeler la variable globale server_ID comme extern.
extern La suite du traitement
est effectu dans la boucle while de la fonction client_RunFunction .
1. Attendre le message MSTART sur CHANNEL :
a. Dclarer, de la mme faon que dans le fichier booth.c les variables locales
MsgID, MsgType,
MsgType MsgSize et *MsgPtr.
*MsgPtr
Remarque : cette dclaration est effectu en dehors de la boucle while
2. Utilisez la fonction VDK_PendMessage qui permet au thread client de dtecter la
rception du message via CHANNEL. Il faut mettre la valeur 0 dans largument Timeout
pour indiquer une attente infinie.
3. Pour lire et interprter le message reu, utiliser la fonction VDK_GetMessagePayload .
4. Si le type du message reu est MSATART ou ACK :
Page 9 sur 11
Page 10 sur 11
Figure 12
12. Fentre VDK State
State History
Page 11 sur 11