Forum: Mikrocontroller und Digitale Elektronik OpenOCD mit AT91SAM7S256-EK und Wiggler


von Thomas L. (santos10)


Lesenswert?

Hallo,

ich versuche auf mein selbstgebautes Demoboard mit einem AT91SAM7S256
das Beispielprogramm AT91SAM7S-USART_USB_SAM7S von Martin Thomas auf den
µC rüberzuflashen. Ich benutze einen selbstgebauten Wiggler und Openocd.
Im cmd habe ich folgendes eingegeben:
openocd-pp -f openocd_at91sam7s_flash_wiggler.cfg

Als Ausgabe erhalte ich:

make program

Programming with OPENOCD
openocd_go_flash.cmd
Open On-Chip Debugger (2008-03-22 12:00 CET) svn: r520
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/
Info:    jtag.c:1329 jtag_examine_chain(): JTAG device found: 0x3f0f0f0f
(Manufacturer: 0x787, Part: 0xf0f0, Version: 0x3)
Warning: jtag.c:902 jtag_add_reset(): requested reset would assert trst
Info:    target.c:240 target_init_handler(): executing reset script
'openocd_at91sam7s_flash.script'
Warning: arm7_9_common.c:972 arm7_9_halt(): target was already halted
Warning: arm7_9_common.c:972 arm7_9_halt(): target was already halted
Info:    options.c:50 configuration_output_handler(): dcc downloads are
enabled
Info:    options.c:50 configuration_output_handler(): flash 'at91sam7'
found at 0x00100000
Info:    options.c:50 configuration_output_handler(): Command write not
found
Warning: jtag.c:902 jtag_add_reset(): requested reset would assert trst

Ich verstehe nicht, was 'Command write not found' bedeutet. Was bedeutet
dies?

von Thomas L. (santos10)


Lesenswert?

Die Wiggler Datei ist:

#
# Flash AT91SAM7S memory using openocd
# and a Wiggler-type JTAG-interface
#
# created by Martin Thomas
# based on information from Dominic Rath
#

#daemon configuration
telnet_port 4444
gdb_port 3333

#interface
interface parport
parport_port 0x378
parport_cable wiggler
jtag_speed 0

#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_at91sam7s_flash.script
working_area 0 0x00200000 0x4000 nobackup
flash bank at91sam7 0 0 0 0 0

# Information:
# erase command (telnet-interface) for complete flash:
# flash erase <num> 0 numlockbits-1 (can be seen from output of flash
info 0)
# SAM7S64 with 16 lockbits and bank 0: flash erase 0 0 15
# set/clear NVM-Bits:
# at91sam7 gpnvm <num> <bit> <set|clear>
# disable locking from SAM-BA
# flash protect 0 0 1 off

# For more information about the configuration files, take a look at:
# http://openfacts.berlios.de/index-en.phtml?title=O...

------------------------------------------------------------------------ 
------
openocd_at91sam7s_flash.script

#
# The following command wills 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
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 main.bin 0x0
#flash write_image main.hex
sleep 10
reset run
sleep 10
shutdown

Wo liegt der Unterschied zwischen 'flash write' und 'flash_write' image
?
Ich weiß echt nicht weiter und habe im Netz noch keine Hinweise finden
können. Würde mich auf eine Antwort freuen.

Thomas

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Meine Beispiele wurden mit einer alten Version von OpenOCD getestet. Die 
OpenOCD-Entwickler haben sich dazu entschlossen aufzuräumen und einige 
Anweisungen wurden ersetzt. Somit funktionieren viele ältere Beispiele 
nicht mehr mit aktuellen OpenOCD Versionen. Weiteres im Abschnitt 
"Deprecated/Removed Commands" in der OpenOCD-Dokumentation. Falls nicht 
woanders zu finden: Dok. für SVN706 z.Zt auf "meinem" Server 
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/openocd_intro/openocd_706.pdf

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.