⇤ ← Revision 1 as of 2006-12-22 17:13:56
Size: 1991
Comment:
|
Size: 3052
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Utilisation minimaliste et cahotique de la maquette. | |
Line 3: | Line 2: |
Connecter la maquette par liaison serie avec le programme "minicom" La configuration doit être: |
= Utilisation normale d'une maquette = Il y a deux moyens de communiquer avec une maquette : par le réseau ou par port série (RS232). === Port série === C'est le port utilisé par défaut : * par le bootloader, lors du boot de la carte * par Linux, qui y sort la console et un shell root Côté PC, on utilisera un terminal sachant piloter les ports série : * sous Linux : {{{minicom}}} ou {{{cu}}} * sous Windows : {{{Teraterm Pro}}} Par défaut le port série de la maquette est configuré en 115200 baud, 8 bits, pas de parité, 1 bit de stop, pas de contrôle de flux (autrement dit {{{115200 8N1 No}}} ). Avec minicom, on pourra utiliser les réglages suivants : |
Line 13: | Line 27: |
=== Port Ethernet === Le fonctionnement de l'Ethernet est différent selon qu'on est sous Linux ou dans le bootloader. ==== Dans le bootloader ==== Par défaut, le bootloader prend l'adresse IP {{{192.168.0.30}}}. Il est possible d'en choisir une autre au boot, par la commande {{{ipcfg}}}. Pour la sauver de façon permanente, on utilisera la commande {{{senv}}}. ==== Sous Linux ==== Attention, lors du boot de Linux, l'adresse IP change ! Le noyau Linux demande une adresse IP au serveur DHCP |
Utilisation normale d'une maquette
Il y a deux moyens de communiquer avec une maquette : par le réseau ou par port série (RS232).
Port série
C'est le port utilisé par défaut :
- par le bootloader, lors du boot de la carte
- par Linux, qui y sort la console et un shell root
Côté PC, on utilisera un terminal sachant piloter les ports série :
sous Linux : minicom ou cu
sous Windows : Teraterm Pro
Par défaut le port série de la maquette est configuré en 115200 baud, 8 bits, pas de parité, 1 bit de stop, pas de contrôle de flux (autrement dit 115200 8N1 No ).
Avec minicom, on pourra utiliser les réglages suivants : {{{# 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 }}}
Port Ethernet
Le fonctionnement de l'Ethernet est différent selon qu'on est sous Linux ou dans le bootloader.
Dans le bootloader
Par défaut, le bootloader prend l'adresse IP 192.168.0.30. Il est possible d'en choisir une autre au boot, par la commande ipcfg. Pour la sauver de façon permanente, on utilisera la commande senv.
Sous Linux
Attention, lors du boot de Linux, l'adresse IP change ! Le noyau Linux demande une adresse IP au serveur DHCP
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