Using OpenOCD/GDB with AT91SAM7X-EK & Amontec Chameleon

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

#target arm7tdmi

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