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
This commit is contained in:
patacongo 2012-09-09 15:43:18 +00:00
parent 6bfb80eb9e
commit 52150a94d9
49 changed files with 391 additions and 21 deletions

View File

@ -14,23 +14,27 @@ config ARCH_8051
config ARCH_ARM
bool "ARM"
select ARCH_HAVE_INTERRUPTSTACK
---help---
The ARM architectures
config ARCH_AVR
bool "AVR"
select ARCH_NOINTC
select ARCH_HAVE_INTERRUPTSTACK
---help---
Atmel 8-bit bit AVR and 32-bit AVR32 architectures
config ARCH_HC
bool "Freescale HC"
select ARCH_NOINTC
select ARCH_HAVE_INTERRUPTSTACK
---help---
Freescale HC architectures (M9S12)
config ARCH_MIPS
bool "MIPS"
select ARCH_HAVE_INTERRUPTSTACK
---help---
MIPS architectures (PIC32)
@ -43,6 +47,7 @@ config ARCH_RGMP
config ARCH_SH
bool "Renesas"
select ARCH_NOINTC
select ARCH_HAVE_INTERRUPTSTACK
---help---
Renesas architectures (SH and M16C).
@ -140,6 +145,18 @@ config DRAM_SIZE
this may be SDRAM or SRAM or any other RAM technology that support
program execution.
config ARCH_HAVE_INTERRUPTSTACK
bool
config ARCH_INTERRUPTSTACK
bool "Use interrupt stack"
depends on ARCH_HAVE_INTERRUPTSTACK
default y
---help---
This architecture supports an interrupt stack. If defined, this symbol
is the size of the interrupt stack in bytes. If not defined, the user
task stacks will be used during interrupt handling.
comment "Boot options"
choice

View File

@ -216,14 +216,6 @@ config PAGING
If set =y in your configation file, this setting will enable the on-demand
paging feature as described in http://www.nuttx.org/NuttXDemandPaging.html.
config ARCH_INTERRUPTSTACK
bool "Use interrupt stack"
default y
---help---
This architecture supports an interrupt stack. If defined, this symbol
is the size of the interrupt stack in bytes. If not defined, the user
task stacks will be used during interrupt handling.
config ARCH_IRQPRIO
bool "Interrupt priority"
default y if ARCH_CORTEXM3 || ARCH_CORTEXM4

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "C5471 Configuration Options"

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "Calypso Configuration Options"

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "DM320 Configuration Options"

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "i.MX Configuration Options"

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "Kinetis Configuration Options"

View File

@ -3,6 +3,8 @@
# see misc/tools/kconfig-language.txt.
#
comment "LM3S Configuration Options"
choice
prompt "LM3S Chip Selection"
default ARCH_CHIP_LM3S6965

View File

@ -3,6 +3,8 @@
# see misc/tools/kconfig-language.txt.
#
comment "LPC17xx Configuration Options"
choice
prompt "NXP LPC17XX Chip Selection"
default ARCH_CHIP_LPC1768

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "LPC214x Configuration Options"

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "LPC2378 Configuration Options"

View File

@ -3,6 +3,8 @@
# see misc/tools/kconfig-language.txt.
#
comment "LPC31xx Configuration Options"
choice
prompt "LPC31 Chip Selection"
default ARCH_CHIP_LPC3131

View File

@ -3,6 +3,8 @@
# see misc/tools/kconfig-language.txt.
#
comment "LPC43xx Configuration Options"
choice
prompt "LPC43XX Chip Selection"
default ARCH_CHIP_LPC4330FET100

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "AT91SAM3U Configuration Options"

View File

