SparkFun Forums 

Where electronics enthusiasts find answers.

Open source ARM Debugger
By frits
#16579
Hi all,

I've been using the Chameleon POD for a few weeks now and use OpenOCD for flashing the ARM7. I've downloaded this zip file:
"OpenOCD_cygwin_ioperm_svn76.zip"

The image to be flashed is 80kbyte in size and it takes about 7.5 seconds to download it. I was wondering is this is a normal and decent speed or not. From what i understand it should be able to get higher speeds?

The Chameleon POD is configured with the ChameleonProgram v1.0 as an 'jtag_accelerator_051211' device. The LPT1 port must be set to EPP (Enhanced Parallel Port) to make it work correctly.


But i keep having problems like this:
>Info: openocd.c:86 main(): Open On-Chip Debugger (2006-06-25 23:00 CEST)
>Error: amt_jtagaccel.c:164 amt_wait_scan_busy(): amt_jtagaccel timed out while waiting for end of scan, rtck was disabled

Just running the program again solves it most of the time.

When i try a newer OpenOCD (SVN80) which does not require Cygwin then it does not recoqnize this interface: amt_jtagaccel. So i can't really try it out with the script below and see if it get's any better.

I have OpenOCD with cygwin which uses this script:
##################################
# OPENOCD "Batch"-Programming
# for Atmel SAM7 ARM7DTMI
#
# Using a Wiggler-Type JTAG-Interface
# Adapted by Martin Thomas (www.siwawi.arubi.uni-kl.de/avr_projects)
# Based on information from Dominic Rath - Thank you!


#daemon configuration
telnet_port 4444
gdb_port 3333

#interface for wiggler
#interface parport
#parport_port 0x378
#parport_cable wiggler
#jtag_speed 0

#interface for chameleon
#interface parport
#parport_port 0x378
#parport_cable chameleon
#jtag_speed 0

#interface for amontec jtag accelerator
interface amt_jtagaccel
parport_port 0x378
#jtag_speed 8 = 48 sec.
#jtag_speed 8
#jtag_speed 7 = 25 sec.
#jtag_speed 7
#jtag_speed 6 = 16 sec.
#jtag_speed 6
#jtag_speed 5 = 9.8 sec.
#jtag_speed 5
#jtag_speed 4 = 7.43 sec.
jtag_speed 4
#jtag_speed 3 = 5.6 sec. (only with very short cable)
#jtag_speed 3
#jtag_speed 2 = 5.0 sec. (only with very short cable)
#jtag_speed 2
#jtag_speed 1 = 4.75 sec. (only with very short cable)
#jtag_speed 1
#jtag_speed 0 = 4.46 sec. (only with very short cable)
#jtag_speed 0

#use combined on interfaces or targets that can't set TRST/SRST separately
## mthomas: the following reset_configs did not work for me with the Olimex Wiggler-Clone
##reset_config trst_and_srst srst_pulls_trst trst_open_drain srst_push_pull
##reset_config trst_and_srst trst_pulls_srst
## mthomas: used this instead for Atmel SAM7S64-EK
## maybe a side-effect from the reset-button-activation
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
#jtag_device 5 0x01 0x1f 0x01

#target configuration
daemon_startup reset
#target <type> <startup mode>
#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
target arm7tdmi little run_and_init 0 arm7tdmi_r4
#target arm7tdmi little reset_halt 0 arm7tdmi_r4

# mthomas: the file oocd_flash2138.script is a list of the openocd-commands
target_script 0 reset oocd_flash_sam7.script
run_and_halt_time 0 30
working_area 0 0x40000000 0x4000 nobackup

##flash configuration for LPC2294 - Dominic's original
##flash bank lpc2000 0x0 0x40000 0 0 lpc2000_v1 0 14765 calc_checksum
##flash bank cfi 0x80000000 0x400000 2 2 0

# mthomas: LPC2138 @ 12MHz 0x7D000 from 500*1024 (not 512!)
##flash bank lpc2000 0x0 0x7D000 0 0 lpc2000_v2 0 12000 calc_checksum

# mthomas AT91SAM7
flash bank at91sam7 0 0 0 0 0
# Informatione: erase command (telnet-interface) for complete flash:
# flash erase 0 0 numlockbits-1
# SAM7S64 with 16 lockbits: flash erase 0 0 15
##################################



Thanks anyway, Frits