diff --git a/nuttx/arch/Kconfig b/nuttx/arch/Kconfig index 92890be96a..13335441e5 100644 --- a/nuttx/arch/Kconfig +++ b/nuttx/arch/Kconfig @@ -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 diff --git a/nuttx/arch/arm/Kconfig b/nuttx/arch/arm/Kconfig index 6550950e73..3bd5312326 100644 --- a/nuttx/arch/arm/Kconfig +++ b/nuttx/arch/arm/Kconfig @@ -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 diff --git a/nuttx/arch/arm/src/c5471/Kconfig b/nuttx/arch/arm/src/c5471/Kconfig index ae2bf31307..06363ad7df 100644 --- a/nuttx/arch/arm/src/c5471/Kconfig +++ b/nuttx/arch/arm/src/c5471/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "C5471 Configuration Options" diff --git a/nuttx/arch/arm/src/calypso/Kconfig b/nuttx/arch/arm/src/calypso/Kconfig index ae2bf31307..65726a6096 100644 --- a/nuttx/arch/arm/src/calypso/Kconfig +++ b/nuttx/arch/arm/src/calypso/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "Calypso Configuration Options" diff --git a/nuttx/arch/arm/src/dm320/Kconfig b/nuttx/arch/arm/src/dm320/Kconfig index ae2bf31307..0255c5ff1b 100644 --- a/nuttx/arch/arm/src/dm320/Kconfig +++ b/nuttx/arch/arm/src/dm320/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "DM320 Configuration Options" diff --git a/nuttx/arch/arm/src/imx/Kconfig b/nuttx/arch/arm/src/imx/Kconfig index ae2bf31307..879f50ef7d 100644 --- a/nuttx/arch/arm/src/imx/Kconfig +++ b/nuttx/arch/arm/src/imx/Kconfig @@ -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" diff --git a/nuttx/arch/arm/src/kinetis/Kconfig b/nuttx/arch/arm/src/kinetis/Kconfig index ae2bf31307..210683f59f 100644 --- a/nuttx/arch/arm/src/kinetis/Kconfig +++ b/nuttx/arch/arm/src/kinetis/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "Kinetis Configuration Options" diff --git a/nuttx/arch/arm/src/lm3s/Kconfig b/nuttx/arch/arm/src/lm3s/Kconfig index 1fd203f4fc..03da5c458a 100644 --- a/nuttx/arch/arm/src/lm3s/Kconfig +++ b/nuttx/arch/arm/src/lm3s/Kconfig @@ -3,6 +3,8 @@ # see misc/tools/kconfig-language.txt. # +comment "LM3S Configuration Options" + choice prompt "LM3S Chip Selection" default ARCH_CHIP_LM3S6965 diff --git a/nuttx/arch/arm/src/lpc17xx/Kconfig b/nuttx/arch/arm/src/lpc17xx/Kconfig index dc28f8c100..2769fc231f 100644 --- a/nuttx/arch/arm/src/lpc17xx/Kconfig +++ b/nuttx/arch/arm/src/lpc17xx/Kconfig @@ -3,6 +3,8 @@ # see misc/tools/kconfig-language.txt. # +comment "LPC17xx Configuration Options" + choice prompt "NXP LPC17XX Chip Selection" default ARCH_CHIP_LPC1768 diff --git a/nuttx/arch/arm/src/lpc214x/Kconfig b/nuttx/arch/arm/src/lpc214x/Kconfig index ae2bf31307..a26483ed9e 100644 --- a/nuttx/arch/arm/src/lpc214x/Kconfig +++ b/nuttx/arch/arm/src/lpc214x/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "LPC214x Configuration Options" diff --git a/nuttx/arch/arm/src/lpc2378/Kconfig b/nuttx/arch/arm/src/lpc2378/Kconfig index ae2bf31307..89a515d6ac 100644 --- a/nuttx/arch/arm/src/lpc2378/Kconfig +++ b/nuttx/arch/arm/src/lpc2378/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "LPC2378 Configuration Options" diff --git a/nuttx/arch/arm/src/lpc31xx/Kconfig b/nuttx/arch/arm/src/lpc31xx/Kconfig index 17daf94b75..39b19b95d5 100644 --- a/nuttx/arch/arm/src/lpc31xx/Kconfig +++ b/nuttx/arch/arm/src/lpc31xx/Kconfig @@ -3,6 +3,8 @@ # see misc/tools/kconfig-language.txt. # +comment "LPC31xx Configuration Options" + choice prompt "LPC31 Chip Selection" default ARCH_CHIP_LPC3131 diff --git a/nuttx/arch/arm/src/lpc43xx/Kconfig b/nuttx/arch/arm/src/lpc43xx/Kconfig index 0ae9f8ffef..4653b2ee35 100644 --- a/nuttx/arch/arm/src/lpc43xx/Kconfig +++ b/nuttx/arch/arm/src/lpc43xx/Kconfig @@ -3,6 +3,8 @@ # see misc/tools/kconfig-language.txt. # +comment "LPC43xx Configuration Options" + choice prompt "LPC43XX Chip Selection" default ARCH_CHIP_LPC4330FET100 diff --git a/nuttx/arch/arm/src/sam3u/Kconfig b/nuttx/arch/arm/src/sam3u/Kconfig index ae2bf31307..b845655474 100644 --- a/nuttx/arch/arm/src/sam3u/Kconfig +++ b/nuttx/arch/arm/src/sam3u/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "AT91SAM3U Configuration Options" diff --git a/nuttx/arch/arm/src/stm32/Kconfig b/nuttx/arch/arm/src/stm32/Kconfig index ef1ca63cec..80610f271e 100644 --- a/nuttx/arch/arm/src/stm32/Kconfig +++ b/nuttx/arch/arm/src/stm32/Kconfig @@ -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 diff --git a/nuttx/arch/arm/src/str71x/Kconfig b/nuttx/arch/arm/src/str71x/Kconfig index ae2bf31307..0e9c87d54e 100644 --- a/nuttx/arch/arm/src/str71x/Kconfig +++ b/nuttx/arch/arm/src/str71x/Kconfig @@ -2,3 +2,5 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +comment "STR71x Configuration Options" diff --git a/nuttx/arch/avr/src/at32uc3/Kconfig b/nuttx/arch/avr/src/at32uc3/Kconfig index 4c3bd28c66..fcb9f8405e 100644 --- a/nuttx/arch/avr/src/at32uc3/Kconfig +++ b/nuttx/arch/avr/src/at32uc3/Kconfig @@ -4,4 +4,6 @@ # if ARCH_AT32UC3 +comment "AT32U3 Configuration Options" + endif diff --git a/nuttx/arch/avr/src/at90usb/Kconfig b/nuttx/arch/avr/src/at90usb/Kconfig index 78cd6d059b..8f9978a529 100644 --- a/nuttx/arch/avr/src/at90usb/Kconfig +++ b/nuttx/arch/avr/src/at90usb/Kconfig @@ -4,4 +4,6 @@ # if ARCH_AT90USB +comment "AT90USB Configuration Options" + endif diff --git a/nuttx/arch/avr/src/atmega/Kconfig b/nuttx/arch/avr/src/atmega/Kconfig index f0004d7fec..145b525df6 100644 --- a/nuttx/arch/avr/src/atmega/Kconfig +++ b/nuttx/arch/avr/src/atmega/Kconfig @@ -4,5 +4,7 @@ # if ARCH_ATMEGA +comment "ATMega Configuration Options" + endif diff --git a/nuttx/arch/avr/src/avr/Kconfig b/nuttx/arch/avr/src/avr/Kconfig index 1b21ce810c..99228aa2c1 100644 --- a/nuttx/arch/avr/src/avr/Kconfig +++ b/nuttx/arch/avr/src/avr/Kconfig @@ -4,4 +4,6 @@ # if ARCH_FAMILY_AVR +comment "AVR Configuration Options" + endif diff --git a/nuttx/arch/avr/src/avr32/Kconfig b/nuttx/arch/avr/src/avr32/Kconfig index ca1fcd2bf7..12cc033cbc 100644 --- a/nuttx/arch/avr/src/avr32/Kconfig +++ b/nuttx/arch/avr/src/avr32/Kconfig @@ -4,4 +4,6 @@ # if ARCH_FAMILY_AVR32 +comment "AVR32 Configuration Options" + endif diff --git a/nuttx/arch/hc/src/m9s12/Kconfig b/nuttx/arch/hc/src/m9s12/Kconfig index 41c4b9c172..e4addf43f5 100644 --- a/nuttx/arch/hc/src/m9s12/Kconfig +++ b/nuttx/arch/hc/src/m9s12/Kconfig @@ -4,4 +4,6 @@ # if ARCH_HSC12 +comment "M9S12 Configuration Options" + endif diff --git a/nuttx/arch/mips/Kconfig b/nuttx/arch/mips/Kconfig index cfa3d589d4..c642f7152d 100644 --- a/nuttx/arch/mips/Kconfig +++ b/nuttx/arch/mips/Kconfig @@ -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 diff --git a/nuttx/arch/mips/src/mips32/Kconfig b/nuttx/arch/mips/src/mips32/Kconfig index e02b0258b9..1b44995687 100644 --- a/nuttx/arch/mips/src/mips32/Kconfig +++ b/nuttx/arch/mips/src/mips32/Kconfig @@ -4,4 +4,6 @@ # if ARCH_MIPS32 +comment "MIPS32 Configuration Options" + endif diff --git a/nuttx/arch/mips/src/pic32mx/Kconfig b/nuttx/arch/mips/src/pic32mx/Kconfig index 222c7e4de9..ba77cf5d8f 100644 --- a/nuttx/arch/mips/src/pic32mx/Kconfig +++ b/nuttx/arch/mips/src/pic32mx/Kconfig @@ -4,6 +4,7 @@ # if ARCH_CHIP_PIC32MX +comment "PIC32MX Configuration Options" choice prompt "PIC32MX chip selection" diff --git a/nuttx/arch/rgmp/Kconfig b/nuttx/arch/rgmp/Kconfig index 7cc5fcc97c..24a9c32051 100644 --- a/nuttx/arch/rgmp/Kconfig +++ b/nuttx/arch/rgmp/Kconfig @@ -4,6 +4,8 @@ # if ARCH_RGMP +comment "RGMP Configuration Options" + choice prompt "RGMP Architecture" default RGMP_SUBARCH_X86 diff --git a/nuttx/arch/sh/src/m16c/Kconfig b/nuttx/arch/sh/src/m16c/Kconfig index 9d510e0371..56db601be2 100644 --- a/nuttx/arch/sh/src/m16c/Kconfig +++ b/nuttx/arch/sh/src/m16c/Kconfig @@ -4,4 +4,6 @@ # if ARCH_M16C +comment "M16C Configuration Options" + endif diff --git a/nuttx/arch/sh/src/sh1/Kconfig b/nuttx/arch/sh/src/sh1/Kconfig index b0405f2f52..3fe3ebb7d9 100644 --- a/nuttx/arch/sh/src/sh1/Kconfig +++ b/nuttx/arch/sh/src/sh1/Kconfig @@ -4,4 +4,6 @@ # if ARCH_SH1 +comment "SH-1 Configuration Options" + endif diff --git a/nuttx/arch/sim/Kconfig b/nuttx/arch/sim/Kconfig index 33f25f6a61..331f61c79e 100644 --- a/nuttx/arch/sim/Kconfig +++ b/nuttx/arch/sim/Kconfig @@ -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 diff --git a/nuttx/arch/x86/Kconfig b/nuttx/arch/x86/Kconfig index c988c92a4a..10c081fab4 100644 --- a/nuttx/arch/x86/Kconfig +++ b/nuttx/arch/x86/Kconfig @@ -4,6 +4,8 @@ # if ARCH_X86 +comment "x86 Configuration Options" + choice prompt "x86 chip selection" default ARCH_I486 diff --git a/nuttx/arch/x86/src/common/Kconfig b/nuttx/arch/x86/src/common/Kconfig index fff9d7f122..9595e6e8ad 100644 --- a/nuttx/arch/x86/src/common/Kconfig +++ b/nuttx/arch/x86/src/common/Kconfig @@ -4,4 +4,6 @@ # if ARCH_X86 +comment "Common Configuration Options" + endif diff --git a/nuttx/arch/x86/src/i486/Kconfig b/nuttx/arch/x86/src/i486/Kconfig index be9fa2cd0b..1847a4dd4e 100644 --- a/nuttx/arch/x86/src/i486/Kconfig +++ b/nuttx/arch/x86/src/i486/Kconfig @@ -4,4 +4,6 @@ # if ARCH_I486 +comment "i486 Configuration Options" + endif diff --git a/nuttx/arch/x86/src/qemu/Kconfig b/nuttx/arch/x86/src/qemu/Kconfig index ac2e2a5e92..5623ab063f 100644 --- a/nuttx/arch/x86/src/qemu/Kconfig +++ b/nuttx/arch/x86/src/qemu/Kconfig @@ -4,4 +4,6 @@ # if ARCH_CHIP_QEMU +comment "QEMU Configuration Options" + endif diff --git a/nuttx/arch/z16/Kconfig b/nuttx/arch/z16/Kconfig index acf58bcf34..a806e6ed11 100644 --- a/nuttx/arch/z16/Kconfig +++ b/nuttx/arch/z16/Kconfig @@ -4,6 +4,7 @@ # if ARCH_Z16 +comment "Z16 Configuration Options" choice prompt "ZNEO chip selection" diff --git a/nuttx/arch/z16/src/common/Kconfig b/nuttx/arch/z16/src/common/Kconfig index 0f94fb19af..d01f3df2db 100644 --- a/nuttx/arch/z16/src/common/Kconfig +++ b/nuttx/arch/z16/src/common/Kconfig @@ -4,4 +4,6 @@ # if ARCH_Z16 +comment "Common Configuration Options" + endif diff --git a/nuttx/arch/z16/src/z16f/Kconfig b/nuttx/arch/z16/src/z16f/Kconfig index f410f51c4c..826720ee7a 100644 --- a/nuttx/arch/z16/src/z16f/Kconfig +++ b/nuttx/arch/z16/src/z16f/Kconfig @@ -4,4 +4,6 @@ # if ARCH_CHIP_Z16F +comment "Z16F Configuration Options" + endif diff --git a/nuttx/configs/ea3131/tools/usb-driver.txt b/nuttx/configs/ea3131/tools/usb-driver.txt new file mode 100644 index 0000000000..2a649dfb87 --- /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 0000000000..2a649dfb87 --- /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 0000000000..2a649dfb87 --- /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 0000000000..2a649dfb87 --- /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 0000000000..2a649dfb87 --- /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 907871104f..2030b232be 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 1ba3363933..d57d6f003d 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 0000000000..9752dd4187 --- /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 0000000000..259156e319 --- /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 0000000000..463a85cfd2 --- /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 0000000000..2a649dfb87 --- /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 0000000000..2a649dfb87 --- /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. + diff --git a/nuttx/net/recvfrom.c b/nuttx/net/recvfrom.c index 8bb658f48f..51027e0f8a 100644 --- a/nuttx/net/recvfrom.c +++ b/nuttx/net/recvfrom.c @@ -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)