Ou comment configurer le trio Eclipse - gdb - openOCD ?
lundi 7 avril 2008, par patrick Deflandre
Eclipse est un environnement de développement généraliste qui peut aussi bien servir à développer une application tournant sous un OS comme Linux qu’une application sans noyaux sur une cible de type micro-contrôleur.
Dans le premier cas un serveur gdb est intégré au noyau, alors que dans le second il faudra utiliser une sonde jtag et son interface serveur gdb/jtag (par exemple openOCD).
Les contraintes étant très différentes, il est nécessaire de paramétrer un minimum Eclipse de façon à déclarer comment Eclipse devra utiliser gdb.
Dans le cas d’une cible microcontrôleur à base d’un at91sam7x, j’ai retenu pour les éléments suivants :
’Initialize’ commands
target remote localhost:3333
# set debug remote 1
set remotetimeout 90
monitor soft_reset_halt
monitor halt
monitor sleep 10
monitor wait_halt
monitor mww 0xfffffd44 0x00008000 # disable watchdog
monitor mww 0xfffffd08 0xa5000001 # enable user reset
monitor mww 0xfffffc20 0x00000601 # CKGR_MOR : enable the main oscillator
monitor sleep 10
monitor mww 0xfffffc2c 0x000b1c01 # CKGR_PLLR: 96 MHz
monitor sleep 10
monitor mww 0xfffffc30 0x00000007 # PMC_MCKR : MCK = PLL / 2 = 48 MHz
monitor sleep 10
monitor mww 0xffffff60 0x00480100 # MC_FMR: flash mode (FWS=1,FMCN=72)
monitor arm7_9 dcc_downloads enable
monitor at91sam7 gpnvm 0 2 set #map the flash as boot device, so we can program it
monitor flash probe 0
monitor flash write_image ./Demo/lwIP_Demo_Rowley_ARM7/rtosdemo.elf 0x0 elf
monitor soft_reset_halt
monitor sleep 1000
’Run’ commands
continue
’Initialize’ commands
target remote localhost:3333
set remotetimeout 90
#mem 0x00200000 0x00204000 rw 8 nocache
monitor soft_reset_halt
monitor armv4_5 core_state arm
set remote memory-write-packet-size 1024
set remote memory-write-packet-size fixed
set remote memory-read-packet-size 1024
set remote memory-read-packet-size fixed
monitor arm7_9 force_hw_bkpts enable
’Run’ commands
continue