From 78c6aa16fdd3926e15fa16ebab33ea416031ac11 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 9 Sep 2012 15:43:18 +0000 Subject: Reconfigured Shenzhou to use JTAG. Misc Kconfig changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5118 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/configs/ea3131/tools/usb-driver.txt | 16 ++++ nuttx/configs/ea3152/tools/usb-driver.txt | 16 ++++ nuttx/configs/nucleus2g/tools/usb-driver.txt | 16 ++++ .../configs/olimex-lpc1766stk/tools/usb-driver.txt | 16 ++++ .../configs/olimex-strp711/scripts/usb-driver.txt | 16 ++++ nuttx/configs/shenzhou/nsh/defconfig | 13 ++- nuttx/configs/shenzhou/nsh/setenv.sh | 7 +- .../configs/shenzhou/tools/olimex-arm-usb-ocd.cfg | 13 +++ nuttx/configs/shenzhou/tools/oocd.sh | 92 ++++++++++++++++++++++ nuttx/configs/shenzhou/tools/stm32.cfg | 69 ++++++++++++++++ nuttx/configs/shenzhou/tools/usb-driver.txt | 16 ++++ nuttx/configs/stm3210e-eval/tools/usb-driver.txt | 16 ++++ 12 files changed, 302 insertions(+), 4 deletions(-) create mode 100644 nuttx/configs/ea3131/tools/usb-driver.txt create mode 100644 nuttx/configs/ea3152/tools/usb-driver.txt create mode 100644 nuttx/configs/nucleus2g/tools/usb-driver.txt create mode 100644 nuttx/configs/olimex-lpc1766stk/tools/usb-driver.txt create mode 100644 nuttx/configs/olimex-strp711/scripts/usb-driver.txt create mode 100644 nuttx/configs/shenzhou/tools/olimex-arm-usb-ocd.cfg create mode 100755 nuttx/configs/shenzhou/tools/oocd.sh create mode 100644 nuttx/configs/shenzhou/tools/stm32.cfg create mode 100644 nuttx/configs/shenzhou/tools/usb-driver.txt create mode 100644 nuttx/configs/stm3210e-eval/tools/usb-driver.txt (limited to 'nuttx/configs') diff --git a/nuttx/configs/ea3131/tools/usb-driver.txt b/nuttx/configs/ea3131/tools/usb-driver.txt new file mode 100644 index 000000000..2a649dfb8 --- /dev/null +++ b/nuttx/configs/ea3131/tools/usb-driver.txt @@ -0,0 +1,16 @@ +https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf + +Repair procedure for ARM-USB-OCD drivers + +1. Uninstalling ARM-USB-OCD drivers. +1.1. Connect your programmer/debugger to your computer, open Device Manager and uninstall the drivers for ARM-USB-OCD. +1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager, disconnect the programmer from your computer. +1.3. Now you should download FTClean.exe from here: http://www.ftdichip.com/Support/Utilities/FTClean.zip. +1.4. After download is complete extract the “*.zip” file, open folder FTClean, and run FTClean.exe +1.5. Ror VID (Hex) select “Other”. And after that fill the first box with 15ba and “PID (Hex)” with 0004. +1.6. Press “Clean System” button. Make sure that all FTDI devices are disconnected. (My require administrator privileges). + +2. Re-install ARM-USB-OCD driver +2.1 Connect the programmer/debugger to the computer. +2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER directory and install. + diff --git a/nuttx/configs/ea3152/tools/usb-driver.txt b/nuttx/configs/ea3152/tools/usb-driver.txt new file mode 100644 index 000000000..2a649dfb8 --- /dev/null +++ b/nuttx/configs/ea3152/tools/usb-driver.txt @@ -0,0 +1,16 @@ +https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf + +Repair procedure for ARM-USB-OCD drivers + +1. Uninstalling ARM-USB-OCD drivers. +1.1. Connect your programmer/debugger to your computer, open Device Manager and uninstall the drivers for ARM-USB-OCD. +1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager, disconnect the programmer from your computer. +1.3. Now you should download FTClean.exe from here: http://www.ftdichip.com/Support/Utilities/FTClean.zip. +1.4. After download is complete extract the “*.zip” file, open folder FTClean, and run FTClean.exe +1.5. Ror VID (Hex) select “Other”. And after that fill the first box with 15ba and “PID (Hex)” with 0004. +1.6. Press “Clean System” button. Make sure that all FTDI devices are disconnected. (My require administrator privileges). + +2. Re-install ARM-USB-OCD driver +2.1 Connect the programmer/debugger to the computer. +2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER directory and install. + diff --git a/nuttx/configs/nucleus2g/tools/usb-driver.txt b/nuttx/configs/nucleus2g/tools/usb-driver.txt new file mode 100644 index 000000000..2a649dfb8 --- /dev/null +++ b/nuttx/configs/nucleus2g/tools/usb-driver.txt @@ -0,0 +1,16 @@ +https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf + +Repair procedure for ARM-USB-OCD drivers + +1. Uninstalling ARM-USB-OCD drivers. +1.1. Connect your programmer/debugger to your computer, open Device Manager and uninstall the drivers for ARM-USB-OCD. +1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager, disconnect the programmer from your computer. +1.3. Now you should download FTClean.exe from here: http://www.ftdichip.com/Support/Utilities/FTClean.zip. +1.4. After download is complete extract the “*.zip” file, open folder FTClean, and run FTClean.exe +1.5. Ror VID (Hex) select “Other”. And after that fill the first box with 15ba and “PID (Hex)” with 0004. +1.6. Press “Clean System” button. Make sure that all FTDI devices are disconnected. (My require administrator privileges). + +2. Re-install ARM-USB-OCD driver +2.1 Connect the programmer/debugger to the computer. +2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER directory and install. + diff --git a/nuttx/configs/olimex-lpc1766stk/tools/usb-driver.txt b/nuttx/configs/olimex-lpc1766stk/tools/usb-driver.txt new file mode 100644 index 000000000..2a649dfb8 --- /dev/null +++ b/nuttx/configs/olimex-lpc1766stk/tools/usb-driver.txt @@ -0,0 +1,16 @@ +https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf + +Repair procedure for ARM-USB-OCD drivers + +1. Uninstalling ARM-USB-OCD drivers. +1.1. Connect your programmer/debugger to your computer, open Device Manager and uninstall the drivers for ARM-USB-OCD. +1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager, disconnect the programmer from your computer. +1.3. Now you should download FTClean.exe from here: http://www.ftdichip.com/Support/Utilities/FTClean.zip. +1.4. After download is complete extract the “*.zip” file, open folder FTClean, and run FTClean.exe +1.5. Ror VID (Hex) select “Other”. And after that fill the first box with 15ba and “PID (Hex)” with 0004. +1.6. Press “Clean System” button. Make sure that all FTDI devices are disconnected. (My require administrator privileges). + +2. Re-install ARM-USB-OCD driver +2.1 Connect the programmer/debugger to the computer. +2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER directory and install. + diff --git a/nuttx/configs/olimex-strp711/scripts/usb-driver.txt b/nuttx/configs/olimex-strp711/scripts/usb-driver.txt new file mode 100644 index 000000000..2a649dfb8 --- /dev/null +++ b/nuttx/configs/olimex-strp711/scripts/usb-driver.txt @@ -0,0 +1,16 @@ +https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf + +Repair procedure for ARM-USB-OCD drivers + +1. Uninstalling ARM-USB-OCD drivers. +1.1. Connect your programmer/debugger to your computer, open Device Manager and uninstall the drivers for ARM-USB-OCD. +1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager, disconnect the programmer from your computer. +1.3. Now you should download FTClean.exe from here: http://www.ftdichip.com/Support/Utilities/FTClean.zip. +1.4. After download is complete extract the “*.zip” file, open folder FTClean, and run FTClean.exe +1.5. Ror VID (Hex) select “Other”. And after that fill the first box with 15ba and “PID (Hex)” with 0004. +1.6. Press “Clean System” button. Make sure that all FTDI devices are disconnected. (My require administrator privileges). + +2. Re-install ARM-USB-OCD driver +2.1 Connect the programmer/debugger to the computer. +2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER directory and install. + diff --git a/nuttx/configs/shenzhou/nsh/defconfig b/nuttx/configs/shenzhou/nsh/defconfig index 907871104..2030b232b 100644 --- a/nuttx/configs/shenzhou/nsh/defconfig +++ b/nuttx/configs/shenzhou/nsh/defconfig @@ -70,12 +70,15 @@ CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" CONFIG_ARCH_HAVE_MPU=y # CONFIG_ARMV7M_MPU is not set -# CONFIG_ARCH_INTERRUPTSTACK is not set CONFIG_ARCH_IRQPRIO=y CONFIG_BOARD_LOOPSPERMSEC=5483 # CONFIG_ARCH_CALIBRATION is not set # CONFIG_SERIAL_TERMIOS is not set # CONFIG_NET_MULTICAST is not set + +# +# STM32 Configuration Options +# # CONFIG_ARCH_CHIP_STM32F103ZET6 is not set # CONFIG_ARCH_CHIP_STM32F103RET6 is not set # CONFIG_ARCH_CHIP_STM32F103VCT6 is not set @@ -100,7 +103,7 @@ CONFIG_STM32_CODESOURCERYW=y # CONFIG_STM32_DEVKITARM is not set # CONFIG_STM32_RAISONANCE is not set # CONFIG_STM32_BUILDROOT is not set -CONFIG_STM32_DFU=y +# CONFIG_STM32_DFU is not set # # STM32 Peripheral Support @@ -139,6 +142,10 @@ CONFIG_STM32_USART2=y # CONFIG_STM32_USB is not set # CONFIG_STM32_WWDG is not set CONFIG_STM32_SPI=y + +# +# Alternate Pin Mapping +# CONFIG_STM32_USART2_REMAP=y # CONFIG_STM32_SPI1_REMAP is not set CONFIG_STM32_ETH_REMAP=y @@ -184,6 +191,8 @@ CONFIG_ARCH_STACKDUMP=y # CONFIG_DRAM_START=0x20000000 CONFIG_DRAM_SIZE=65536 +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +# CONFIG_ARCH_INTERRUPTSTACK is not set # # Boot options diff --git a/nuttx/configs/shenzhou/nsh/setenv.sh b/nuttx/configs/shenzhou/nsh/setenv.sh index 1ba336393..d57d6f003 100755 --- a/nuttx/configs/shenzhou/nsh/setenv.sh +++ b/nuttx/configs/shenzhou/nsh/setenv.sh @@ -69,7 +69,10 @@ export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ # toolchain. #export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin" -# Add the path to the toolchain to the PATH varialble -export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" +# This is the path to the tools/ subdirectory +export TOOLS_DIR="${WD}/configs/shenzhou/tools" + +# Add the path to the toolchain to the PATH variable +export PATH="${TOOLCHAIN_BIN}:${TOOLS_DIR}:/sbin:/usr/sbin:${PATH_ORIG}" echo "PATH : ${PATH}" diff --git a/nuttx/configs/shenzhou/tools/olimex-arm-usb-ocd.cfg b/nuttx/configs/shenzhou/tools/olimex-arm-usb-ocd.cfg new file mode 100644 index 000000000..9752dd418 --- /dev/null +++ b/nuttx/configs/shenzhou/tools/olimex-arm-usb-ocd.cfg @@ -0,0 +1,13 @@ +# +# Olimex ARM-USB-OCD +# +# http://www.olimex.com/dev/arm-usb-ocd.html +# + +interface ft2232 +ft2232_device_desc "Olimex OpenOCD JTAG" +ft2232_layout olimex-jtag +ft2232_vid_pid 0x15ba 0x0003 + +#jtag_khz 600 + diff --git a/nuttx/configs/shenzhou/tools/oocd.sh b/nuttx/configs/shenzhou/tools/oocd.sh new file mode 100755 index 000000000..259156e31 --- /dev/null +++ b/nuttx/configs/shenzhou/tools/oocd.sh @@ -0,0 +1,92 @@ +#!/bin/sh + +# Get command line parameters + +USAGE="USAGE: $0 [-dh] " +ADVICE="Try '$0 -h' for more information" + +unset DEBUG + +while [ ! -z "$1" ]; do + case $1 in + -d ) + set -x + DEBUG=-d3 + ;; + -h ) + echo "$0 is a tool for generation of proper version files for the NuttX build" + echo "" + echo $USAGE + echo "" + echo "Where:" + echo " -d" + echo " Enable script debug" + echo " -h" + echo " show this help message and exit" + echo " Use the OpenOCD 0.4.0" + echo " " + echo " The full path to the top-level NuttX directory" + exit 0 + ;; + * ) + break; + ;; + esac + shift +done + +TOPDIR=$1 +if [ -z "${TOPDIR}" ]; then + echo "Missing argument" + echo $USAGE + echo $ADVICE + exit 1 +fi + +# This script *probably* only works with the following versions of OpenOCD: + +# Local search directory and configurations + +OPENOCD_SEARCHDIR="${TOPDIR}/configs/shenzhou/tools" +OPENOCD_WSEARCHDIR="`cygpath -w ${OPENOCD_SEARCHDIR}`" + +OPENOCD_PATH="/cygdrive/c/Program Files (x86)/OpenOCD/0.4.0/bin" +OPENOCD_EXE=openocd.exe +OPENOCD_INTERFACE="olimex-arm-usb-ocd.cfg" + + +OPENOCD_TARGET="stm32.cfg" +OPENOCD_ARGS="${DEBUG} -s ${OPENOCD_WSEARCHDIR} -f ${OPENOCD_INTERFACE} -f ${OPENOCD_TARGET}" + +echo "Trying OpenOCD 0.4.0 path: ${OPENOCD_PATH}/${OPENOCD_EXE}" + +# Verify that everything is what it claims it is and is located where it claims it is. + +if [ ! -x "${OPENOCD_PATH}/${OPENOCD_EXE}" ]; then + echo "OpenOCD executable does not exist: ${OPENOCD_PATH}/${OPENOCD_EXE}" + exit 1 +fi +if [ ! -f "${OPENOCD_SEARCHDIR}/${OPENOCD_TARGET}" ]; then + echo "OpenOCD target config file does not exist: ${OPENOCD_SEARCHDIR}/${OPENOCD_TARGET}" + exit 1 +fi +if [ ! -f "${OPENOCD_SEARCHDIR}/${OPENOCD_INTERFACE}" ]; then + echo "OpenOCD interface config file does not exist: ${OPENOCD_SEARCHDIR}/${OPENOCD_INTERFACE}" + exit 1 +fi + +# Enable debug if so requested + +if [ "X$2" = "X-d" ]; then + OPENOCD_ARGS=$OPENOCD_ARGS" -d3" + set -x +fi + +# Okay... do it! + +echo "Starting OpenOCD" +"${OPENOCD_PATH}/${OPENOCD_EXE}" ${OPENOCD_ARGS} & +echo "OpenOCD daemon started" +ps -ef | grep openocd +echo "In GDB: target remote localhost:3333" + diff --git a/nuttx/configs/shenzhou/tools/stm32.cfg b/nuttx/configs/shenzhou/tools/stm32.cfg new file mode 100644 index 000000000..463a85cfd --- /dev/null +++ b/nuttx/configs/shenzhou/tools/stm32.cfg @@ -0,0 +1,69 @@ +# script for stm32 + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME stm32 +} + +if { [info exists ENDIAN] } { + set _ENDIAN $ENDIAN +} else { + set _ENDIAN little +} + +# Work-area is a space in RAM used for flash programming +# By default use 16kB +if { [info exists WORKAREASIZE] } { + set _WORKAREASIZE $WORKAREASIZE +} else { + set _WORKAREASIZE 0x4000 +} + +# JTAG speed should be <= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz +jtag_khz 1000 + +jtag_nsrst_delay 100 +jtag_ntrst_delay 100 + +#jtag scan chain +if { [info exists CPUTAPID ] } { + set _CPUTAPID $CPUTAPID +} else { + # See STM Document RM0008 + # Section 26.6.3 + set _CPUTAPID 0x3ba00477 +} +jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID + +if { [info exists BSTAPID ] } { + # FIXME this never gets used to override defaults... + set _BSTAPID $BSTAPID +} else { + # See STM Document RM0008 + # Section 29.6.2 + # Low density devices, Rev A + set _BSTAPID1 0x06412041 + # Medium density devices, Rev A + set _BSTAPID2 0x06410041 + # Medium density devices, Rev B and Rev Z + set _BSTAPID3 0x16410041 + # High density devices, Rev A + set _BSTAPID4 0x06414041 + # Connectivity line devices, Rev A and Rev Z + set _BSTAPID5 0x06418041 +} +jtag newtap $_CHIPNAME bs -irlen 5 -expected-id $_BSTAPID1 \ + -expected-id $_BSTAPID2 -expected-id $_BSTAPID3 \ + -expected-id $_BSTAPID4 -expected-id $_BSTAPID5 + +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME + +$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 + +set _FLASHNAME $_CHIPNAME.flash +flash bank $_FLASHNAME stm32x 0 0 0 0 $_TARGETNAME + +# For more information about the configuration files, take a look at: +# openocd.texi diff --git a/nuttx/configs/shenzhou/tools/usb-driver.txt b/nuttx/configs/shenzhou/tools/usb-driver.txt new file mode 100644 index 000000000..2a649dfb8 --- /dev/null +++ b/nuttx/configs/shenzhou/tools/usb-driver.txt @@ -0,0 +1,16 @@ +https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf + +Repair procedure for ARM-USB-OCD drivers + +1. Uninstalling ARM-USB-OCD drivers. +1.1. Connect your programmer/debugger to your computer, open Device Manager and uninstall the drivers for ARM-USB-OCD. +1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager, disconnect the programmer from your computer. +1.3. Now you should download FTClean.exe from here: http://www.ftdichip.com/Support/Utilities/FTClean.zip. +1.4. After download is complete extract the “*.zip” file, open folder FTClean, and run FTClean.exe +1.5. Ror VID (Hex) select “Other”. And after that fill the first box with 15ba and “PID (Hex)” with 0004. +1.6. Press “Clean System” button. Make sure that all FTDI devices are disconnected. (My require administrator privileges). + +2. Re-install ARM-USB-OCD driver +2.1 Connect the programmer/debugger to the computer. +2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER directory and install. + diff --git a/nuttx/configs/stm3210e-eval/tools/usb-driver.txt b/nuttx/configs/stm3210e-eval/tools/usb-driver.txt new file mode 100644 index 000000000..2a649dfb8 --- /dev/null +++ b/nuttx/configs/stm3210e-eval/tools/usb-driver.txt @@ -0,0 +1,16 @@ +https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf + +Repair procedure for ARM-USB-OCD drivers + +1. Uninstalling ARM-USB-OCD drivers. +1.1. Connect your programmer/debugger to your computer, open Device Manager and uninstall the drivers for ARM-USB-OCD. +1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager, disconnect the programmer from your computer. +1.3. Now you should download FTClean.exe from here: http://www.ftdichip.com/Support/Utilities/FTClean.zip. +1.4. After download is complete extract the “*.zip” file, open folder FTClean, and run FTClean.exe +1.5. Ror VID (Hex) select “Other”. And after that fill the first box with 15ba and “PID (Hex)” with 0004. +1.6. Press “Clean System” button. Make sure that all FTDI devices are disconnected. (My require administrator privileges). + +2. Re-install ARM-USB-OCD driver +2.1 Connect the programmer/debugger to the computer. +2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER directory and install. + -- cgit v1.2.3