From 152b9afee9e5934f7d95a48194a6e8248293a61b Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 21 Feb 2010 16:37:06 +0000 Subject: [PATCH] Add OpenOCD notes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2538 42af7a65-404d-4744-a932-0658087f49c3 --- configs/ea3131/README.txt | 25 +++++++++++++++++ configs/ea3131/tools/armusbocd.cfg | 34 +++++++++++++++++++++++ configs/ea3131/tools/oocd.sh | 43 ++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100755 configs/ea3131/tools/armusbocd.cfg create mode 100755 configs/ea3131/tools/oocd.sh diff --git a/configs/ea3131/README.txt b/configs/ea3131/README.txt index 51059df72f..811ff34e1f 100755 --- a/configs/ea3131/README.txt +++ b/configs/ea3131/README.txt @@ -194,6 +194,31 @@ Image Format If you don't use setenv.sh, then just set your PATH variable appropriately or use the full path to mklpc.sh in the final step. +OpenOCD +^^^^^^^ + + I have been using the Olimex ARM-USB-OCD JTAG debugger with the EA3131 + (http://www.olimex.com). The OpenOCD configuration file is here: + tools/armusbocb.cfg. There is also a script on the tools directory that + I used to start the OpenOCD daemon on my system called oocd.sh. That + script would probably require some modifications to work in another + environment: + + - possibly the value of OPENOCD_PATH + - If you are working under Linux you will need to change any + occurances of `cygpath -w blablabla` to just blablabla + + Then you should be able to start the OpenOCD daemon like: + + tools/oocd.sh + + Where is the directory where NuttX is installed. + + Once the OpenOCD daemon has been started, you can connect to it via + GDB using the following GDB command: + + (gdb) target remote localhost:3333 + ARM/EA3131-specific Configuration Options ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ CONFIG_ARCH - Identifies the arch/ subdirectory. This should diff --git a/configs/ea3131/tools/armusbocd.cfg b/configs/ea3131/tools/armusbocd.cfg new file mode 100755 index 0000000000..de17e8b0e1 --- /dev/null +++ b/configs/ea3131/tools/armusbocd.cfg @@ -0,0 +1,34 @@ +#daemon configuration +telnet_port 4444 +gdb_port 3333 + +#interface +interface ft2232 +ft2232_device_desc "Olimex OpenOCD JTAG A" +ft2232_layout "olimex-jtag" +ft2232_vid_pid 0x15BA 0x0003 +jtag_speed 2 + +#use combined on interfaces or targets that can't set TRST/SRST separately +reset_config trst_and_srst separate + +#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 +#target arm9ejs +target arm926ejs little run_and_halt 0 arm926ejs +run_and_halt_time 0 30 + +#target_script 0 reset oocd_flash2138.script +working_area 0 0x1102800 0x60000 nobackup + +#flash configuration +#flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v2 12000 calc_checksum + +# For more information about the configuration files, take a look at: +# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger diff --git a/configs/ea3131/tools/oocd.sh b/configs/ea3131/tools/oocd.sh new file mode 100755 index 0000000000..7948c1e03e --- /dev/null +++ b/configs/ea3131/tools/oocd.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +TOPDIR=$1 +USAGE="$0 [-d]" +if [ -z "${TOPDIR}" ]; then + echo "Missing argument" + echo $USAGE + exit 1 +fi + +OPENOCD_PATH="/cygdrive/c/gccfd/openocd/bin" +OPENOCD_EXE=openocd-ftd2xx.exe +OPENOCD_CFG="${TOPDIR}/configs/ea3131/tools/armusbocd.cfg" +OPENOCD_ARGS="-f `cygpath -w ${OPENOCD_CFG}`" +~/projects/nuttx/nuttx/configs/ea3131/tool + +if [ "X$2" = "X-d" ]; then + OPENOCD_ARGS=$OPENOCD_ARGS" -d3" + set -x +fi + +if [ ! -d ${OPENOCD_PATH} ]; then + echo "OpenOCD path does not exist: ${OPENOCD_PATH}" + exit 1 +fi +if [ ! -x ${OPENOCD_PATH}/${OPENOCD_EXE} ]; then + echo "OpenOCD does not exist: ${OPENOCD_PATH}/${OPENOCD_EXE}" + exit 1 +fi +if [ ! -f ${OPENOCD_CFG} ]; then + echo "OpenOCD config file does not exist: ${OPENOCD_CFG}" + exit 1 +fi + +echo "Starting OpenOCD" +${OPENOCD_PATH}/${OPENOCD_EXE} ${OPENOCD_ARGS} & +echo "OpenOCD daemon started" +ps -ef | grep openocd +echo "In GDB: target remote localhost:3333" + + + +