www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OpenOCD AT91SAM7X256


Autor: mfd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Problem mit OpenOCD, Eclipse und dem EVA-Board mit dem 
AT91SAM7X256 von diesem Shop.
Gegooglet und in vielen Foren gesucht habe ich schon wie verrückt und 
ich würde mich auch nicht melden, wenn ich nicht mehr weiter wüsste:

Mein Programm bekomme ich wunderbar mit der Beispielsoftware und dem 
Tutorial von yagarto.de auf den RAM des AT91. Nur nicht in den Flash.

JTAG = ARM JTAG (parallelport) vom Shop

Meine Schritte sind so:

Konsole:
openocd-pp -f .\openocd_flash.cfg
#daemon configuration
telnet_port 4444
gdb_port 3333
daemon_startup reset

#interface
interface parport
parport_port /dev/parport0
parport_cable wiggler
jtag_speed 0
#reset_config trst_and_srst|trst_only|srst_only srst_pulls_trst|trst_pulls_srst|combined
reset_config srst_only

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

#target configuration
#target <type> <endianness> <startup mode> <chainpos> <variant>
target arm7tdmi little run_and_init 0 
run_and_halt_time 0 30

#working_area 0 0x208000 0x4000 nobackup
flash bank at91sam7 0 0 0 0 0
target_script 0 reset /etc/openocd_at91sam7_flash.script

nachdem das in der Konsole läuft, das projekt compiliert habe, starte 
ich debug. In der Debug Command steht mein script:
# 
# The following commands will be executed on
# reset (because of run_and_init in the config-file)
# - halt target
# - init ecr
# - flash content of file main.bin into target-memory
# - shutdown openocd
#
# created by Martin Thomas 
# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects
# based on information from Dominic Rath 
#

halt
sleep 10

# Init - taken form the script openocd_at91sam7_ecr.script 
mww 0xfffffd44 0x00008000  # disable watchdog
mww 0xfffffd08 0xa5000001  # enable user reset
mww 0xfffffc20 0x00000601  # CKGR_MOR : enable the main oscillator
sleep 10
mww 0xfffffc2c 0x00481c0e   # CKGR_PLLR: 96.1097 MHz
sleep 10
mww 0xfffffc30 0x00000007  # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
sleep 10
mww 0xffffff60 0x003c0100  # MC_FMR: flash mode (FWS=1,FMCN=60)
# arm7_9 force_hw_bkpts enable  # program resides in flash

# AT91SAM7 flash command-"batch"
# adapted by Martin Thomas based on information from Dominic Rath - Thanks
arm7_9 dcc_downloads enable
sleep 10
poll
flash probe 0
flash write 0 test.bin 0x0
reset run
sleep 10
shutdown

Ich weis nicht mehr weiter und meine Hoffnung klammert sich an euch!

Greez
mfd

Autor: Dominic R. (dominic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, die Frage ist, was passiert, nachdem du das gemacht hast - 
Garnichts? Fehlermeldung? Rauchzeichen?

Eventuell sind die protection bits gesetzt - auf der Seite von Martin 
Thomas steht dann auch, wie man die löscht (flash protect 0 0 N off, mit 
N = Anzahl Protection-Bits - 1).

Gruß,

Dominic


Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei SAM7X auch Bit 2 im non-volatile-memory beachten. Damit wird 
selektiert, ob der Controller den "boot-mode" oder die Anwendung 
startet.

Autor: mfd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten!

Das Problem ist, das er mir beim debuggen einfach nur im debug-fenster 
embedded GDB ... suspended sagt.
klicke ich darauf, drücke den start button, sagt er "don't know how to 
run. try "help target"."
in der console erscheint nichts.

dann habe ich die von euch beschriebenen sachen so reingesetzt:
# 
# The following commands will be executed on
# reset (because of run_and_init in the config-file)
# - halt target
# - init ecr
# - flash content of file main.bin into target-memory
# - shutdown openocd
#
# created by Martin Thomas 
# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects
# based on information from Dominic Rath 
#

halt
sleep 10
at91sam7 gpnvm
flash protect 0 0 7 off

# Init - taken form the script openocd_at91sam7_ecr.script 
mww 0xfffffd44 0x00008000  # disable watchdog
mww 0xfffffd08 0xa5000001  # enable user reset
mww 0xfffffc20 0x00000601  # CKGR_MOR : enable the main oscillator
sleep 10
mww 0xfffffc2c 0x00481c0e   # CKGR_PLLR: 96.1097 MHz
sleep 10
mww 0xfffffc30 0x00000007  # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
sleep 10
mww 0xffffff60 0x003c0100  # MC_FMR: flash mode (FWS=1,FMCN=60)
# arm7_9 force_hw_bkpts enable  # program resides in flash

# AT91SAM7 flash command-"batch"
# adapted by Martin Thomas based on information from Dominic Rath - Thanks
arm7_9 dcc_downloads enable
sleep 10
poll
flash probe 0
flash write 0 test.bin 0x0
reset run
sleep 10
shutdown

erst das "at91sam7 gpnvm", als das nicht ging, habe ich das "flash 
protect 0 0 7 off" angefühgt.
ändert sich leider nichts.

bei weiterer suche habe ich in einem forum eine script datei gefunden, 
die so aussieht:
target remote localhost:3333
monitor soft_reset_halt
monitor mww 0xFFFFFF00 0x01 <----- corrected line
monitor reg pc 0x00000000 <----- corrected line
monitor ARM7_9 sw_bkpts enable <----- corrected line
break main
load
continue

verwende ich die, dauert das zwar lange, bis er was macht, aber er 
scheint nach ca. 3-5 min das programm dann auf den uc drauf zu haben. 
leider nicht nach einem reset. übrigens den erase habe ich bisher noch 
nicht verwendet. das debuggen geht dann auch. nur es ist irgendwie doch 
nicht im flash und er es dauert ewig, das man denkt der pc ist 
abgestürzt.

leider bin ich auch nicht in der materie so drin, das ich all die 
befehle kenne. und offen gesagt auch nicht durch jeden befehl in der 
script richtig durchsteige. wobei ich durch die cfg noch gut 
durchsteige. auch habe ich dazu nirgends ein tutorial oder in einem 
forum die nötigen denkanstöße gefunden.

in voller hoffnung

mfd

Autor: mfd (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So sieht nach dem start die windows-knosole aus.

Autor: mfd (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das ist das debugfenster nach den beschriebenen ausführungen

Autor: mfd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leutz,

hat nicht einer eine Lösung für mein Problem?
wäre echt super ...

Greez
mfd

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.