From ef268c96bb562fa09f15675305b76e8231502db7 Mon Sep 17 00:00:00 2001 From: oharboe Date: Fri, 4 Jul 2008 08:08:29 +0000 Subject: [PATCH] tcl config script example git-svn-id: svn://svn.berlios.de/openocd/trunk@744 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/openocd.c | 4 ++- src/target/Makefile.am | 2 +- src/target/target/at91eb40a.tcl | 52 +++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/target/target/at91eb40a.tcl diff --git a/src/openocd.c b/src/openocd.c index c17e149c2d..e24eb9a7cd 100644 --- a/src/openocd.c +++ b/src/openocd.c @@ -182,9 +182,11 @@ static void tcl_output(void *privData, const char *file, int line, int jim_command(command_context_t *context, char *line) { int retval=ERROR_OK; + /* FIX!!!! in reality there is only one cmd_ctx handler, but consider + what might happen here if there are multiple handlers w/reentrant callback + fn's... shudder! */ active_cmd_ctx=context; int retcode=Jim_Eval(interp, line); - active_cmd_ctx=NULL; const char *result; int reslen; diff --git a/src/target/Makefile.am b/src/target/Makefile.am index 959b34d363..28d5862b8a 100644 --- a/src/target/Makefile.am +++ b/src/target/Makefile.am @@ -34,5 +34,5 @@ nobase_dist_pkglib_DATA = xscale/debug_handler.bin event/at91eb40a_reset.script interface/calao-usb-a9260.cfg target/at91sam9260minimal.cfg event/lpc2148_reset.script \ interface/chameleon.cfg interface/at91rm9200.cfg interface/jlink.cfg interface/arm-usb-ocd.cfg \ interface/signalyzer.cfg event/eir-sam7se512_reset.script target/eir-sam7se512.cfg \ - event/hammer_reset.script interface/flyswatter.cfg target/hammer.cfg target/mx31.cfg + event/hammer_reset.script interface/flyswatter.cfg target/hammer.cfg target/mx31.cfg target/at91eb40a.tcl diff --git a/src/target/target/at91eb40a.tcl b/src/target/target/at91eb40a.tcl new file mode 100644 index 0000000000..6c39622753 --- /dev/null +++ b/src/target/target/at91eb40a.tcl @@ -0,0 +1,52 @@ +#Script for AT91EB40a + +#Atmel ties SRST & TRST together, at which point it makes +#no sense to use TRST, but use TMS instead. +# +#The annoying thing with tying SRST & TRST together is that +#there is no way to halt the CPU *before and during* the +#SRST reset, which means that the CPU will run a number +#of cycles before it can be halted(as much as milliseconds). +openocd {reset_config srst_only srst_pulls_trst} + +#jtag scan chain +#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) +openocd {jtag_device 4 0x1 0xf 0xe} + +#target configuration +openocd {target arm7tdmi little 0 arm7tdmi-s_r4} + +# speed up memory downloads +openocd {arm7 fast_memory_access enable} +openocd {arm7_9 dcc_downloads enable} + +# OpenOCD does not have a flash driver for for AT91FR40162S +openocd {target_script 0 reset event/at91eb40a_reset.script} + +#flash driver +openocd {flash bank ecosflash 0x01000000 0x200000 2 2 0 ecos/at91eb40a.elf} + +# required for usable performance. Used for lots of +# other things than flash programming. +openocd {working_area 0 0x00000000 0x20000 nobackup} + +#force hardware values - we're running out of flash more +#often than not. The user can disable this in his +#subsequent config script. +openocd {arm7_9 force_hw_bkpts enable} + +set reset_count 0 + +proc target_reset_0 {} { + global reset_count + # Reset script for AT91EB40a + openocd {reg cpsr 0x000000D3} + openocd {mww 0xFFE00020 0x1} + openocd {mww 0xFFE00024 0x00000000} + openocd {mww 0xFFE00000 0x01002539} + openocd {mww 0xFFFFF124 0xFFFFFFFF} + openocd {mww 0xffff0010 0x100} + openocd {mww 0xffff0034 0x100} + set reset_count [expr $reset_count+1] + puts "Testing reset $reset_count !" +} -- 2.30.2