From 869daffefa1175b5e5b6297fd0127c88e707c4e8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 17 Jul 2015 11:46:15 -0600 Subject: [PATCH] STM32F746G-DISCO: Getting closer to a build --- configs/stm32f746g-disco/nsh/defconfig | 82 +++++++------------ configs/stm32f746g-disco/scripts/flash.ld | 41 +++++++--- configs/stm32f746g-disco/src/stm32_autoleds.c | 2 +- .../src/stm32_cxxinitialize.c | 2 +- configs/stm32f746g-disco/src/stm32_userleds.c | 2 +- 5 files changed, 62 insertions(+), 67 deletions(-) diff --git a/configs/stm32f746g-disco/nsh/defconfig b/configs/stm32f746g-disco/nsh/defconfig index 47a92c0a2e..9544acb884 100644 --- a/configs/stm32f746g-disco/nsh/defconfig +++ b/configs/stm32f746g-disco/nsh/defconfig @@ -12,8 +12,10 @@ # CONFIG_HOST_OSX is not set CONFIG_HOST_WINDOWS=y # CONFIG_HOST_OTHER is not set -CONFIG_WINDOWS_CYGWIN=y # CONFIG_WINDOWS_NATIVE is not set +CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_MSYS is not set +# CONFIG_WINDOWS_OTHER is not set # # Build Configuration @@ -81,6 +83,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set # CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set # CONFIG_ARCH_CHIP_LPC17XX is not set # CONFIG_ARCH_CHIP_LPC214X is not set # CONFIG_ARCH_CHIP_LPC2378 is not set @@ -89,6 +92,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_NUC1XX is not set # CONFIG_ARCH_CHIP_SAMA5 is not set # CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set # CONFIG_ARCH_CHIP_SAM34 is not set # CONFIG_ARCH_CHIP_SAMV7 is not set # CONFIG_ARCH_CHIP_STM32 is not set @@ -132,18 +136,28 @@ CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARMV7M_STACKCHECK is not set # CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set # -# STM32 Configuration Options +# STM32 F7 Configuration Options # # CONFIG_ARCH_CHIP_STM32F745 is not set CONFIG_ARCH_CHIP_STM32F746=y # CONFIG_ARCH_CHIP_STM32F756 is not set +CONFIG_STM32F7_STM32F74XX=y +# CONFIG_STM32F7_STM32F75XX is not set # # STM32 Peripheral Support # CONFIG_STM32F7_HAVE_LTDC=y +# CONFIG_STM32F7_ADC is not set +# CONFIG_STM32F7_CAN is not set +# CONFIG_STM32F7_DAC is not set +# CONFIG_STM32F7_I2C is not set +# CONFIG_STM32F7_SAI is not set +# CONFIG_STM32F7_SPI is not set +CONFIG_STM32F7_USART=y # CONFIG_STM32F7_ADC1 is not set # CONFIG_STM32F7_ADC2 is not set # CONFIG_STM32F7_ADC3 is not set @@ -158,8 +172,7 @@ CONFIG_STM32F7_HAVE_LTDC=y # CONFIG_STM32F7_DAC2 is not set # CONFIG_STM32F7_DCMI is not set # CONFIG_STM32F7_ETHMAC is not set -CONFIG_STM32F7_FSMC=y -# CONFIG_STM32F7_HASH is not set +# CONFIG_STM32F7_FSMC is not set # CONFIG_STM32F7_I2C1 is not set # CONFIG_STM32F7_I2C2 is not set # CONFIG_STM32F7_I2C3 is not set @@ -169,18 +182,21 @@ CONFIG_STM32F7_FSMC=y # CONFIG_STM32F7_OTGHS is not set CONFIG_STM32F7_PWR=y # CONFIG_STM32F7_RNG is not set -# CONFIG_STM32F7_SDIO is not set +# CONFIG_STM32F7_SAI1 is not set +# CONFIG_STM32F7_SAI2 is not set +# CONFIG_STM32F7_SDMMC1 is not set +# CONFIG_STM32F7_SPDIFRX is not set # CONFIG_STM32F7_SPI1 is not set # CONFIG_STM32F7_SPI2 is not set # CONFIG_STM32F7_SPI3 is not set # CONFIG_STM32F7_SPI4 is not set # CONFIG_STM32F7_SPI5 is not set # CONFIG_STM32F7_SPI6 is not set -CONFIG_STM32F7_SYSCFG=y # CONFIG_STM32F7_TIM1 is not set # CONFIG_STM32F7_TIM2 is not set # CONFIG_STM32F7_TIM3 is not set # CONFIG_STM32F7_TIM4 is not set +# CONFIG_STM32F7_TIM5 is not set # CONFIG_STM32F7_TIM6 is not set # CONFIG_STM32F7_TIM7 is not set # CONFIG_STM32F7_TIM8 is not set @@ -190,6 +206,7 @@ CONFIG_STM32F7_SYSCFG=y # CONFIG_STM32F7_TIM12 is not set # CONFIG_STM32F7_TIM13 is not set # CONFIG_STM32F7_TIM14 is not set +# CONFIG_STM32F7_TIM15 is not set # CONFIG_STM32F7_USART1 is not set # CONFIG_STM32F7_USART2 is not set # CONFIG_STM32F7_USART3 is not set @@ -200,47 +217,6 @@ CONFIG_STM32F7_USART6=y # CONFIG_STM32F7_UART8 is not set # CONFIG_STM32F7_IWDG is not set # CONFIG_STM32F7_WWDG is not set -# CONFIG_STM32F7_NOEXT_VECTORS is not set - -# -# Alternate Pin Mapping -# -# CONFIG_STM32F7_FLASH_PREFETCH is not set -# CONFIG_STM32F7_JTAG_DISABLE is not set -# CONFIG_STM32F7_JTAG_FULL_ENABLE is not set -# CONFIG_STM32F7_JTAG_NOJNTRST_ENABLE is not set -CONFIG_STM32F7_JTAG_SW_ENABLE=y -CONFIG_STM32F7_DISABLE_IDLE_SLEEP_DURING_DEBUG=y -# CONFIG_STM32F7_FORCEPOWER is not set -# CONFIG_ARCH_BOARD_STM32F7_CUSTOM_CLOCKCONFIG is not set -CONFIG_STM32F7_FSMC_SRAM=y -CONFIG_STM32F7_USART=y - -# -# U[S]ART Configuration -# -# CONFIG_USART6_RS485 is not set -# CONFIG_SERIAL_DISABLE_REORDERING is not set -# CONFIG_STM32F7_FLOWCONTROL_BROKEN is not set -# CONFIG_STM32F7_USART_SINGLEWIRE is not set -# CONFIG_STM32F7_HAVE_RTC_COUNTER is not set -# CONFIG_STM32F7_HAVE_RTC_SUBSECONDS is not set - -# -# USB FS Host Configuration -# - -# -# USB HS Host Configuration -# - -# -# USB Host Debug Configuration -# - -# -# USB Device Configuration -# # # Architecture Options @@ -258,6 +234,8 @@ CONFIG_ARCH_HAVE_VFORK=y CONFIG_ARCH_HAVE_MPU=y # CONFIG_ARCH_NAND_HWECC is not set # CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set # CONFIG_ARCH_USE_MPU is not set # CONFIG_ARCH_IRQPRIO is not set CONFIG_ARCH_STACKDUMP=y @@ -458,6 +436,7 @@ CONFIG_SPI_EXCHANGE=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set # CONFIG_MMCSD is not set # CONFIG_MTD is not set @@ -502,7 +481,6 @@ CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y -# CONFIG_SERIAL_TERMIOS is not set CONFIG_USART6_SERIAL_CONSOLE=y # CONFIG_OTHER_SERIAL_CONSOLE is not set # CONFIG_NO_SERIAL_CONSOLE is not set @@ -565,6 +543,7 @@ CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_SMARTFS is not set # CONFIG_FS_BINFS is not set # CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set # # System Logging @@ -633,6 +612,7 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_LIBC_NETDB is not set # # Non-standard Library Support @@ -690,7 +670,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_NX is not set # CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXFFS is not set -# CONFIG_EXAMPLES_NXFLAT is not set # CONFIG_EXAMPLES_NXHELLO is not set # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set @@ -710,7 +689,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_SMART is not set # CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set -# CONFIG_EXAMPLES_THTTPD is not set # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set @@ -742,8 +720,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set -# CONFIG_NETUTILS_THTTPD is not set -# CONFIG_NETUTILS_PPPD is not set # # FreeModBus @@ -810,6 +786,7 @@ CONFIG_NSH_DISABLE_DATE=y # CONFIG_NSH_DISABLE_SLEEP is not set # CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set # CONFIG_NSH_DISABLE_UNSET is not set # CONFIG_NSH_DISABLE_USLEEP is not set # CONFIG_NSH_DISABLE_WGET is not set @@ -858,7 +835,6 @@ CONFIG_NSH_CONSOLE=y # CONFIG_SYSTEM_RAMTEST is not set CONFIG_SYSTEM_READLINE=y CONFIG_READLINE_ECHO=y -# CONFIG_SYSTEM_POWEROFF is not set # CONFIG_SYSTEM_RAMTRON is not set # CONFIG_SYSTEM_SDCARD is not set # CONFIG_SYSTEM_SUDOKU is not set diff --git a/configs/stm32f746g-disco/scripts/flash.ld b/configs/stm32f746g-disco/scripts/flash.ld index 5fe525fbcf..4ec69de306 100644 --- a/configs/stm32f746g-disco/scripts/flash.ld +++ b/configs/stm32f746g-disco/scripts/flash.ld @@ -35,13 +35,32 @@ * ****************************************************************************/ -/* The STM32F746NGH6 has 1024Kb of FLASH beginning at address 0x0800:0000 and - * 320Kb of data SRAM (in addition to ITCM SRAM). SRAM is split up into three - * blocks: +/* The STM32F746NGH6 has 1024Kb of main FLASH memory. This FLASH memory can + * be accessed from either the AXIM interface at address 0x0800:0000 or from + * the ITCM interface at address 0x0020:0000. * - * 1) 64Kb of DTCM SRM beginin at address 0x2000:0000 - * 1) 240Kb of SRAM1 beginning at address 0x2001:0000 - * 2) 16Kb of SRAM2 beginning at address 0x2004:c000 + * Additional information, including the option bytes, is available at at + * FLASH at address 0x1ff0:0000 (AXIM) or 0x0010:0000 (ITCM). + * + * In the STM32F746NGH6, two different boot spaces can be selected through + * the BOOT pin and the boot base address programmed in the BOOT_ADD0 and + * BOOT_ADD1 option bytes: + * + * 1) BOOT=0: Boot address defined by user option byte BOOT_ADD0[15:0]. + * ST programmed value: Flash on ITCM at 0x0020:0000 + * 2) BOOT=1: Boot address defined by user option byte BOOT_ADD1[15:0]. + * ST programmed value: System bootloader at 0x0010:0000 + * + * NuttX does not modify these option byes. On the unmodified STM32F746G + * DISCO board, the BOOT0 pin is at ground so by default, the STM32 will boot + * to address 0x0020:0000 in ITCM FLASH. + * + * The STM32F746NGH6 also has 320Kb of data SRAM (in addition to ITCM SRAM). + * SRAM is split up into three blocks: + * + * 1) 64Kb of DTCM SRM begining at address 0x2000:0000 + * 2) 240Kb of SRAM1 beginning at address 0x2001:0000 + * 3) 16Kb of SRAM2 beginning at address 0x2004:c000 * * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000 * where the code expects to begin execution by jumping to the entry point in @@ -51,11 +70,11 @@ MEMORY { - itcm (rwx) : ORIGIN = 0x00000000, LENGTH = 64K - flash (rx) : ORIGIN = 0x08000000, LENGTH = 2048K - dtcm (rwx) : ORIGIN = 0x20000000, LENGTH = 64K - sram1 (rwx) : ORIGIN = 0x20010000, LENGTH = 240K - sram2 (rwx) : ORIGIN = 0x2004c000, LENGTH = 16K + itcm (rwx) : ORIGIN = 0x00200000, LENGTH = 1024K + flash (rx) : ORIGIN = 0x08000000, LENGTH = 1024K + dtcm (rwx) : ORIGIN = 0x20000000, LENGTH = 64K + sram1 (rwx) : ORIGIN = 0x20010000, LENGTH = 240K + sram2 (rwx) : ORIGIN = 0x2004c000, LENGTH = 16K } OUTPUT_ARCH(arm) diff --git a/configs/stm32f746g-disco/src/stm32_autoleds.c b/configs/stm32f746g-disco/src/stm32_autoleds.c index 39c49d43a9..e577b3a8a6 100644 --- a/configs/stm32f746g-disco/src/stm32_autoleds.c +++ b/configs/stm32f746g-disco/src/stm32_autoleds.c @@ -44,7 +44,7 @@ #include -#include "stm32f7-gpio.h" +#include "stm32_gpio.h" #include "stm32f746g-disco.h" #ifdef CONFIG_ARCH_LEDS diff --git a/configs/stm32f746g-disco/src/stm32_cxxinitialize.c b/configs/stm32f746g-disco/src/stm32_cxxinitialize.c index b9429ef142..bd84d9eb60 100644 --- a/configs/stm32f746g-disco/src/stm32_cxxinitialize.c +++ b/configs/stm32f746g-disco/src/stm32_cxxinitialize.c @@ -43,7 +43,7 @@ #include -#include +#include #include "chip.h" #if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE) diff --git a/configs/stm32f746g-disco/src/stm32_userleds.c b/configs/stm32f746g-disco/src/stm32_userleds.c index a2e46f5146..cb7afb2dea 100644 --- a/configs/stm32f746g-disco/src/stm32_userleds.c +++ b/configs/stm32f746g-disco/src/stm32_userleds.c @@ -42,7 +42,7 @@ #include #include -#include "stm32-gpio.h" +#include "stm32_gpio.h" #include "stm32f746g-disco.h" #ifndef CONFIG_ARCH_LEDS