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 */