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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.