www.mikrocontroller.net

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


Autor: Stephan S. (laglisse)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Stephan S. (laglisse)
Datum:
Angehängte Dateien:

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

Autor: Sven Wöhlbier (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Sven Wöhlbier (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.