@ -3,6 +3,8 @@
# see misc/tools/kconfig-language.txt.
#
comment "STM32 Configuration Options"
choice
prompt "STM32 Chip Selection"
default ARCH_CHIP_STM32F103ZET6
@ -414,6 +416,8 @@ config STM32_CAN
bool
default y if STM32_CAN1 || STM32_CAN2
menu "Alternate Pin Mapping"
choice
prompt "TIM1 Alternate Pin Mappings"
depends on STM32_STM32F10XX && STM32_TIM1
@ -537,6 +541,8 @@ config STM32_ETH_REMAP
default n
depends on STM32_CONNECTIVITYLINE && STM32_ETHMAC
endmenu
choice
prompt "JTAG Configuration"
default STM32_JTAG_DISABLE

View File

@ -2,3 +2,5 @@
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
comment "STR71x Configuration Options"

View File

@ -4,4 +4,6 @@
#
if ARCH_AT32UC3
comment "AT32U3 Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_AT90USB
comment "AT90USB Configuration Options"
endif

View File

@ -4,5 +4,7 @@
#
if ARCH_ATMEGA
comment "ATMega Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_FAMILY_AVR
comment "AVR Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_FAMILY_AVR32
comment "AVR32 Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_HSC12
comment "M9S12 Configuration Options"
endif

View File

@ -27,14 +27,6 @@ config ARCH_CHIP
string
default "pic32mx" if ARCH_CHIP_PIC32MX
config ARCH_INTERRUPTSTACK
bool "Use interrupt stack"
default y
---help---
This architecture supports an interrupt stack. If defined, this symbol
is the size of the interrupt stack in bytes. If not defined, the user
task stacks will be used during interrupt handling.
config ARCH_IRQPRIO
bool "Interrupt priority"
default y if ARCH_CHIP_PIC32MX

View File

@ -4,4 +4,6 @@
#
if ARCH_MIPS32
comment "MIPS32 Configuration Options"
endif

View File

@ -4,6 +4,7 @@
#
if ARCH_CHIP_PIC32MX
comment "PIC32MX Configuration Options"
choice
prompt "PIC32MX chip selection"

View File

@ -4,6 +4,8 @@
#
if ARCH_RGMP
comment "RGMP Configuration Options"
choice
prompt "RGMP Architecture"
default RGMP_SUBARCH_X86

View File

@ -4,4 +4,6 @@
#
if ARCH_M16C
comment "M16C Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_SH1
comment "SH-1 Configuration Options"
endif

View File

@ -4,6 +4,8 @@
#
if ARCH_SIM
comment "Simulation Configuration Options"
config SIM_M32
bool "Build 32-bit simulation on 64-bit machine"
default n

View File

@ -4,6 +4,8 @@
#
if ARCH_X86
comment "x86 Configuration Options"
choice
prompt "x86 chip selection"
default ARCH_I486

View File

@ -4,4 +4,6 @@
#
if ARCH_X86
comment "Common Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_I486
comment "i486 Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_CHIP_QEMU
comment "QEMU Configuration Options"
endif

View File

@ -4,6 +4,7 @@
#
if ARCH_Z16
comment "Z16 Configuration Options"
choice
prompt "ZNEO chip selection"

View File

@ -4,4 +4,6 @@
#
if ARCH_Z16
comment "Common Configuration Options"
endif

View File

@ -4,4 +4,6 @@
#
if ARCH_CHIP_Z16F
comment "Z16F Configuration Options"
endif

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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}"

View File

@ -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

92
configs/shenzhou/tools/oocd.sh Executable file
View File

@ -0,0 +1,92 @@
#!/bin/sh
# Get command line parameters
USAGE="USAGE: $0 [-dh] <TOPDIR>"
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 " <TOPDIR>"
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"

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -596,7 +596,10 @@ static uint16_t recvfrom_tcpinterrupt(struct uip_driver_s *dev, void *conn,
pstate->rf_cb->priv = NULL;
pstate->rf_cb->event = NULL;
/* Report an error only if no data has been received */
/* Report an error only if no data has been received. (If
* CONFIG_NET_TCP_RECVDELAY then rf_recvlen should always be
* zero).
*/
#if CONFIG_NET_TCP_RECVDELAY > 0
if (pstate->rf_recvlen == 0)