Table des matières

1. Vérification de la configuration et premier exemple
2. Utilisation des traces
3. Port série et entrées/sorties
4. Debug et pas à pas avec GDB

1. Vérification de la configuration et premier exemple

Ce court exemple permet de tester si la chaine de compilation GCC, le simulateur et le système d'exploitation sont installés et configurés sur votre machine.

L'image de disque est configurée avec les sources de Contiki dans le répertoire

  ${HOME}/IPCapteur2010/Contiki

Le premier exemple que nous allons traiter est les hello world présent dans les exemples.

  cd ~/IPCapteur2010/Contiki/examples/01_hello-world
  make

L'étape de compilation doit vous donner un exécutable hello-world.wsn430 qui est celui qui serait pris en compte pour le téléchargement sur les noeuds physiques.

La première utilisation du simulateur que nous allons mettre en place correspond à la ligne suivante:

  wsim-senslabv14 --ui --mode=time --modearg=10s \
     --serial0_io=stdout hello-world.wsn430

Premier exemple : 01_hello-world

Figure II.1. Premier exemple : 01_hello-world


2. Utilisation des traces

La simulation permet d'avoir de nombreuses informations sur l'état interne de la plateforme pendant l'exécution du programme

  wsim-senslabv14 --ui --mode=time --modearg=10s \
     --serial0_io=stdout --trace=wsim.trc hello-world.wsn430

Un moyen d'utilisation simple des traces est de passer par GtkWave.

  wtracer --in=wsim.trc --out=wsim.vcd --format=vcd
     gtkwave wsim.vcd

Visualisation de traces avec GtkWave

Figure II.2. Visualisation de traces avec GtkWave


Plusieurs formats sont disponibles pour la visualisation des traces dont des sorties permettant l'utilisation de gnuplot

       
wtracer --in=wsim.trc --format=gplot --out=wsim.gp
gnuplot < wsim.gp

Visualisation de traces avec Gnuplot

Figure II.3. Visualisation de traces avec Gnuplot


3. Port série et entrées/sorties

Les ports séries des machines sont utilisables et peuvent être manipulés depuis des outils hors de la simulation.

  wsim-senslabv14 --ui --mode=time --modearg=10s \
     --serial0_io=udp:localhost:6000:localhost:7000 --trace=wsim.trc hello-world.wsn430

Utilisation d'une liaison UDP pour le port série

Figure II.4. Utilisation d'une liaison UDP pour le port série


Le mode de simulation avec le réseau est une simulation distribuée parallèle avec retour arrière. Un des effets visible de ce mode de simulation est de faire rejouer des parties de programme aux noeuds qui subissent des backtracks. Un buffer de temporisation et d'annulation des backtracks de simulation est disponible sur le port série, il faut rajouter bk: à la ligne de commande pour activer ce buffer.

  wsim-senslabv14 --ui --mode=time --modearg=10s \
     --serial0_io=bk:udp:localhost:6001:localhost:7001 --trace=wsim.trc hello-world.wsn430

4. Debug et pas à pas avec GDB

La simulation peut-être dirigée par GDB. Pour utiliser ce mode de simulation il faut modifier les paramètres de lancement de la simulation et utiliser le mode gdb

  wsim-senslabv14 --ui --mode=gdb --modearg=2159 \
     --serial0_io=udp:localhost:6000:localhost:7000 --trace=wsim.trc hello-world.wsn430

Utilisation de GDB/Insight pour le debug sur cible

Figure II.5. Utilisation de GDB/Insight pour le debug sur cible