Forum: Mikrocontroller und Digitale Elektronik OpenOCD STR9 Flashen


von Wolfgang X. (xxx)


Lesenswert?

Hallo,

ich bin gerade dabei unter Eclipse (YAGARTO) einen STR9 Prozessor zu 
programmieren. Als Debugger verwende ich den JTAG von Amontec.

Flashen möchte ich den Prozessor über dem OpenOCD. Dafür benötigt man 
ein Config file und ein Tatrget spezifisches Flash - Skript.

das Config file sieht folgendermaßen aus und scheint auch zu 
funktionieren:
------------------------------------------------------------------------ 
--
daemon configuration
telnet_port 4444
gdb_port 3333


#interface
interface ft2232
ft2232_device_desc "Amontec JTAGkey A"
ft2232_layout jtagkey
jtag_speed 1
jtag_nsrst_delay 200
jtag_ntrst_delay 200


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


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


#target configuration
daemon_startup reset


#target <type> <startup mode>
#target arm966e <endianness> <reset mode> <chainpos> <variant>
target arm966e little reset_init 1 arm966e
run_and_halt_time 0 30


working_area 0 0x50000000 16384 nobackup


#flash bank <driver> <base> <size> <chip_width> <bus_width>
flash bank str9x 0x00000000 0x00080000 0 0 0

#Script used for FLASH programming
target_script 0 reset C:\OpenOCD_Skript\str91x_flashprogram.ocd
------------------------------------------------------------------------ 
--


das targetspezifische Flash-Skript file sieht folgendermaßen aus:

------------------------------------------------------------------------ 
--
#  OpenOCD Target Script for Atmel AT91SAM7S256
#
#  Programmer: James P Lynch
#

wait_halt      # halt the processor and wait
armv4_5 core_state arm  # select the core state

mww 0xffffff60 0x00320100  # set flash wait state (AT91C_MC_FMR)
mww 0xfffffd44 0xa0008000  # watchdog disable (AT91C_WDTC_WDMR)
mww 0xfffffc20 0xa0000601  # enable main oscillator (AT91C_PMC_MOR)
wait 100      # wait 100 ms
mww 0xfffffc2c 0x00480a0e  # set PLL register (AT91C_PMC_PLLR)
wait 200      # wait 200 ms
mww 0xfffffc30 0x7    # set master clock to PLL (AT91C_PMC_MCKR)
wait 100      # wait 100 ms
mww 0xfffffd08 0xa5000401  # enable user reset AT91C_RSTC_RMR

flash write 0 C:\Documents and Settings\\workspace\TEST\leds_ROM.bin 0x0 
# program the onchip flash
reset      # reset processor
shutdown      # stop OpenOCD

-----------------------------------------------------------------------

beim durchlaufen des Target-spezifischen Flashskripts wird folgende 
Fehlermeldung ausgegeben:

Info:configuration.c:50 configuration_output_handler(): Command write 
not found


hat einer von euch eine Idee woran es liegen könnte?

von Micro M. (micromann)


Lesenswert?

> Target Script for Atmel AT91SAM7S256

das klingt aber nicht nach STR ...

> # set flash wait state (AT91C_MC_FMR)

und auch das klingt eher nach ATMEL ...

von js (Gast)


Lesenswert?

Hallo Wolfgang,

unter
http://www.intilinux.com/embedded/530/using-open-source-tools-for-str7xx-cross-development-2/
gibt es ein sehr gutes Tutorial von Giacomo Fazio und Antonio Nasca für 
den STR7x.
Im Anhang wird dabei auch auf die Besonderheiten der STR9x Familie 
eingegangen und die auf der Internetseite verlinkte Zip-Datei enthält 
openOCD Configs & Scripte für den STR91x.

Viele Erfolg :-)
JS

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.