This is an automated email from the ASF dual-hosted git repository. jerpelea pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 7e42ca25380bd8864ccb07eb44a378eb4ca45807 Author: raiden00pl <raide...@railab.me> AuthorDate: Tue Nov 19 09:41:08 2024 +0100 boards/stm32: split nucleo-f4x1re into separate boards Split nucleo-f4x1re into nucleo-f401re and nucleo-f411re. These are separate boards and should be in separate directories as it's done for all other nucleo boards in NuttX --- .../arm/stm32f4/boards/nucleo-f401re/index.rst | 40 ++-- .../arm/stm32f4/boards/nucleo-f411re/index.rst | 45 ++--- boards/Kconfig | 10 +- .../CMakeLists.txt | 2 +- .../stm32/{nucleo-f4x1re => nucleo-f401re}/Kconfig | 0 .../f401-fb => nucleo-f401re/configs/fb}/defconfig | 2 +- .../configs/nsh}/defconfig | 2 +- .../include/board.h} | 181 +++++++++++++++--- .../scripts/Make.defs | 8 +- .../f401re.ld => nucleo-f401re/scripts/flash.ld} | 2 +- .../src/CMakeLists.txt | 8 +- .../{nucleo-f4x1re => nucleo-f401re}/src/Make.defs | 2 +- .../src/nucleo-f401re.h} | 4 +- .../src/stm32_adc.c | 4 +- .../src/stm32_ajoystick.c | 4 +- .../src/stm32_appinit.c | 4 +- .../src/stm32_autoleds.c | 4 +- .../src/stm32_boot.c | 4 +- .../src/stm32_bringup.c | 4 +- .../src/stm32_buttons.c | 4 +- .../src/stm32_lcd_ssd1306.c | 4 +- .../src/stm32_mcp2515.c | 4 +- .../src/stm32_spi.c | 7 +- .../src/stm32_userleds.c | 4 +- .../CMakeLists.txt | 2 +- .../stm32/{nucleo-f4x1re => nucleo-f411re}/Kconfig | 8 +- .../configs/mcp2515-extid}/defconfig | 2 +- .../configs/nsh}/defconfig | 2 +- .../include/board.h} | 181 +++++++++++++++--- .../scripts/Make.defs | 8 +- .../f411re.ld => nucleo-f411re/scripts/flash.ld} | 2 +- .../src/CMakeLists.txt | 8 +- .../{nucleo-f4x1re => nucleo-f411re}/src/Make.defs | 2 +- .../src/nucleo-f411re.h} | 14 +- .../src/stm32_adc.c | 4 +- .../src/stm32_ajoystick.c | 8 +- .../src/stm32_appinit.c | 4 +- .../src/stm32_autoleds.c | 4 +- .../src/stm32_boot.c | 4 +- .../src/stm32_bringup.c | 6 +- .../src/stm32_buttons.c | 4 +- .../src/stm32_lcd_ssd1306.c | 4 +- .../src/stm32_mcp2515.c | 4 +- .../src/stm32_spi.c | 7 +- .../src/stm32_userleds.c | 4 +- boards/arm/stm32/nucleo-f4x1re/include/board.h | 209 --------------------- tools/ci/testlist/arm-09.dat | 9 +- tools/ci/testlist/msys2.dat | 2 +- 48 files changed, 439 insertions(+), 416 deletions(-) diff --git a/Documentation/platforms/arm/stm32f4/boards/nucleo-f401re/index.rst b/Documentation/platforms/arm/stm32f4/boards/nucleo-f401re/index.rst index 9bfbbdc589..b1d7a8f159 100644 --- a/Documentation/platforms/arm/stm32f4/boards/nucleo-f401re/index.rst +++ b/Documentation/platforms/arm/stm32f4/boards/nucleo-f401re/index.rst @@ -3,15 +3,9 @@ ST Nucleo F401RE ================ This page discusses issues unique to NuttX configurations for the ST -NucleoF401RE and NucleoF411RE boards from ST Micro. See +NucleoF401RE boards from ST Micro. See http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN1810/PF258797 - http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN1877/PF260049 - -These two boards are very similar, both supporting STM32 "Dynamic Efficiency -Line" parts but differing in the specific STM32 chip mounted on board. The -chips themselves are also very similar with the STM32F411RE having some -additional capability: NucleoF401RE: @@ -30,8 +24,6 @@ NucleoF401RE: - CRC calculation unit - RTC -The NucleoF411RE also has additional DMA and SPI peripheral capabilities. - Board features, however, are identical: - Peripherals: 1 led, 1 push button @@ -41,8 +33,7 @@ Board features, however, are identical: Uses a STM32F103 to provide a ST-Link for programming, debug similar to the OpenOcd FTDI function - USB to JTAG front-end. -See http://mbed.org/platforms/ST-Nucleo-F401RE and -http://developer.mbed.org/platforms/ST-Nucleo-F411RE for more +See http://mbed.org/platforms/ST-Nucleo-F401RE for more information about these boards. mbed @@ -55,12 +46,12 @@ The Nucleo-F401RE includes boot loader from mbed: Using the mbed loader: -1. Connect the Nucleo-F4x1RE to the host PC using the USB connector. +1. Connect the Nucleo-F401RE to the host PC using the USB connector. 2. A new file system will appear called NUCLEO; open it with Windows Explorer (assuming that you are using Windows). 3. Drag and drop nuttx.bin into the MBED window. This will load the - nuttx.bin binary into the Nucleo-F4x1RE. The NUCLEO window will - close then re-open and the Nucleo-F4x1RE will be running the new code. + nuttx.bin binary into the Nucleo-F401RE. The NUCLEO window will + close then re-open and the Nucleo-F401RE will be running the new code. Hardware ======== @@ -93,7 +84,7 @@ microcontroller. LEDs ---- -The Nucleo F401RE and Nucleo F411RE provide a single user LED, LD2. LD2 +The Nucleo F401RE provides a single user LED, LD2. LD2 is the green LED connected to Arduino signal D13 corresponding to MCU I/O PA5 (pin 21) or PB13 (pin 34) depending on the STM32target. @@ -141,7 +132,7 @@ pin selections. TTL to RS-232 converter connection:: - Nucleo CN10 STM32F4x1RE + Nucleo CN10 STM32F401RE ----------- ------------ Pin 21 PA9 USART1_RX *Warning you make need to reverse RX/TX on Pin 33 PA10 USART1_TX some RS-232 converters @@ -174,7 +165,7 @@ Pins and Connectors:: TTL to RS-232 converter connection:: - Nucleo CN9 STM32F4x1RE + Nucleo CN9 STM32F401RE ----------- ------------ Pin 1 PA3 USART2_RX *Warning you make need to reverse RX/TX on Pin 2 PA2 USART2_TX some RS-232 converters @@ -258,7 +249,7 @@ RS-232 from Cutedigi.com Supports a single RS-232 connected via:: - Nucleo CN9 STM32F4x1RE Cutedigi + Nucleo CN9 STM32F401RE Cutedigi ----------- ------------ -------- Pin 1 PA3 USART2_RX RXD Pin 2 PA2 USART2_TX TXD @@ -275,7 +266,7 @@ about this joystick. Itead Joystick Connection:: --------- ----------------- --------------------------------- - ARDUINO ITEAD NUCLEO-F4x1 + ARDUINO ITEAD NUCLEO-F401 PIN NAME SIGNAL SIGNAL --------- ----------------- --------------------------------- D3 Button E Output PB3 @@ -349,8 +340,8 @@ STATUS: Configurations ============== -f401-nsh: ---------- +nsh: +---- Configures the NuttShell (nsh) located at apps/examples/nsh for the Nucleo-F401RE board. The Configuration enables the serial interfaces @@ -380,15 +371,10 @@ NOTES: Consoles). I have been using a TTL-to-RS-232 converter connected as shown below:: - Nucleo CN10 STM32F4x1RE + Nucleo CN10 STM32F401RE ----------- ------------ Pin 21 PA9 USART1_RX *Warning you make need to reverse RX/TX on Pin 33 PA10 USART1_TX some RS-232 converters Pin 20 GND Pin 8 U5V -f411-nsh --------- - -This configuration is the same as the f401-nsh configuration, except -that it is configured to support the Nucleo-F411RE. diff --git a/Documentation/platforms/arm/stm32f4/boards/nucleo-f411re/index.rst b/Documentation/platforms/arm/stm32f4/boards/nucleo-f411re/index.rst index 0d6bb7228b..57b76c0bc1 100644 --- a/Documentation/platforms/arm/stm32f4/boards/nucleo-f411re/index.rst +++ b/Documentation/platforms/arm/stm32f4/boards/nucleo-f411re/index.rst @@ -3,16 +3,10 @@ ST Nucleo F411RE ================ This page discusses issues unique to NuttX configurations for the ST -NucleoF401RE and NucleoF411RE boards from ST Micro. See +NucleoF411RE board from ST Micro. See - http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN1810/PF258797 http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN1877/PF260049 -These two boards are very similar, both supporting STM32 "Dynamic Efficiency -Line" parts but differing in the specific STM32 chip mounted on board. The -chips themselves are also very similar with the STM32F411RE having some -additional capability: - NucleoF411RE: - Microprocessor: 32-bit ARM Cortex M4 at 100MHz STM32F411RE @@ -30,8 +24,6 @@ NucleoF411RE: - CRC calculation unit - RTC -The NucleoF411RE also has additional DMA and SPI peripheral capabilities. - Board features, however, are identical: - Peripherals: 1 led, 1 push button @@ -41,8 +33,7 @@ Board features, however, are identical: Uses a STM32F103 to provide a ST-Link for programming, debug similar to the OpenOcd FTDI function - USB to JTAG front-end. -See http://mbed.org/platforms/ST-Nucleo-F401RE and -http://developer.mbed.org/platforms/ST-Nucleo-F411RE for more +See http://developer.mbed.org/platforms/ST-Nucleo-F411RE for more information about these boards. mbed @@ -50,17 +41,17 @@ mbed The Nucleo-F411RE includes boot loader from mbed: - https://mbed.org/platforms/ST-Nucleo-F401RE/ + https://mbed.org/platforms/ST-Nucleo-F411RE/ https://mbed.org/handbook/Homepage Using the mbed loader: -1. Connect the Nucleo-F4x1RE to the host PC using the USB connector. +1. Connect the Nucleo-F411RE to the host PC using the USB connector. 2. A new file system will appear called NUCLEO; open it with Windows Explorer (assuming that you are using Windows). 3. Drag and drop nuttx.bin into the MBED window. This will load the - nuttx.bin binary into the Nucleo-F4x1RE. The NUCLEO window will - close then re-open and the Nucleo-F4x1RE will be running the new code. + nuttx.bin binary into the Nucleo-F411RE. The NUCLEO window will + close then re-open and the Nucleo-F411RE will be running the new code. Hardware ======== @@ -82,7 +73,7 @@ GPIO LED2=D6=PB_10 I2C1_SDA=D14=PB_9 Probe D7=PA_8 I2C1_SCL=D15=PB_8 Probe - From: https://mbed.org/platforms/ST-Nucleo-F401RE/ + From: https://mbed.org/platforms/ST-Nucleo-F411RE/ Buttons ------- @@ -93,7 +84,7 @@ microcontroller. LEDs ---- -The Nucleo F401RE and Nucleo F411RE provide a single user LED, LD2. LD2 +The Nucleo F411RE provide a single user LED, LD2. LD2 is the green LED connected to Arduino signal D13 corresponding to MCU I/O PA5 (pin 21) or PB13 (pin 34) depending on the STM32target. @@ -141,7 +132,7 @@ pin selections. TTL to RS-232 converter connection:: - Nucleo CN10 STM32F4x1RE + Nucleo CN10 STM32F411RE ----------- ------------ Pin 21 PA9 USART1_RX *Warning you make need to reverse RX/TX on Pin 33 PA10 USART1_TX some RS-232 converters @@ -174,7 +165,7 @@ Pins and Connectors:: TTL to RS-232 converter connection:: - Nucleo CN9 STM32F4x1RE + Nucleo CN9 STM32F411RE ----------- ------------ Pin 1 PA3 USART2_RX *Warning you make need to reverse RX/TX on Pin 2 PA2 USART2_TX some RS-232 converters @@ -258,7 +249,7 @@ RS-232 from Cutedigi.com Supports a single RS-232 connected via:: - Nucleo CN9 STM32F4x1RE Cutedigi + Nucleo CN9 STM32F411RE Cutedigi ----------- ------------ -------- Pin 1 PA3 USART2_RX RXD Pin 2 PA2 USART2_TX TXD @@ -275,7 +266,7 @@ about this joystick. Itead Joystick Connection:: --------- ----------------- --------------------------------- - ARDUINO ITEAD NUCLEO-F4x1 + ARDUINO ITEAD NUCLEO-F411 PIN NAME SIGNAL SIGNAL --------- ----------------- --------------------------------- D3 Button E Output PB3 @@ -349,8 +340,8 @@ STATUS: Configurations ============== -f401-nsh: ---------- +nsh +--- Configures the NuttShell (nsh) located at apps/examples/nsh for the Nucleo-F401RE board. The Configuration enables the serial interfaces @@ -380,15 +371,9 @@ NOTES: Consoles). I have been using a TTL-to-RS-232 converter connected as shown below:: - Nucleo CN10 STM32F4x1RE + Nucleo CN10 STM32F411RE ----------- ------------ Pin 21 PA9 USART1_RX *Warning you make need to reverse RX/TX on Pin 33 PA10 USART1_TX some RS-232 converters Pin 20 GND Pin 8 U5V - -f411-nsh --------- - -This configuration is the same as the f401-nsh configuration, except -that it is configured to support the Nucleo-F411RE. diff --git a/boards/Kconfig b/boards/Kconfig index b870cd5919..ac166752cc 100644 --- a/boards/Kconfig +++ b/boards/Kconfig @@ -3391,7 +3391,8 @@ config ARCH_BOARD default "nucleo-f303re" if ARCH_BOARD_NUCLEO_F303RE default "nucleo-f303ze" if ARCH_BOARD_NUCLEO_F303ZE default "nucleo-f334r8" if ARCH_BOARD_NUCLEO_F334R8 - default "nucleo-f4x1re" if ARCH_BOARD_NUCLEO_F401RE || ARCH_BOARD_NUCLEO_F411RE + default "nucleo-f401re" if ARCH_BOARD_NUCLEO_F401RE + default "nucleo-f411re" if ARCH_BOARD_NUCLEO_F411RE default "stm32f401rc-rs485" if ARCH_BOARD_STM32F401RC_RS485 default "nucleo-f429zi" if ARCH_BOARD_NUCLEO_F429ZI default "nucleo-f446re" if ARCH_BOARD_NUCLEO_F446RE @@ -4190,8 +4191,11 @@ endif if ARCH_BOARD_NUCLEO_F446RE source "boards/arm/stm32/nucleo-f446re/Kconfig" endif -if ARCH_BOARD_NUCLEO_F401RE || ARCH_BOARD_NUCLEO_F411RE -source "boards/arm/stm32/nucleo-f4x1re/Kconfig" +if ARCH_BOARD_NUCLEO_F401RE +source "boards/arm/stm32/nucleo-f401re/Kconfig" +endif +if ARCH_BOARD_NUCLEO_F411RE +source "boards/arm/stm32/nucleo-f411re/Kconfig" endif if ARCH_BOARD_STM32F401RC_RS485 source "boards/arm/stm32/stm32f401rc-rs485/Kconfig" diff --git a/boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt b/boards/arm/stm32/nucleo-f401re/CMakeLists.txt similarity index 95% copy from boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt copy to boards/arm/stm32/nucleo-f401re/CMakeLists.txt index 7c6db43bc5..fc3725e660 100644 --- a/boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt +++ b/boards/arm/stm32/nucleo-f401re/CMakeLists.txt @@ -1,5 +1,5 @@ # ############################################################################## -# boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt +# boards/arm/stm32/nucleo-f401re/CMakeLists.txt # # SPDX-License-Identifier: Apache-2.0 # diff --git a/boards/arm/stm32/nucleo-f4x1re/Kconfig b/boards/arm/stm32/nucleo-f401re/Kconfig similarity index 100% copy from boards/arm/stm32/nucleo-f4x1re/Kconfig copy to boards/arm/stm32/nucleo-f401re/Kconfig diff --git a/boards/arm/stm32/nucleo-f4x1re/configs/f401-fb/defconfig b/boards/arm/stm32/nucleo-f401re/configs/fb/defconfig similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/configs/f401-fb/defconfig rename to boards/arm/stm32/nucleo-f401re/configs/fb/defconfig index 99a3d22d10..d0e8f3ccaf 100644 --- a/boards/arm/stm32/nucleo-f4x1re/configs/f401-fb/defconfig +++ b/boards/arm/stm32/nucleo-f401re/configs/fb/defconfig @@ -12,7 +12,7 @@ # CONFIG_NSH_DISABLE_IFCONFIG is not set # CONFIG_NSH_DISABLE_PS is not set CONFIG_ARCH="arm" -CONFIG_ARCH_BOARD="nucleo-f4x1re" +CONFIG_ARCH_BOARD="nucleo-f401re" CONFIG_ARCH_BOARD_COMMON=y CONFIG_ARCH_BOARD_NUCLEO_F401RE=y CONFIG_ARCH_BUTTONS=y diff --git a/boards/arm/stm32/nucleo-f4x1re/configs/f401-nsh/defconfig b/boards/arm/stm32/nucleo-f401re/configs/nsh/defconfig similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/configs/f401-nsh/defconfig rename to boards/arm/stm32/nucleo-f401re/configs/nsh/defconfig index 62a6fab877..e29dd5ce3b 100644 --- a/boards/arm/stm32/nucleo-f4x1re/configs/f401-nsh/defconfig +++ b/boards/arm/stm32/nucleo-f401re/configs/nsh/defconfig @@ -11,7 +11,7 @@ # CONFIG_NSH_DISABLE_IFCONFIG is not set # CONFIG_NSH_DISABLE_PS is not set CONFIG_ARCH="arm" -CONFIG_ARCH_BOARD="nucleo-f4x1re" +CONFIG_ARCH_BOARD="nucleo-f401re" CONFIG_ARCH_BOARD_NUCLEO_F401RE=y CONFIG_ARCH_BUTTONS=y CONFIG_ARCH_CHIP="stm32" diff --git a/boards/arm/stm32/nucleo-f4x1re/include/nucleo-f401re.h b/boards/arm/stm32/nucleo-f401re/include/board.h similarity index 59% rename from boards/arm/stm32/nucleo-f4x1re/include/nucleo-f401re.h rename to boards/arm/stm32/nucleo-f401re/include/board.h index 0bac3bc2b8..2db6874d65 100644 --- a/boards/arm/stm32/nucleo-f4x1re/include/nucleo-f401re.h +++ b/boards/arm/stm32/nucleo-f401re/include/board.h @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/include/nucleo-f401re.h + * boards/arm/stm32/nucleo-f401re/include/board.h * * SPDX-License-Identifier: Apache-2.0 * @@ -20,8 +20,8 @@ * ****************************************************************************/ -#ifndef __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_NUCLEO_F401RE_H -#define __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_NUCLEO_F401RE_H +#ifndef __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_BOARD_H +#define __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_BOARD_H /**************************************************************************** * Included Files @@ -208,29 +208,166 @@ # define SDIO_SDXFR_CLKDIV (3 << SDIO_CLKCR_CLKDIV_SHIFT) #endif -/**************************************************************************** - * Public Data - ****************************************************************************/ +/* DMA Channel/Stream Selections ********************************************/ -#ifndef __ASSEMBLY__ +/* Stream selections are arbitrary for now but might become important in + * the future is we set aside more DMA channels/streams. + * + * SDIO DMA + * DMAMAP_SDIO_1 = Channel 4, Stream 3 <- may later be used by SPI DMA + * DMAMAP_SDIO_2 = Channel 4, Stream 6 + */ + +#define DMAMAP_SDIO DMAMAP_SDIO_1 -#undef EXTERN -#if defined(__cplusplus) -#define EXTERN extern "C" -extern "C" -{ +/* Need to VERIFY fwb */ + +#define DMACHAN_SPI1_RX DMAMAP_SPI1_RX_1 +#define DMACHAN_SPI1_TX DMAMAP_SPI1_TX_1 +#define DMACHAN_SPI2_RX DMAMAP_SPI2_RX +#define DMACHAN_SPI2_TX DMAMAP_SPI2_TX + +/* Alternate function pin selections ****************************************/ + +/* USART1: + * RXD: PA10 CN9 pin 3, CN10 pin 33 + * PB7 CN7 pin 21 + * TXD: PA9 CN5 pin 1, CN10 pin 21 + * PB6 CN5 pin 3, CN10 pin 17 + */ + +#if 1 +# define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA10 */ +# define GPIO_USART1_TX GPIO_USART1_TX_1 /* PA9 */ #else -#define EXTERN extern +# define GPIO_USART1_RX GPIO_USART1_RX_2 /* PB7 */ +# define GPIO_USART1_TX GPIO_USART1_TX_2 /* PB6 */ #endif -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ +/* USART2: + * RXD: PA3 CN9 pin 1 (See SB13, 14, 62, 63). CN10 pin 37 + * PD6 + * TXD: PA2 CN9 pin 2(See SB13, 14, 62, 63). CN10 pin 35 + * PD5 + */ -#undef EXTERN -#if defined(__cplusplus) -} -#endif +#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */ +#define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */ +#define GPIO_USART2_RTS GPIO_USART2_RTS_2 +#define GPIO_USART2_CTS GPIO_USART2_CTS_2 + +/* USART6: + * RXD: PC7 CN5 pin2, CN10 pin 19 + * PA12 CN10, pin 12 + * TXD: PC6 CN10, pin 4 + * PA11 CN10, pin 14 + */ + +#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */ +#define GPIO_USART6_TX GPIO_USART6_TX_1 /* PC6 */ + +/* UART RX DMA configurations */ + +#define DMAMAP_USART1_RX DMAMAP_USART1_RX_2 +#define DMAMAP_USART6_RX DMAMAP_USART6_RX_2 + +/* I2C + * + * The optional _GPIO configurations allow the I2C driver to manually + * reset the bus to clear stuck slaves. They match the pin configuration, + * but are normally-high GPIOs. + */ + +#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2 +#define GPIO_I2C1_SDA GPIO_I2C1_SDA_2 +#define GPIO_I2C1_SCL_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8) +#define GPIO_I2C1_SDA_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9) + +#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 +#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 +#define GPIO_I2C2_SCL_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) +#define GPIO_I2C2_SDA_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN11) + +/* SPI + * + * There are sensors on SPI1, and SPI2 is connected to the FRAM. + */ + +#define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 +#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 +#define GPIO_SPI1_SCK GPIO_SPI1_SCK_1 + +#define GPIO_SPI2_MISO GPIO_SPI2_MISO_1 +#define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_1 +#define GPIO_SPI2_SCK GPIO_SPI2_SCK_2 + +/* LEDs + * + * The Nucleo F401RE board provide a single user LED, LD2. LD2 + * is the green LED connected to Arduino signal D13 corresponding to MCU I/O + * PA5 (pin 21) or PB13 (pin 34) depending on the STM32 target. + * + * - When the I/O is HIGH value, the LED is on. + * - When the I/O is LOW, the LED is off. + */ + +/* LED index values for use with board_userled() */ + +#define BOARD_LD2 0 +#define BOARD_NLEDS 1 + +/* LED bits for use with board_userled_all() */ + +#define BOARD_LD2_BIT (1 << BOARD_LD2) + +/* These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is + * defined. In that case, the usage by the board port is defined in + * include/board.h and src/sam_leds.c. The LEDs are used to encode OS-related + * events as follows when the red LED (PE24) is available: + * + * SYMBOL Meaning LD2 + * ------------------- ----------------------- ----------- + * LED_STARTED NuttX has been started OFF + * LED_HEAPALLOCATE Heap has been allocated OFF + * LED_IRQSENABLED Interrupts enabled OFF + * LED_STACKCREATED Idle stack created ON + * LED_INIRQ In an interrupt No change + * LED_SIGNAL In a signal handler No change + * LED_ASSERTION An assertion failed No change + * LED_PANIC The system has crashed Blinking + * LED_IDLE MCU is is sleep mode Not used + * + * Thus if LD2, NuttX has successfully booted and is, apparently, running + * normally. If LD2 is flashing at approximately 2Hz, then a fatal error + * has been detected and the system has halted. + */ + +#define LED_STARTED 0 +#define LED_HEAPALLOCATE 0 +#define LED_IRQSENABLED 0 +#define LED_STACKCREATED 1 +#define LED_INIRQ 2 +#define LED_SIGNAL 2 +#define LED_ASSERTION 2 +#define LED_PANIC 1 + +/* Buttons + * + * B1 USER: + * the user button is connected to the I/O PC13 (pin 2) of the STM32 + * microcontroller. + */ + +#define BUTTON_USER 0 +#define NUM_BUTTONS 1 + +#define BUTTON_USER_BIT (1 << BUTTON_USER) + +#define GPIO_TIM2_CH1IN (GPIO_TIM2_CH1IN_1 | GPIO_PULLUP) +#define GPIO_TIM2_CH2IN (GPIO_TIM2_CH2IN_1 | GPIO_PULLUP) -#endif /* __ASSEMBLY__ */ -#endif /* __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_NUCLEO_F401RE_H */ +#endif /* __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_BOARD_H */ diff --git a/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs b/boards/arm/stm32/nucleo-f401re/scripts/Make.defs similarity index 90% copy from boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs copy to boards/arm/stm32/nucleo-f401re/scripts/Make.defs index 780bd120a1..a106e21e6a 100644 --- a/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs +++ b/boards/arm/stm32/nucleo-f401re/scripts/Make.defs @@ -1,5 +1,5 @@ ############################################################################ -# boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs +# boards/arm/stm32/nucleo-f401re/scripts/Make.defs # # SPDX-License-Identifier: Apache-2.0 # @@ -24,11 +24,7 @@ include $(TOPDIR)/.config include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs -ifeq ($(CONFIG_ARCH_CHIP_STM32F401RE),y) -LDSCRIPT = f401re.ld -else ifeq ($(CONFIG_ARCH_CHIP_STM32F411RE),y) -LDSCRIPT = f411re.ld -endif +LDSCRIPT = flash.ld ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT) diff --git a/boards/arm/stm32/nucleo-f4x1re/scripts/f401re.ld b/boards/arm/stm32/nucleo-f401re/scripts/flash.ld similarity index 98% rename from boards/arm/stm32/nucleo-f4x1re/scripts/f401re.ld rename to boards/arm/stm32/nucleo-f401re/scripts/flash.ld index 8992ad490a..baa6ff5ad1 100644 --- a/boards/arm/stm32/nucleo-f4x1re/scripts/f401re.ld +++ b/boards/arm/stm32/nucleo-f401re/scripts/flash.ld @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/scripts/f401re.ld + * boards/arm/stm32/nucleo-f401re/scripts/flash.ld * * SPDX-License-Identifier: Apache-2.0 * diff --git a/boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt b/boards/arm/stm32/nucleo-f401re/src/CMakeLists.txt similarity index 84% copy from boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt copy to boards/arm/stm32/nucleo-f401re/src/CMakeLists.txt index d7db323a06..804ea88612 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt +++ b/boards/arm/stm32/nucleo-f401re/src/CMakeLists.txt @@ -1,5 +1,5 @@ # ############################################################################## -# boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt +# boards/arm/stm32/nucleo-f401re/src/CMakeLists.txt # # SPDX-License-Identifier: Apache-2.0 # @@ -55,8 +55,4 @@ endif() target_sources(board PRIVATE ${SRCS}) -if(CONFIG_ARCH_CHIP_STM32F401RE) - set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/f401re.ld") -elseif(CONFIG_ARCH_CHIP_STM32F411RE) - set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/f411re.ld") -endif() +set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash.ld") diff --git a/boards/arm/stm32/nucleo-f4x1re/src/Make.defs b/boards/arm/stm32/nucleo-f401re/src/Make.defs similarity index 97% copy from boards/arm/stm32/nucleo-f4x1re/src/Make.defs copy to boards/arm/stm32/nucleo-f401re/src/Make.defs index cefced9d60..372f00f248 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/Make.defs +++ b/boards/arm/stm32/nucleo-f401re/src/Make.defs @@ -1,5 +1,5 @@ ############################################################################ -# boards/arm/stm32/nucleo-f4x1re/src/Make.defs +# boards/arm/stm32/nucleo-f401re/src/Make.defs # # SPDX-License-Identifier: Apache-2.0 # diff --git a/boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h b/boards/arm/stm32/nucleo-f401re/src/nucleo-f401re.h similarity index 99% copy from boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h copy to boards/arm/stm32/nucleo-f401re/src/nucleo-f401re.h index 8683f29c1a..976fca4a40 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h +++ b/boards/arm/stm32/nucleo-f401re/src/nucleo-f401re.h @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h + * boards/arm/stm32/nucleo-f401re/src/nucleo-f401re.h * * SPDX-License-Identifier: Apache-2.0 * @@ -143,7 +143,7 @@ * about this joystick. * * --------- ----------------- --------------------------------- - * ARDUINO ITEAD NUCLEO-F4x1 + * ARDUINO ITEAD NUCLEO-F401 * PIN NAME SIGNAL SIGNAL * --------- ----------------- --------------------------------- * D3 Button E Output PB3 diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c b/boards/arm/stm32/nucleo-f401re/src/stm32_adc.c similarity index 97% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_adc.c index e693f7621c..426061b6eb 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_adc.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c + * boards/arm/stm32/nucleo-f401re/src/stm32_adc.c * * SPDX-License-Identifier: Apache-2.0 * @@ -35,7 +35,7 @@ #include "chip.h" #include "arm_internal.h" #include "stm32_adc.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <arch/board/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c b/boards/arm/stm32/nucleo-f401re/src/stm32_ajoystick.c similarity index 99% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_ajoystick.c index 13993a5c64..cbad8b5e1c 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_ajoystick.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c + * boards/arm/stm32/nucleo-f401re/src/stm32_ajoystick.c * * SPDX-License-Identifier: Apache-2.0 * @@ -40,7 +40,7 @@ #include "stm32_gpio.h" #include "stm32_adc.h" #include "hardware/stm32_adc.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" /**************************************************************************** * Pre-processor Definitions diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c b/boards/arm/stm32/nucleo-f401re/src/stm32_appinit.c similarity index 97% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_appinit.c index 0f56e20c2e..b1562d2d4a 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_appinit.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c + * boards/arm/stm32/nucleo-f401re/src/stm32_appinit.c * * SPDX-License-Identifier: Apache-2.0 * @@ -29,7 +29,7 @@ #include <sys/types.h> #include <stdint.h> -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <nuttx/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c b/boards/arm/stm32/nucleo-f401re/src/stm32_autoleds.c similarity index 96% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_autoleds.c index 02c875f866..dd8cc76628 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_autoleds.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c + * boards/arm/stm32/nucleo-f401re/src/stm32_autoleds.c * * SPDX-License-Identifier: Apache-2.0 * @@ -35,7 +35,7 @@ #include "chip.h" #include "arm_internal.h" #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <arch/board/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c b/boards/arm/stm32/nucleo-f401re/src/stm32_boot.c similarity index 97% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_boot.c index 52eb2163de..f46b1ed781 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_boot.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c + * boards/arm/stm32/nucleo-f401re/src/stm32_boot.c * * SPDX-License-Identifier: Apache-2.0 * @@ -34,7 +34,7 @@ #include <arch/board/board.h> #include "arm_internal.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <nuttx/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c b/boards/arm/stm32/nucleo-f401re/src/stm32_bringup.c similarity index 98% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_bringup.c index 3193bd4b45..b1daccc915 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_bringup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c + * boards/arm/stm32/nucleo-f401re/src/stm32_bringup.c * * SPDX-License-Identifier: Apache-2.0 * @@ -47,7 +47,7 @@ # include <nuttx/input/buttons.h> #endif -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <nuttx/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c b/boards/arm/stm32/nucleo-f401re/src/stm32_buttons.c similarity index 98% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_buttons.c index d745997f24..b0a02f7a87 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_buttons.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c + * boards/arm/stm32/nucleo-f401re/src/stm32_buttons.c * * SPDX-License-Identifier: Apache-2.0 * @@ -33,7 +33,7 @@ #include <arch/board/board.h> #include "stm32_gpio.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <nuttx/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c b/boards/arm/stm32/nucleo-f401re/src/stm32_lcd_ssd1306.c similarity index 97% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_lcd_ssd1306.c index 2bf8219530..9bee0a0317 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_lcd_ssd1306.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c + * boards/arm/stm32/nucleo-f401re/src/stm32_lcd_ssd1306.c * * SPDX-License-Identifier: Apache-2.0 * @@ -33,7 +33,7 @@ #include <nuttx/lcd/ssd1306.h> #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include "stm32_ssd1306.h" diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c b/boards/arm/stm32/nucleo-f401re/src/stm32_mcp2515.c similarity index 98% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_mcp2515.c index 4806158cdc..e8c490e4d9 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_mcp2515.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c + * boards/arm/stm32/nucleo-f401re/src/stm32_mcp2515.c * * SPDX-License-Identifier: Apache-2.0 * @@ -35,7 +35,7 @@ #include "stm32.h" #include "stm32_spi.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #if defined(CONFIG_SPI) && defined(CONFIG_STM32_SPI1) && \ defined(CONFIG_CAN_MCP2515) diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c b/boards/arm/stm32/nucleo-f401re/src/stm32_spi.c similarity index 98% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_spi.c index 1e2aadac22..fd83961422 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_spi.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c + * boards/arm/stm32/nucleo-f401re/src/stm32_spi.c * * SPDX-License-Identifier: Apache-2.0 * @@ -37,7 +37,7 @@ #include "chip.h" #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <arch/board/board.h> @@ -65,8 +65,7 @@ struct spi_dev_s *g_spi2; * Name: stm32_spidev_initialize * * Description: - * Called to configure SPI chip select GPIO pins for the Nucleo-F401RE and - * Nucleo-F411RE boards. + * Called to configure SPI chip select GPIO pins for the Nucleo-F401RE * ****************************************************************************/ diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c b/boards/arm/stm32/nucleo-f401re/src/stm32_userleds.c similarity index 98% copy from boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c copy to boards/arm/stm32/nucleo-f401re/src/stm32_userleds.c index dd25e5f692..e85b48cbbb 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c +++ b/boards/arm/stm32/nucleo-f401re/src/stm32_userleds.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c + * boards/arm/stm32/nucleo-f401re/src/stm32_userleds.c * * SPDX-License-Identifier: Apache-2.0 * @@ -36,7 +36,7 @@ #include "chip.h" #include "arm_internal.h" #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f401re.h" #include <arch/board/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt b/boards/arm/stm32/nucleo-f411re/CMakeLists.txt similarity index 95% rename from boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt rename to boards/arm/stm32/nucleo-f411re/CMakeLists.txt index 7c6db43bc5..53fe0025e4 100644 --- a/boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt +++ b/boards/arm/stm32/nucleo-f411re/CMakeLists.txt @@ -1,5 +1,5 @@ # ############################################################################## -# boards/arm/stm32/nucleo-f4x1re/CMakeLists.txt +# boards/arm/stm32/nucleo-f411re/CMakeLists.txt # # SPDX-License-Identifier: Apache-2.0 # diff --git a/boards/arm/stm32/nucleo-f4x1re/Kconfig b/boards/arm/stm32/nucleo-f411re/Kconfig similarity index 83% rename from boards/arm/stm32/nucleo-f4x1re/Kconfig rename to boards/arm/stm32/nucleo-f411re/Kconfig index 166b75a72a..d8f9cca70a 100644 --- a/boards/arm/stm32/nucleo-f4x1re/Kconfig +++ b/boards/arm/stm32/nucleo-f411re/Kconfig @@ -3,14 +3,14 @@ # see the file kconfig-language.txt in the NuttX tools repository. # -if ARCH_BOARD_NUCLEO_F401RE +if ARCH_BOARD_NUCLEO_F411RE -config NUCLEO_F401RE_QETIMER +config NUCLEO_F411RE_QETIMER int "Timer to use with QE encoder" default 3 depends on SENSORS_QENCODER -config NUCLEO_F401RE_AJOY_MINBUTTONS +config NUCLEO_F411RE_AJOY_MINBUTTONS bool "Minimal Joystick Buttons" default STM32_USART1 depends on INPUT_AJOYSTICK @@ -22,4 +22,4 @@ config NUCLEO_F401RE_AJOY_MINBUTTONS minimal set: SELECT (joystick down), FIRE (BUTTON B), and JUMP (BUTTON A). -endif # ARCH_BOARD_NUCLEO_F401RE +endif # ARCH_BOARD_NUCLEO_F411RE diff --git a/boards/arm/stm32/nucleo-f4x1re/configs/f411-mcp2515-extid/defconfig b/boards/arm/stm32/nucleo-f411re/configs/mcp2515-extid/defconfig similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/configs/f411-mcp2515-extid/defconfig rename to boards/arm/stm32/nucleo-f411re/configs/mcp2515-extid/defconfig index 9a48f82f22..e785312732 100644 --- a/boards/arm/stm32/nucleo-f4x1re/configs/f411-mcp2515-extid/defconfig +++ b/boards/arm/stm32/nucleo-f411re/configs/mcp2515-extid/defconfig @@ -11,7 +11,7 @@ # CONFIG_NSH_DISABLE_IFCONFIG is not set # CONFIG_NSH_DISABLE_PS is not set CONFIG_ARCH="arm" -CONFIG_ARCH_BOARD="nucleo-f4x1re" +CONFIG_ARCH_BOARD="nucleo-f411re" CONFIG_ARCH_BOARD_NUCLEO_F411RE=y CONFIG_ARCH_BUTTONS=y CONFIG_ARCH_CHIP="stm32" diff --git a/boards/arm/stm32/nucleo-f4x1re/configs/f411-nsh/defconfig b/boards/arm/stm32/nucleo-f411re/configs/nsh/defconfig similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/configs/f411-nsh/defconfig rename to boards/arm/stm32/nucleo-f411re/configs/nsh/defconfig index 886bb96aa8..ea0120452e 100644 --- a/boards/arm/stm32/nucleo-f4x1re/configs/f411-nsh/defconfig +++ b/boards/arm/stm32/nucleo-f411re/configs/nsh/defconfig @@ -11,7 +11,7 @@ # CONFIG_NSH_DISABLE_IFCONFIG is not set # CONFIG_NSH_DISABLE_PS is not set CONFIG_ARCH="arm" -CONFIG_ARCH_BOARD="nucleo-f4x1re" +CONFIG_ARCH_BOARD="nucleo-f411re" CONFIG_ARCH_BOARD_NUCLEO_F411RE=y CONFIG_ARCH_BUTTONS=y CONFIG_ARCH_CHIP="stm32" diff --git a/boards/arm/stm32/nucleo-f4x1re/include/nucleo-f411re.h b/boards/arm/stm32/nucleo-f411re/include/board.h similarity index 58% rename from boards/arm/stm32/nucleo-f4x1re/include/nucleo-f411re.h rename to boards/arm/stm32/nucleo-f411re/include/board.h index 506d45835c..c036fece69 100644 --- a/boards/arm/stm32/nucleo-f4x1re/include/nucleo-f411re.h +++ b/boards/arm/stm32/nucleo-f411re/include/board.h @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/include/nucleo-f411re.h + * boards/arm/stm32/nucleo-f411re/include/board.h * * SPDX-License-Identifier: Apache-2.0 * @@ -20,8 +20,8 @@ * ****************************************************************************/ -#ifndef __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_NUCLEO_F411RE_H -#define __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_NUCLEO_F411RE_H +#ifndef __BOARDS_ARM_STM32_NUCLEO_F411RE_INCLUDE_BOARD_H +#define __BOARDS_ARM_STM32_NUCLEO_F411RE_INCLUDE_BOARD_H /**************************************************************************** * Included Files @@ -205,29 +205,166 @@ # define SDIO_SDXFR_CLKDIV (3 << SDIO_CLKCR_CLKDIV_SHIFT) #endif -/**************************************************************************** - * Public Data - ****************************************************************************/ +/* DMA Channel/Stream Selections ********************************************/ -#ifndef __ASSEMBLY__ +/* Stream selections are arbitrary for now but might become important in + * the future is we set aside more DMA channels/streams. + * + * SDIO DMA + * DMAMAP_SDIO_1 = Channel 4, Stream 3 <- may later be used by SPI DMA + * DMAMAP_SDIO_2 = Channel 4, Stream 6 + */ + +#define DMAMAP_SDIO DMAMAP_SDIO_1 -#undef EXTERN -#if defined(__cplusplus) -#define EXTERN extern "C" -extern "C" -{ +/* Need to VERIFY fwb */ + +#define DMACHAN_SPI1_RX DMAMAP_SPI1_RX_1 +#define DMACHAN_SPI1_TX DMAMAP_SPI1_TX_1 +#define DMACHAN_SPI2_RX DMAMAP_SPI2_RX +#define DMACHAN_SPI2_TX DMAMAP_SPI2_TX + +/* Alternate function pin selections ****************************************/ + +/* USART1: + * RXD: PA10 CN9 pin 3, CN10 pin 33 + * PB7 CN7 pin 21 + * TXD: PA9 CN5 pin 1, CN10 pin 21 + * PB6 CN5 pin 3, CN10 pin 17 + */ + +#if 1 +# define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA10 */ +# define GPIO_USART1_TX GPIO_USART1_TX_1 /* PA9 */ #else -#define EXTERN extern +# define GPIO_USART1_RX GPIO_USART1_RX_2 /* PB7 */ +# define GPIO_USART1_TX GPIO_USART1_TX_2 /* PB6 */ #endif -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ +/* USART2: + * RXD: PA3 CN9 pin 1 (See SB13, 14, 62, 63). CN10 pin 37 + * PD6 + * TXD: PA2 CN9 pin 2(See SB13, 14, 62, 63). CN10 pin 35 + * PD5 + */ -#undef EXTERN -#if defined(__cplusplus) -} -#endif +#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */ +#define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */ +#define GPIO_USART2_RTS GPIO_USART2_RTS_2 +#define GPIO_USART2_CTS GPIO_USART2_CTS_2 + +/* USART6: + * RXD: PC7 CN5 pin2, CN10 pin 19 + * PA12 CN10, pin 12 + * TXD: PC6 CN10, pin 4 + * PA11 CN10, pin 14 + */ + +#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */ +#define GPIO_USART6_TX GPIO_USART6_TX_1 /* PC6 */ + +/* UART RX DMA configurations */ + +#define DMAMAP_USART1_RX DMAMAP_USART1_RX_2 +#define DMAMAP_USART6_RX DMAMAP_USART6_RX_2 + +/* I2C + * + * The optional _GPIO configurations allow the I2C driver to manually + * reset the bus to clear stuck slaves. They match the pin configuration, + * but are normally-high GPIOs. + */ + +#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2 +#define GPIO_I2C1_SDA GPIO_I2C1_SDA_2 +#define GPIO_I2C1_SCL_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8) +#define GPIO_I2C1_SDA_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9) + +#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 +#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 +#define GPIO_I2C2_SCL_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) +#define GPIO_I2C2_SDA_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN11) + +/* SPI + * + * There are sensors on SPI1, and SPI2 is connected to the FRAM. + */ + +#define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 +#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 +#define GPIO_SPI1_SCK GPIO_SPI1_SCK_1 + +#define GPIO_SPI2_MISO GPIO_SPI2_MISO_1 +#define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_1 +#define GPIO_SPI2_SCK GPIO_SPI2_SCK_2 + +/* LEDs + * + * The Nucleo F411RE board provide a single user LED, LD2. LD2 + * is the green LED connected to Arduino signal D13 corresponding to MCU I/O + * PA5 (pin 21) or PB13 (pin 34) depending on the STM32 target. + * + * - When the I/O is HIGH value, the LED is on. + * - When the I/O is LOW, the LED is off. + */ + +/* LED index values for use with board_userled() */ + +#define BOARD_LD2 0 +#define BOARD_NLEDS 1 + +/* LED bits for use with board_userled_all() */ + +#define BOARD_LD2_BIT (1 << BOARD_LD2) + +/* These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is + * defined. In that case, the usage by the board port is defined in + * include/board.h and src/sam_leds.c. The LEDs are used to encode OS-related + * events as follows when the red LED (PE24) is available: + * + * SYMBOL Meaning LD2 + * ------------------- ----------------------- ----------- + * LED_STARTED NuttX has been started OFF + * LED_HEAPALLOCATE Heap has been allocated OFF + * LED_IRQSENABLED Interrupts enabled OFF + * LED_STACKCREATED Idle stack created ON + * LED_INIRQ In an interrupt No change + * LED_SIGNAL In a signal handler No change + * LED_ASSERTION An assertion failed No change + * LED_PANIC The system has crashed Blinking + * LED_IDLE MCU is is sleep mode Not used + * + * Thus if LD2, NuttX has successfully booted and is, apparently, running + * normally. If LD2 is flashing at approximately 2Hz, then a fatal error + * has been detected and the system has halted. + */ + +#define LED_STARTED 0 +#define LED_HEAPALLOCATE 0 +#define LED_IRQSENABLED 0 +#define LED_STACKCREATED 1 +#define LED_INIRQ 2 +#define LED_SIGNAL 2 +#define LED_ASSERTION 2 +#define LED_PANIC 1 + +/* Buttons + * + * B1 USER: + * the user button is connected to the I/O PC13 (pin 2) of the STM32 + * microcontroller. + */ + +#define BUTTON_USER 0 +#define NUM_BUTTONS 1 + +#define BUTTON_USER_BIT (1 << BUTTON_USER) + +#define GPIO_TIM2_CH1IN (GPIO_TIM2_CH1IN_1 | GPIO_PULLUP) +#define GPIO_TIM2_CH2IN (GPIO_TIM2_CH2IN_1 | GPIO_PULLUP) -#endif /* __ASSEMBLY__ */ -#endif /* __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_NUCLEO_F411RE_H */ +#endif /* __BOARDS_ARM_STM32_NUCLEO_F411RE_INCLUDE_BOARD_H */ diff --git a/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs b/boards/arm/stm32/nucleo-f411re/scripts/Make.defs similarity index 90% rename from boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs rename to boards/arm/stm32/nucleo-f411re/scripts/Make.defs index 780bd120a1..88f77e2be6 100644 --- a/boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs +++ b/boards/arm/stm32/nucleo-f411re/scripts/Make.defs @@ -1,5 +1,5 @@ ############################################################################ -# boards/arm/stm32/nucleo-f4x1re/scripts/Make.defs +# boards/arm/stm32/nucleo-f411re/scripts/Make.defs # # SPDX-License-Identifier: Apache-2.0 # @@ -24,11 +24,7 @@ include $(TOPDIR)/.config include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs -ifeq ($(CONFIG_ARCH_CHIP_STM32F401RE),y) -LDSCRIPT = f401re.ld -else ifeq ($(CONFIG_ARCH_CHIP_STM32F411RE),y) -LDSCRIPT = f411re.ld -endif +LDSCRIPT = flash.ld ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT) diff --git a/boards/arm/stm32/nucleo-f4x1re/scripts/f411re.ld b/boards/arm/stm32/nucleo-f411re/scripts/flash.ld similarity index 98% rename from boards/arm/stm32/nucleo-f4x1re/scripts/f411re.ld rename to boards/arm/stm32/nucleo-f411re/scripts/flash.ld index 9b4c82898a..03d21e6818 100644 --- a/boards/arm/stm32/nucleo-f4x1re/scripts/f411re.ld +++ b/boards/arm/stm32/nucleo-f411re/scripts/flash.ld @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/scripts/f411re.ld + * boards/arm/stm32/nucleo-f411re/scripts/flash.ld * * SPDX-License-Identifier: Apache-2.0 * diff --git a/boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt b/boards/arm/stm32/nucleo-f411re/src/CMakeLists.txt similarity index 84% rename from boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt rename to boards/arm/stm32/nucleo-f411re/src/CMakeLists.txt index d7db323a06..112eee3d55 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt +++ b/boards/arm/stm32/nucleo-f411re/src/CMakeLists.txt @@ -1,5 +1,5 @@ # ############################################################################## -# boards/arm/stm32/nucleo-f4x1re/src/CMakeLists.txt +# boards/arm/stm32/nucleo-f411re/src/CMakeLists.txt # # SPDX-License-Identifier: Apache-2.0 # @@ -55,8 +55,4 @@ endif() target_sources(board PRIVATE ${SRCS}) -if(CONFIG_ARCH_CHIP_STM32F401RE) - set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/f401re.ld") -elseif(CONFIG_ARCH_CHIP_STM32F411RE) - set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/f411re.ld") -endif() +set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash.ld") diff --git a/boards/arm/stm32/nucleo-f4x1re/src/Make.defs b/boards/arm/stm32/nucleo-f411re/src/Make.defs similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/src/Make.defs rename to boards/arm/stm32/nucleo-f411re/src/Make.defs index cefced9d60..20c1fcb2be 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/Make.defs +++ b/boards/arm/stm32/nucleo-f411re/src/Make.defs @@ -1,5 +1,5 @@ ############################################################################ -# boards/arm/stm32/nucleo-f4x1re/src/Make.defs +# boards/arm/stm32/nucleo-f411re/src/Make.defs # # SPDX-License-Identifier: Apache-2.0 # diff --git a/boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h b/boards/arm/stm32/nucleo-f411re/src/nucleo-f411re.h similarity index 96% rename from boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h rename to boards/arm/stm32/nucleo-f411re/src/nucleo-f411re.h index 8683f29c1a..88f6fdce85 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h +++ b/boards/arm/stm32/nucleo-f411re/src/nucleo-f411re.h @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/nucleo-f4x1re.h + * boards/arm/stm32/nucleo-f411re/src/nucleo-f411re.h * * SPDX-License-Identifier: Apache-2.0 * @@ -20,8 +20,8 @@ * ****************************************************************************/ -#ifndef __BOARDS_ARM_STM32_NUCLEO_F401RE_SRC_NUCLEO_F401RE_H -#define __BOARDS_ARM_STM32_NUCLEO_F401RE_SRC_NUCLEO_F401RE_H +#ifndef __BOARDS_ARM_STM32_NUCLEO_F411RE_SRC_NUCLEO_F411RE_H +#define __BOARDS_ARM_STM32_NUCLEO_F411RE_SRC_NUCLEO_F411RE_H /**************************************************************************** * Included Files @@ -86,7 +86,7 @@ * LED2=D6=PB_10 I2C1_SDA=D14=PB_9 WIFI Probe * D7=PA_8 I2C1_SCL=D15=PB_8 WIFI Probe * - * mostly from: https://mbed.org/platforms/ST-Nucleo-F401RE/ + * mostly from: https://mbed.org/platforms/ST-Nucleo-F411RE/ * */ @@ -143,7 +143,7 @@ * about this joystick. * * --------- ----------------- --------------------------------- - * ARDUINO ITEAD NUCLEO-F4x1 + * ARDUINO ITEAD NUCLEO-F411 * PIN NAME SIGNAL SIGNAL * --------- ----------------- --------------------------------- * D3 Button E Output PB3 @@ -163,7 +163,7 @@ * NOTE: Button F cannot be used with the default USART1 configuration * because PA9 is configured for USART1_RX by default. Use select * different USART1 pins in the board.h file or select a different - * USART or select CONFIG_NUCLEO_F401RE_AJOY_MINBUTTONS which will + * USART or select CONFIG_NUCLEO_F411RE_AJOY_MINBUTTONS which will * eliminate all but buttons A, B, and C. */ @@ -308,4 +308,4 @@ int board_ajoy_initialize(void); int stm32_mcp2515initialize(const char *devpath); #endif -#endif /* __BOARDS_ARM_STM32_NUCLEO_F401RE_SRC_NUCLEO_F401RE_H */ +#endif /* __BOARDS_ARM_STM32_NUCLEO_F411RE_SRC_NUCLEO_F411RE_H */ diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c b/boards/arm/stm32/nucleo-f411re/src/stm32_adc.c similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_adc.c index e693f7621c..4abf451586 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_adc.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_adc.c + * boards/arm/stm32/nucleo-f411re/src/stm32_adc.c * * SPDX-License-Identifier: Apache-2.0 * @@ -35,7 +35,7 @@ #include "chip.h" #include "arm_internal.h" #include "stm32_adc.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <arch/board/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c b/boards/arm/stm32/nucleo-f411re/src/stm32_ajoystick.c similarity index 98% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_ajoystick.c index 13993a5c64..a2f055fd61 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_ajoystick.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_ajoystick.c + * boards/arm/stm32/nucleo-f411re/src/stm32_ajoystick.c * * SPDX-License-Identifier: Apache-2.0 * @@ -40,7 +40,7 @@ #include "stm32_gpio.h" #include "stm32_adc.h" #include "hardware/stm32_adc.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" /**************************************************************************** * Pre-processor Definitions @@ -76,7 +76,7 @@ # define NJOYSTICK_CHANNELS 1 #endif -#ifdef CONFIG_NUCLEO_F401RE_AJOY_MINBUTTONS +#ifdef CONFIG_NUCLEO_F411RE_AJOY_MINBUTTONS /* Number of Joystick buttons */ # define AJOY_NGPIOS 3 @@ -123,7 +123,7 @@ static int ajoy_interrupt(int irq, void *context, void *arg); * button definitions in include/nuttx/input/ajoystick.h. */ -#ifdef CONFIG_NUCLEO_F401RE_AJOY_MINBUTTONS +#ifdef CONFIG_NUCLEO_F411RE_AJOY_MINBUTTONS static const uint32_t g_joygpio[AJOY_NGPIOS] = { GPIO_BUTTON_1, GPIO_BUTTON_2, GPIO_BUTTON_3 diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c b/boards/arm/stm32/nucleo-f411re/src/stm32_appinit.c similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_appinit.c index 0f56e20c2e..c2b6d362be 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_appinit.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_appinit.c + * boards/arm/stm32/nucleo-f411re/src/stm32_appinit.c * * SPDX-License-Identifier: Apache-2.0 * @@ -29,7 +29,7 @@ #include <sys/types.h> #include <stdint.h> -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <nuttx/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c b/boards/arm/stm32/nucleo-f411re/src/stm32_autoleds.c similarity index 96% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_autoleds.c index 02c875f866..c9a53c8197 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_autoleds.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_autoleds.c + * boards/arm/stm32/nucleo-f411re/src/stm32_autoleds.c * * SPDX-License-Identifier: Apache-2.0 * @@ -35,7 +35,7 @@ #include "chip.h" #include "arm_internal.h" #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <arch/board/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c b/boards/arm/stm32/nucleo-f411re/src/stm32_boot.c similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_boot.c index 52eb2163de..d279630946 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_boot.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_boot.c + * boards/arm/stm32/nucleo-f411re/src/stm32_boot.c * * SPDX-License-Identifier: Apache-2.0 * @@ -34,7 +34,7 @@ #include <arch/board/board.h> #include "arm_internal.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <nuttx/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c b/boards/arm/stm32/nucleo-f411re/src/stm32_bringup.c similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_bringup.c index 3193bd4b45..22e899f055 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_bringup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_bringup.c + * boards/arm/stm32/nucleo-f411re/src/stm32_bringup.c * * SPDX-License-Identifier: Apache-2.0 * @@ -47,7 +47,7 @@ # include <nuttx/input/buttons.h> #endif -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <nuttx/board.h> @@ -194,7 +194,7 @@ int stm32_bringup(void) #ifdef CONFIG_SENSORS_QENCODER /* Initialize and register the qencoder driver */ - ret = board_qencoder_initialize(0, CONFIG_NUCLEO_F401RE_QETIMER); + ret = board_qencoder_initialize(0, CONFIG_NUCLEO_F411RE_QETIMER); if (ret != OK) { syslog(LOG_ERR, diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c b/boards/arm/stm32/nucleo-f411re/src/stm32_buttons.c similarity index 98% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_buttons.c index d745997f24..7d064a6b2d 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_buttons.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_buttons.c + * boards/arm/stm32/nucleo-f411re/src/stm32_buttons.c * * SPDX-License-Identifier: Apache-2.0 * @@ -33,7 +33,7 @@ #include <arch/board/board.h> #include "stm32_gpio.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <nuttx/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c b/boards/arm/stm32/nucleo-f411re/src/stm32_lcd_ssd1306.c similarity index 97% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_lcd_ssd1306.c index 2bf8219530..ac67c71350 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_lcd_ssd1306.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_lcd_ssd1306.c + * boards/arm/stm32/nucleo-f411re/src/stm32_lcd_ssd1306.c * * SPDX-License-Identifier: Apache-2.0 * @@ -33,7 +33,7 @@ #include <nuttx/lcd/ssd1306.h> #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include "stm32_ssd1306.h" diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c b/boards/arm/stm32/nucleo-f411re/src/stm32_mcp2515.c similarity index 98% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_mcp2515.c index 4806158cdc..a5138a38d7 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_mcp2515.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_mcp2515.c + * boards/arm/stm32/nucleo-f411re/src/stm32_mcp2515.c * * SPDX-License-Identifier: Apache-2.0 * @@ -35,7 +35,7 @@ #include "stm32.h" #include "stm32_spi.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #if defined(CONFIG_SPI) && defined(CONFIG_STM32_SPI1) && \ defined(CONFIG_CAN_MCP2515) diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c b/boards/arm/stm32/nucleo-f411re/src/stm32_spi.c similarity index 98% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_spi.c index 1e2aadac22..9462a72809 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_spi.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_spi.c + * boards/arm/stm32/nucleo-f411re/src/stm32_spi.c * * SPDX-License-Identifier: Apache-2.0 * @@ -37,7 +37,7 @@ #include "chip.h" #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <arch/board/board.h> @@ -65,8 +65,7 @@ struct spi_dev_s *g_spi2; * Name: stm32_spidev_initialize * * Description: - * Called to configure SPI chip select GPIO pins for the Nucleo-F401RE and - * Nucleo-F411RE boards. + * Called to configure SPI chip select GPIO pins for the Nucleo-F411RE * ****************************************************************************/ diff --git a/boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c b/boards/arm/stm32/nucleo-f411re/src/stm32_userleds.c similarity index 98% rename from boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c rename to boards/arm/stm32/nucleo-f411re/src/stm32_userleds.c index dd25e5f692..0e9370c49e 100644 --- a/boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c +++ b/boards/arm/stm32/nucleo-f411re/src/stm32_userleds.c @@ -1,5 +1,5 @@ /**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/src/stm32_userleds.c + * boards/arm/stm32/nucleo-f411re/src/stm32_userleds.c * * SPDX-License-Identifier: Apache-2.0 * @@ -36,7 +36,7 @@ #include "chip.h" #include "arm_internal.h" #include "stm32.h" -#include "nucleo-f4x1re.h" +#include "nucleo-f411re.h" #include <arch/board/board.h> diff --git a/boards/arm/stm32/nucleo-f4x1re/include/board.h b/boards/arm/stm32/nucleo-f4x1re/include/board.h deleted file mode 100644 index 408cad5d7a..0000000000 --- a/boards/arm/stm32/nucleo-f4x1re/include/board.h +++ /dev/null @@ -1,209 +0,0 @@ -/**************************************************************************** - * boards/arm/stm32/nucleo-f4x1re/include/board.h - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. The - * ASF licenses this file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - ****************************************************************************/ - -#ifndef __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_BOARD_H -#define __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_BOARD_H - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> -#ifndef __ASSEMBLY__ -# include <stdint.h> -#endif - -/* Clocking *****************************************************************/ - -#if defined(CONFIG_ARCH_CHIP_STM32F401RE) -# include <arch/board/nucleo-f401re.h> -#elif defined(CONFIG_ARCH_CHIP_STM32F411RE) -# include <arch/board/nucleo-f411re.h> -#endif - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* DMA Channel/Stream Selections ********************************************/ - -/* Stream selections are arbitrary for now but might become important in - * the future is we set aside more DMA channels/streams. - * - * SDIO DMA - * DMAMAP_SDIO_1 = Channel 4, Stream 3 <- may later be used by SPI DMA - * DMAMAP_SDIO_2 = Channel 4, Stream 6 - */ - -#define DMAMAP_SDIO DMAMAP_SDIO_1 - -/* Need to VERIFY fwb */ - -#define DMACHAN_SPI1_RX DMAMAP_SPI1_RX_1 -#define DMACHAN_SPI1_TX DMAMAP_SPI1_TX_1 -#define DMACHAN_SPI2_RX DMAMAP_SPI2_RX -#define DMACHAN_SPI2_TX DMAMAP_SPI2_TX - -/* Alternate function pin selections ****************************************/ - -/* USART1: - * RXD: PA10 CN9 pin 3, CN10 pin 33 - * PB7 CN7 pin 21 - * TXD: PA9 CN5 pin 1, CN10 pin 21 - * PB6 CN5 pin 3, CN10 pin 17 - */ - -#if 1 -# define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA10 */ -# define GPIO_USART1_TX GPIO_USART1_TX_1 /* PA9 */ -#else -# define GPIO_USART1_RX GPIO_USART1_RX_2 /* PB7 */ -# define GPIO_USART1_TX GPIO_USART1_TX_2 /* PB6 */ -#endif - -/* USART2: - * RXD: PA3 CN9 pin 1 (See SB13, 14, 62, 63). CN10 pin 37 - * PD6 - * TXD: PA2 CN9 pin 2(See SB13, 14, 62, 63). CN10 pin 35 - * PD5 - */ - -#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */ -#define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */ -#define GPIO_USART2_RTS GPIO_USART2_RTS_2 -#define GPIO_USART2_CTS GPIO_USART2_CTS_2 - -/* USART6: - * RXD: PC7 CN5 pin2, CN10 pin 19 - * PA12 CN10, pin 12 - * TXD: PC6 CN10, pin 4 - * PA11 CN10, pin 14 - */ - -#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */ -#define GPIO_USART6_TX GPIO_USART6_TX_1 /* PC6 */ - -/* UART RX DMA configurations */ - -#define DMAMAP_USART1_RX DMAMAP_USART1_RX_2 -#define DMAMAP_USART6_RX DMAMAP_USART6_RX_2 - -/* I2C - * - * The optional _GPIO configurations allow the I2C driver to manually - * reset the bus to clear stuck slaves. They match the pin configuration, - * but are normally-high GPIOs. - */ - -#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2 -#define GPIO_I2C1_SDA GPIO_I2C1_SDA_2 -#define GPIO_I2C1_SCL_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8) -#define GPIO_I2C1_SDA_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9) - -#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 -#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 -#define GPIO_I2C2_SCL_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) -#define GPIO_I2C2_SDA_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN11) - -/* SPI - * - * There are sensors on SPI1, and SPI2 is connected to the FRAM. - */ - -#define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 -#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 -#define GPIO_SPI1_SCK GPIO_SPI1_SCK_1 - -#define GPIO_SPI2_MISO GPIO_SPI2_MISO_1 -#define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_1 -#define GPIO_SPI2_SCK GPIO_SPI2_SCK_2 - -/* LEDs - * - * The Nucleo F401RE and F411RE boards provide a single user LED, LD2. LD2 - * is the green LED connected to Arduino signal D13 corresponding to MCU I/O - * PA5 (pin 21) or PB13 (pin 34) depending on the STM32 target. - * - * - When the I/O is HIGH value, the LED is on. - * - When the I/O is LOW, the LED is off. - */ - -/* LED index values for use with board_userled() */ - -#define BOARD_LD2 0 -#define BOARD_NLEDS 1 - -/* LED bits for use with board_userled_all() */ - -#define BOARD_LD2_BIT (1 << BOARD_LD2) - -/* These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is - * defined. In that case, the usage by the board port is defined in - * include/board.h and src/sam_leds.c. The LEDs are used to encode OS-related - * events as follows when the red LED (PE24) is available: - * - * SYMBOL Meaning LD2 - * ------------------- ----------------------- ----------- - * LED_STARTED NuttX has been started OFF - * LED_HEAPALLOCATE Heap has been allocated OFF - * LED_IRQSENABLED Interrupts enabled OFF - * LED_STACKCREATED Idle stack created ON - * LED_INIRQ In an interrupt No change - * LED_SIGNAL In a signal handler No change - * LED_ASSERTION An assertion failed No change - * LED_PANIC The system has crashed Blinking - * LED_IDLE MCU is is sleep mode Not used - * - * Thus if LD2, NuttX has successfully booted and is, apparently, running - * normally. If LD2 is flashing at approximately 2Hz, then a fatal error - * has been detected and the system has halted. - */ - -#define LED_STARTED 0 -#define LED_HEAPALLOCATE 0 -#define LED_IRQSENABLED 0 -#define LED_STACKCREATED 1 -#define LED_INIRQ 2 -#define LED_SIGNAL 2 -#define LED_ASSERTION 2 -#define LED_PANIC 1 - -/* Buttons - * - * B1 USER: - * the user button is connected to the I/O PC13 (pin 2) of the STM32 - * microcontroller. - */ - -#define BUTTON_USER 0 -#define NUM_BUTTONS 1 - -#define BUTTON_USER_BIT (1 << BUTTON_USER) - -#define GPIO_TIM2_CH1IN (GPIO_TIM2_CH1IN_1 | GPIO_PULLUP) -#define GPIO_TIM2_CH2IN (GPIO_TIM2_CH2IN_1 | GPIO_PULLUP) - -#endif /* __BOARDS_ARM_STM32_NUCLEO_F401RE_INCLUDE_BOARD_H */ diff --git a/tools/ci/testlist/arm-09.dat b/tools/ci/testlist/arm-09.dat index effe67e4d3..f3af9f5162 100644 --- a/tools/ci/testlist/arm-09.dat +++ b/tools/ci/testlist/arm-09.dat @@ -36,10 +36,11 @@ CMake,nucleo-f446re:pwm CMake,nucleo-f446re:qenco CMake,nucleo-f446re:systemview -CMake,nucleo-f4x1re:f401-fb -CMake,nucleo-f4x1re:f401-nsh -CMake,nucleo-f4x1re:f411-mcp2515-extid -CMake,nucleo-f4x1re:f411-nsh +CMake,nucleo-f401re:fb +CMake,nucleo-f401re:nsh + +CMake,nucleo-f411re:mcp2515-extid +CMake,nucleo-f411re:nsh CMake,nucleo-g431kb:comp CMake,nucleo-g431kb:nsh diff --git a/tools/ci/testlist/msys2.dat b/tools/ci/testlist/msys2.dat index 66e4c6adbb..542b59af41 100644 --- a/tools/ci/testlist/msys2.dat +++ b/tools/ci/testlist/msys2.dat @@ -5,7 +5,7 @@ /arm/stm32/nucleo-l152re/configs/nsh,CONFIG_ARM_TOOLCHAIN_GNU_EABI -/arm/stm32/nucleo-f4x1re/configs/f411-nsh,CONFIG_ARM_TOOLCHAIN_GNU_EABI +/arm/stm32/nucleo-f411re/configs/nsh,CONFIG_ARM_TOOLCHAIN_GNU_EABI # ARM64