Utilisation minimaliste et cahotique de la maquette.
Connecter la maquette par liaison serie avec le programme "minicom" La configuration doit être: {{{# Machine-generated file - use "minicom -s" to change parameters. pu port /dev/ttyS0 pu baudrate 115200 pu bits 8 pu parity N pu stopbits 1 pu rtscts No }}}
Connecter la maquette sur éthernet.
Configurer le réseau sur la maquette :
# ifconfig eth0 137.194.66.1 netmask 255.255.252.0
Une seule addresse est disponible donc pour le moment une seule maquette peut utiliser cette configuration...
Télécharger une version "fonctionnelle" de gdbserver sur la maquette.
# cd /usr # mkdir mybin # cd mybin # tftp 137.194.64.58 tftp> get arm/gdbserver tftp> exit # chmod +x gdbserver
Compilation d'un source en C sur le PC
PC$ arm-elf-gcc -Wall -g -Wl,-elf2flt -Os -o hello hello.c -lc
Cela crée l'executable "hello" pour la maquette et la version "hello.gdb" pour le debug
Transfert de l'executable depuis le PC sur le serveur tftp de vega
PC$ tftp vega.enst.fr tftp> put up/hello tftp> exit
Récupération de l'executable par la maquette
# tftp 137.194.64.58 tftp> get up/hello tftp> exit # chmod +x hello
Lancement de gdbserver sur la maquette (il faut récupérer l'adresse ip du PC)
# /usr/mybin/gdbserver <mon-adresse-ip-de-mon-pc>:9999 hello
Lancement du debugger sur le PC
PC$ arm_elf_insight
Ensuite configurer arm_elf_insight pour
- se connecter en remote IP sur 137.194.66.1, port 9999
- charger l'éxécutable hello.gdb (image ELF avec les symboles de debuggage)
Et c'est parti. Atentiongdbserver sort à chaque fois que le programme débuggé est fini, il ne faut pas oubliez de mettre des breakpoint par défaut au début de main et à exit. Il faut toujours conserver les deux fenêtres pour pouvoir relancer gdbserver