The STMicroelectronics STM32F4DISCOVERY board has a STM32F407VG microcontroller which incorporates 1MiB of internal Flash ROM and 128KiB of internal SRAM. The microcontroller also has 64KiB of internal “core coupled” SRAM for CPU use.

The STM32F4DISCOVERY board has limited I/O interfaces, with most of the I/O signals being propogated via multi-pin connectors. The STM32F4DIS-BB daughterboard has a connector for Ethernet, a standard DB9 serial port, and a MicroSD interface. On both the main STMF4DISCOVERY motherboard and the STM32F4DIS-BB daughterboard it is possible to access signals for UARTs, I²C, and SPI, as well as various other devices.

For the STM32F4DISCOVERY board the expected eCos development model is that programs may be downloaded and debugged via a SWD debugger, normally attached via the on-board USB ST-LINK/V2 connector CN1. This differs from the traditional eCos development model, where RedBoot or a GDB stub image is programmed into internal FLASH and the CPU boots directly into that. However, due to the small amount of RAM available, the RAM requirements of a ROM monitor would further limit the size of applications that could be loaded via such a monitor. Nevertheless it is still possible to program a GDB stub image into Flash and download and debug eCos applications with the GDB debugger via available UART pins.

This documentation describes platform-specific elements of the STM32F4DISCOVERY board support within eCos. The STM32 variant HAL documentation covers various topics including HAL support common to STM32 variants, and on-chip device support. This document complements the STM32 documentation.

Supported Hardware

The STM32F407VG has three on-chip memory regions. A RAM region of 128KiB is present at 0x20000000, a 64KiB core coupled RAM region present at 0x1000000, and a 1MiB FLASH region is present at 0x08000000 which is aliased to 0x00000000 during normal execution.

The STM32 variant HAL includes support for the six on-chip serial devices which are documented in the variant HAL, however it is assumed that only USART6 is available when the STM32F4DIS-BB daughterboard is present. There is no connection for hardware flow control (RTS/CTS) lines.

The STM32 variant HAL also includes support for the I²C bus. However the STM32F4DISCOVRY mainboard I²C devices are not supported due to I/O pin clashes with the STM32F4DIS-BB daughterboard. Instead, testing has been performed using an external Total Phase Aardvark activity board with on-board I²C EEPROM.

Device drivers are also provided for the STM32 on-chip SPI and MMCSD interfaces, plus the Ethernet MAC. Additionally, support is provided for the on-chip watchdog, RTC (wallclock), and a Flash driver exists to permit management of the STM32's on-chip Flash.


The board port is intended to work with GNU tools configured for an arm-eabi target. The original port was done using arm-eabi-gcc version 4.4.5, arm-eabi-gdb version 7.2, and binutils version 2.20.1.