Forum: Mikrocontroller und Digitale Elektronik LPC2148 mit OpenOCD im Flash debuggen


von Stephan S. (laglisse)


Angehängte Dateien:

Lesenswert?

hallo!

ich versuche ein programm auf einem mcb2140-board mit lpc2148 von keil 
im flash zu debuggen.
das ganze mit openocd in eclipse. openocd scheint richtig zu starten, 
wenn ich dann allerdings den gdb anwerfe erhalte ich fehlermeldungen wie 
sie in dem 'error.txt' zu sehen sind.
ich werd langsam nicht mehr schlau draus und hoffe, dass ihr mir helfen 
könnt.


dem gdb werden folgende kommandos zur initialisierung übergeben:

target remote localhost:3333
monitor soft_reset_halt
monitor reg #pc 0x00
monitor arm7_9 sw_bkpts enable
break main
load main
continue


cfg für den openocd:

#daemon configuration
telnet_port 4444
gdb_port 3333

#interface
interface ft2232
ft2232_device_desc "Amontec JTAGkey A"
ft2232_layout jtagkey
jtag_speed 0

#use combined on interfaces or targets that can't set TRST/SRST 
separately
reset_config trst_and_srst srst_pulls_trst

#jtag scan chain
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
jtag_device 4 0x1 0xf 0xe

#target configuration
daemon_startup reset

#target <type> <startup mode>
#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
target arm7tdmi little run_and_halt 0 arm7tdmi-s_r4
run_and_halt_time 0 30

working_area 0 0x40000000 0x40000 nobackup



ich vermute, dass es an den 'initialize' commands liegt, bin mir aber 
nicht wirklich sicher.
gruß,
stephan

von Stephan S. (laglisse)


Angehängte Dateien:

Lesenswert?

ok. ich habs geschafft die fehlermeldungen etwas zu reduzieren,  kann 
aber mit den verbliebenen immer noch wenig anfangen: ->error forum2.log

von Sven Wöhlbier (Gast)


Lesenswert?

Hallo Stephan,

zur Initialisierung des arm-elf-gdb unter Eclipse benutze ich die 
folgende Befehlssequenz:

target remote localhost:3333
monitor wait_halt
monitor sleep 500
monitor poll
monitor soft_reset_halt
monitor arm7_9 sw_bkpts disable
monitor arm7_9 force_hw_bkpts enable
monitor mww 0xE01FC040 0x0001
monitor mdw 0xE01FC040
symbol-file main.elf
set $pc=0x0

Tschau Sven!

von Sven Wöhlbier (Gast)


Lesenswert?

Hallo Stephan,

mein letztes Posting so ohne Erklärungen war unter Umständen doch zu 
knapp.

Wenn Du ein Programm im Flash debuggen möchtest stehen Dir keine 
Softwarebreakpoints zur Verfügung, sondern nur 2 Hardwarebreakpoints. 
Daher:

monitor arm7_9 sw_bkpts disable
monitor arm7_9 force_hw_bkpts enable

Die Adresse 0xE01FC040 sthet für das "Memory Mapping Control Register", 
und der Inhalt 0x0001 steht für den "user flash mode". Ausprobiert habe 
ich es noch nicht, aber unter Umständen kannst Du dieses Register auch 
in Deinem Programm entsprechend setzen.

Tschau Sven!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.