mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik OpenOCD: AT91SAM7A3 bleibt nach Programmierung im Reset


Autor: Daniel J. (deejay)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe hier folgende Situation: Und zwar programmiere ich einen 
AT91SAM7A3 mit OpenOCD (2007-09-05 09:00 CEST) via Wiggler unter Ubuntu 
mit der OpenOCD-Konfiguration, die es auf der Seite von Martin Thomas 
gibt.

Das Programmieren funktioniert soweit. Allerdings startet das Programm 
nicht automatisch, sondern der Reset bleibt low. Erst nachdem ich 
entweder die Versorgungsspannung wegnehme und wieder anlege oder 
alternativ den Wiggler abziehe, wird das Programm ausgeführt.
Da ich mit der gleichen OpenOCD-Konfiguration problemlos AT91SAM7S 
programmiere und hier das Programm direkt nach der Programmierung 
ausgeführt wird, bin ich ein wenig ratlos...

Hier nochmal die Skripte für OpenOCD:
openocd_at91sam7a3_flash.script:
--------------------------------
halt
sleep 10
wait_halt


# 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"
arm7_9 dcc_downloads enable
flash probe 0
flash write 0 ../bin/main.bin 0x0
#flash erase 0 0 15

sleep 10
reset run
sleep 10
halt
sleep 10
mww 0xfffffd08 0xa5000000  # disable user reset
reset run
sleep 10
poll
shutdown

openocd_at91sam7a3_flash_wiggler.cfg:
-------------------------------------
telnet_port 4444
gdb_port 3333

interface parport
parport_port /dev/parport0
parport_cable wiggler
# try to increase value after jtag_speed if programming does not work!
jtag_speed 0
# try to increase value after jtag_nsrst_delay if programming does not work!
jtag_nsrst_delay 50

#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only 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_init 0 arm7tdmi
run_and_halt_time 0 30

# flash-options AT91
target_script 0 reset openocd_at91sam7a3_flash.script
working_area 0 0x00200000 0x4000 nobackup
flash bank at91sam7 0 0 0 0 0

Ich habe mich auch schonmal testweise an einem Reset-Skript versucht, 
das nur den Mikrocontroller resettet (per JTAG). Für einen Moment läuft 
während der Skript-Abarbeitung dann auch das Programm, aber sobald mit 
"shutdown" das Skript endet, landet der Controller wieder im Reset. Mit 
entsprechenden Delays kann man eindeutig feststellen, dass der 
Controller hingegen vor dem shutdown nicht im Reset hängt...

Was muss ich ändern / hinzufügen, damit das Programm nach dem Flashen 
des AT91SAM7A3 automatisch startet? Ich bin für jeden Tipp dankbar.

Gruß,
 Daniel

Autor: Daniel J. (deejay)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hochschieb

Hat keine eine Idee?

Autor: OR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bei mir führe ich nach dem flashen:

reset run
resume
exit

aus.

Grüße
Oliver

Autor: Daniel J. (deejay)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke für den Tipp, aber leider führt das dazu, dass sich OpenOCD nicht 
beendet. Der µC läuft zwar dann und führt das Programm aus, aber der 
OpenOCD-Aufruf wird nicht beendet... Mit "shutdown" statt "exit" beendet 
OpenOCD, aber dann hängt auch wieder der µC im Reset.

Gruß,
 Daniel

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.