diff --git a/Documentation/README.html b/Documentation/README.html
index 2e51d5b9ff2..735edf031d4 100644
--- a/Documentation/README.html
+++ b/Documentation/README.html
@@ -8,7 +8,7 @@
NuttX README Files
- Last Updated: May 18, 2016
+ Last Updated: May 20, 2016
|
@@ -257,6 +257,8 @@ nuttx/
| | `- README.txt
| |- stm32f4discovery/
| | `- README.txt
+ | |- stm32f411e-disco/
+ | | `- README.txt
| |- stm32f429i-disco/
| | |- ide/ltcd/uvision/README.txt
| | |- ltdc/README.txt
diff --git a/README.txt b/README.txt
index 3b7043f1cdf..130626fd7d5 100644
--- a/README.txt
+++ b/README.txt
@@ -1432,6 +1432,8 @@ nuttx/
| | `- README.txt
| |- stm32f4discovery/
| | `- README.txt
+ | |- stm32f411e-disco/
+ | | `- README.txt
| |- stm32f429i-disco/
| | |- ide/ltcd/uvision/README.txt
| | |- ltdc/README.txt
diff --git a/configs/Kconfig b/configs/Kconfig
index ee744973ed7..aa4a2bd814f 100644
--- a/configs/Kconfig
+++ b/configs/Kconfig
@@ -963,6 +963,16 @@ config ARCH_BOARD_STM32F4_DISCOVERY
---help---
STMicro STM32F4-Discovery board based on the STMicro STM32F407VGT6 MCU.
+config ARCH_BOARD_STM32F411E_DISCO
+ bool "STMicro STM32F411E-Discovery board"
+ depends on ARCH_CHIP_STM32F411VE
+ select ARCH_HAVE_LEDS
+ select ARCH_HAVE_BUTTONS
+ select ARCH_HAVE_IRQBUTTONS
+ ---help---
+ This is a minimal configuration that supports low-level test of the
+ STMicro STM32F411E-Discovery Board.
+
config ARCH_BOARD_STM32F429I_DISCO
bool "STMicro STM32F429I-Discovery board"
depends on ARCH_CHIP_STM32F429Z
@@ -994,16 +1004,6 @@ config ARCH_BOARD_STM32L476VG_DISCO
MCU. The STM32L476VG is a Cortex-M4 optimised for low-power operation
at up to 80MHz operation with 1024Kb Flash memory and 96+32Kb SRAM.
-config ARCH_BOARD_STM32F411E_DISCO
- bool "STMicro STM32F411E-Discovery board"
- depends on ARCH_CHIP_STM32F411VE
- select ARCH_HAVE_LEDS
- select ARCH_HAVE_BUTTONS
- select ARCH_HAVE_IRQBUTTONS
- ---help---
- This is a minimal configuration that supports low-level test of the
- STMicro STM32F411E-Discovery Board.
-
config ARCH_BOARD_STM32L_DISCOVERY
bool "STMicro STM32L-Discovery board"
depends on ARCH_CHIP_STM32L152RB
@@ -1422,10 +1422,10 @@ config ARCH_BOARD
default "stm3240g-eval" if ARCH_BOARD_STM3240G_EVAL
default "stm32f3discovery" if ARCH_BOARD_STM32F3_DISCOVERY
default "stm32f4discovery" if ARCH_BOARD_STM32F4_DISCOVERY
+ default "stm32f411e-disco" if ARCH_BOARD_STM32F411E_DISCO
default "stm32f429i-disco" if ARCH_BOARD_STM32F429I_DISCO
default "stm32f746g-disco" if ARCH_BOARD_STM32F746G_DISCO
default "stm32l476vg-disco" if ARCH_BOARD_STM32L476VG_DISCO
- default "stm32f411e-disco" if ARCH_BOARD_STM32F411E_DISCO
default "stm32ldiscovery" if ARCH_BOARD_STM32L_DISCOVERY
default "stm32vldiscovery" if ARCH_BOARD_STM32VL_DISCOVERY
default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4
@@ -1790,6 +1790,9 @@ endif
if ARCH_BOARD_STM32F4_DISCOVERY
source "configs/stm32f4discovery/Kconfig"
endif
+if ARCH_BOARD_STM32F411E_DISCO
+source "configs/stm32f411e-disco/Kconfig"
+endif
if ARCH_BOARD_STM32F429I_DISCO
source "configs/stm32f429i-disco/Kconfig"
endif
diff --git a/configs/README.txt b/configs/README.txt
index f3a28e9a110..9b1c8486bac 100644
--- a/configs/README.txt
+++ b/configs/README.txt
@@ -643,6 +643,10 @@ configs/stm32f103-minimum
configs/stm32f4discovery
STMicro STM32F4-Discovery board based on the STMIcro STM32F407VGT6 MCU.
+configs/stm32f411e-disco
+ This is a minimal configuration that supports low-level test of the
+ STMicro STM32F411E-Discovery Board.
+
configs/stm32f429i-disco
STMicro STM32F429I-Discovery board based on the STMicro STM32F429ZIT6 MCU.
diff --git a/configs/stm32f411e-disco/include/board.h b/configs/stm32f411e-disco/include/board.h
index 62199e37323..46d2df971e0 100644
--- a/configs/stm32f411e-disco/include/board.h
+++ b/configs/stm32f411e-disco/include/board.h
@@ -95,7 +95,6 @@
* PLL output clock frequency = VCO frequency / PLLP, PLLP = 2, 4, 6, or 8
* USB OTG FS clock frequency = VCO frequency / PLLQ, 2 <= PLLQ <= 15
*
-
* There is no config for 100 MHz and 48 MHz for usb,
* so we would like to have SYSYCLK=96MHz and we must have the USB clock= 48MHz.
*
@@ -112,7 +111,6 @@
* USB OTG FS and SDIO Clock
* = PLL_VCO / PLLQ
* = 384,000,000 / 8 = 48,000,000
- *
*/
#define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(4)
diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig
index 854c1bf39f5..31f933afc75 100644
--- a/configs/stm32f411e-disco/nsh/defconfig
+++ b/configs/stm32f411e-disco/nsh/defconfig
@@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y
#
# Build Configuration
#
-CONFIG_APPS_DIR="../apps"
+# CONFIG_APPS_DIR="../apps"
CONFIG_BUILD_FLAT=y
# CONFIG_BUILD_2PASS is not set
diff --git a/configs/stm32f411e-disco/nsh/setenv.sh b/configs/stm32f411e-disco/nsh/setenv.sh
index ea002182e67..add9de147f0 100755
--- a/configs/stm32f411e-disco/nsh/setenv.sh
+++ b/configs/stm32f411e-disco/nsh/setenv.sh
@@ -51,9 +51,13 @@ fi
# toolchain under windows. You will also have to edit this if you install
# the CodeSourcery toolchain in any other location
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin"
-export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
+#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
#export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
+# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors"
+# You can this free toolchain here https://launchpad.net/gcc-arm-embedded
+export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin"
+
# This the Cygwin path to the location where I build the buildroot
# toolchain.
#export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin"
diff --git a/configs/stm32f411e-disco/scripts/f411ve.ld b/configs/stm32f411e-disco/scripts/f411ve.ld
index 9a1e4b8dbec..ea38ac3c272 100644
--- a/configs/stm32f411e-disco/scripts/f411ve.ld
+++ b/configs/stm32f411e-disco/scripts/f411ve.ld
@@ -43,8 +43,8 @@
MEMORY
{
- flash (rx) : ORIGIN = 0x08000000, LENGTH = 512K
- sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128K
+ flash (rx) : ORIGIN = 0x08000000, LENGTH = 512K
+ sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128K
}
OUTPUT_ARCH(arm)
@@ -104,6 +104,7 @@ SECTIONS
} > sram
/* Stabs debugging sections. */
+
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
diff --git a/configs/stm32f411e-disco/src/stm32_appinit.c b/configs/stm32f411e-disco/src/stm32_appinit.c
index 1bd50798714..9f35fd24f8c 100644
--- a/configs/stm32f411e-disco/src/stm32_appinit.c
+++ b/configs/stm32f411e-disco/src/stm32_appinit.c
@@ -53,18 +53,6 @@
#include "stm32f411e-disco.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
@@ -79,9 +67,9 @@
int board_app_initialize(void)
{
+#ifdef CONFIG_SCHED_INSTRUMENTATION
/* Configure CPU load estimation */
-#ifdef CONFIG_SCHED_INSTRUMENTATION
cpuload_initialize_once();
#endif
diff --git a/configs/stm32f411e-disco/src/stm32_boot.c b/configs/stm32f411e-disco/src/stm32_boot.c
index 593f0ad2426..5164e8837e2 100644
--- a/configs/stm32f411e-disco/src/stm32_boot.c
+++ b/configs/stm32f411e-disco/src/stm32_boot.c
@@ -50,14 +50,6 @@
#include "up_arch.h"
#include "stm32f411e-disco.h"
-/************************************************************************************
- * Pre-processor Definitions
- ************************************************************************************/
-
-/************************************************************************************
- * Private Data
- ************************************************************************************/
-
/************************************************************************************
* Public Functions
************************************************************************************/
@@ -74,26 +66,26 @@
void stm32_boardinitialize(void)
{
+#ifdef CONFIG_ARCH_LEDS
/* Configure on-board LEDs if LED support has been selected. */
-#ifdef CONFIG_ARCH_LEDS
board_autoled_initialize();
#endif
+#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3)
/* Configure SPI chip selects if 1) SP2 is not disabled, and 2) the weak function
* stm32_spidev_initialize() has been brought into the link.
*/
-#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3)
stm32_spidev_initialize();
#endif
+#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB)
/* Initialize USB is 1) USBDEV is selected, 2) the USB controller is not
* disabled, and 3) the weak function stm32_usbinitialize() has been brought
* into the build.
*/
-#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB)
stm32_usbinitialize();
#endif
}
@@ -114,12 +106,12 @@ void stm32_boardinitialize(void)
#ifdef CONFIG_BOARD_INITIALIZE
void board_initialize(void)
{
+#if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL)
/* Perform NSH initialization here instead of from the NSH. This
* alternative NSH initialization is necessary when NSH is ran in user-space
* but the initialization function must run in kernel space.
*/
-#if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL)
board_app_initialize();
#endif
diff --git a/configs/stm32f411e-disco/src/stm32f411e-disco.h b/configs/stm32f411e-disco/src/stm32f411e-disco.h
index 1c7f8d3efdb..5425f291bd3 100644
--- a/configs/stm32f411e-disco/src/stm32f411e-disco.h
+++ b/configs/stm32f411e-disco/src/stm32f411e-disco.h
@@ -122,16 +122,4 @@ void stm32_spidev_initialize(void);
void stm32_usbinitialize(void);
-/************************************************************************************
- * Name: board_adc_initialize
- *
- * Description:
- * Initialize and register the ADC driver(s)
- *
- ************************************************************************************/
-
-#ifdef CONFIG_ADC
-int board_adc_initialize(void);
-#endif
-
#endif /* __CONFIGS_STM32F411E_DISCO_SRC_STM32F411E_DISCO_H */