Code Confidencebuild 3.0.0.201402161939

Overview

Name

eCos Support for the STMicroelectronics STM32F4-Discovery Board -- Overview

Description

The STMicroelectronics STM32F4-Discovery board has an STM32F407VGT6 Cortex-M4F processor, 192KiB of on-chip SRAM, 1MiB of on-chip flash memory, plus motion and audio sensors, an audio DAC and a connector for the on-chip USB peripheral. The board also features an ST-LINK/V2 serial wire debug (SWD) interface.

For typical eCos development the ST-LINK/V2 interface is connected via USB to a host computer running the OpenOCD on-chip debug tool. OpenOCD provides a GDB server enabling the download and debuging of eCos applications via the GDB debugger.

Supported Hardware

By default, eCos will use the 128KiB of contiguous on-chip SRAM, accessible at location 0x20000000. On-chip flash memory at 0x08000000 can be optionally used for bootable application code. A further 64KiB of core coupled memory (CCM) is mapped to location 0x10000000. This memory is not used by eCos but may be used for application-defined static data structures such as thread stacks which require no initialization other than that performed during eCos startup and application execution. Data structures may be assigned to the .ccm section within CCM memory using the eCos CYGBLD_ATTRIB_SECTION macro. For example:

char thread_stack[4096] CYGBLD_ATTRIB_SECTION(".ccm");

There is a serial driver CYGPKG_IO_SERIAL_CORTEXM_STM32 which supports all on-chip UARTs. However, there are no RS232 drivers or serial connectors on the board. STM32 UART4 (named UART3 in the eCos serial driver) is enabled for use as a diagnostics channel.

The GPIO ports are enabled and manipulated only as needed to access UART4, the LEDs and the push button. eCos does not enable the remaining on-chip peripherals.

Tools

The STM32F4-Discovery board port is intended to work with GNU tools configured for an arm-eabi target. The original porting work was performed using binutils 2.18.50.20080513, arm-eabi-gcc 4.3.2, arm-eabi-gdb 7.4.1 and OpenOCD 0.6.1.