CYGPKG_HAL_CORTEXM_STM32_STM32F429I_DISCO — eCos Support for the STM32F429I-DISCO Board


The STM32F429I-DISCO board has a STM32F429ZIT6U microcontroller that incorporates 2MiB of internal flash and 256KiB of internal SRAM. The board also has an additional 8MiB of external SDRAM, plus an I²C touch-panel peripheral, a SPI motion sensor peripheral, and a USB connector (CN6 “USB USER”).

Since the board is equipped with an on-board ST-LINK/V2 hardware debugger interface (via the CN1 “USB ST-LINK” connector), and there are no UART or Ethernet connections, for typical eCos development test programs are downloaded and debugged via the SWD hardware debugger in conjunction with the relevant host-side tools.

This documentation describes platform-specific elements of the STM32F429I-DISCO 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 STM32F429ZI has three main on-chip memory regions. The device has a SRAM region of 192KiB present at 0x20000000, and a 2MiB FLASH region present at 0x08000000 (which is aliased to 0x00000000 during normal execution). There is also has another on-chip RAM region of 64KiB present at 0x10000000 that is only accessible via the CPU core. Also, the STM32F429I-DISCO motherboard has 8MiB of SDRAM memory mapped to address 0x90000000.

The STM32 variant HAL includes support for the eight on-chip serial devices which are documented in the variant HAL. However, the STM32F429I-DISCO motherboard does not provide a standard UART connector. To make use of serial devices suitable transceiver hardware and connectors would need to be attached via the relevant motherboard P1 or P2 expansion connectors.

The STM32 variant HAL also includes support for the I²C buses. A single I²C device is instantiated as part of the platform port, which is for the STMPE811 touch-panel sensor connected via bus I²C3. It is exported to <cyg/io/i2c.h> with the name hal_stm32f429i_disco_touchpanel in the normal way.

Similarly the STM32 variant HAL includes support for the SPI buses. A single SPI device is instantiated as part of the platform port, which is for the L3GD20 MEMS (motion sensor) connected via bus SPI5. It is exported via <cyg/io/spi.h> with the name cyg_stm32f429i_disco_mems in the normal way.

Device drivers are also provided for the STM32 on-chip Ethernet MAC, ADC, BXCAN and SDIO interfaces, but similarly suitable hardware support via the motherboard P1 and P2 expansion connectors would be needed to utilise the drivers. 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 STM32 variant HAL support for the SDIO interface is currently limited to supporting MMC/SD cards. If the multi-bit MMC/SD support is used it is recommended that on-chip SRAM transfer buffers are used to avoid RX overrun or TX underrun due to the slow external SDRAM access speed.

The STM32F4 processor and the STM32F429I-DISCO board provide a wide variety of peripherals, but unless support is specifically indicated, it should be assumed that it is not included.


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.7.3e, arm-eabi-gdb version 7.6.1, and binutils version 2.23.2.