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.
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
within CCM memory using the eCos
CYGBLD_ATTRIB_SECTION macro. For example:
char thread_stack CYGBLD_ATTRIB_SECTION(".ccm");
There is a serial driver
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.
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 126.96.36.19980513, arm-eabi-gcc 4.3.2, arm-eabi-gdb 7.4.1 and OpenOCD 0.6.1.