CYGPKG_HAL_CORTEXM_STM32_STM3210E_EVAL — eCos Support for the STM3210E-EVAL Board


The STM3210E-EVAL board consists of a STM32F103Z microcontroller, 1MiB of external SRAM, 16MiB NOR flash and 64MiB NAND flash. It has connectors for two UARTs, I²C, MicroSD, USB, CAN, JTAG and various other devices. Early versions of the board contain STM32F103ZET6 MCUs and later boards from RevD-03 onwards are populated with the STM32F103ZGT6. The former has 512KiB of internal flash and the latter 1MiB.

For typical eCos development, RedBoot or a GDB stub image is programmed into internal FLASH and the CPU boots directly into that. It is then possible to download and debug stand-alone and eCos applications via the gdb debugger using UART0. Alternatively test programs may be downloaded and debugged via a JTAG debugger attached to the JTAG socket.

This documentation describes platform-specific elements of the STM3210E-EVAL 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.

We have found that some revisions of the STM3210E-EVAL board and its attached LCD are unreliable unless the LCD is removed. If the board suffers from lockups or other reliability issues then we recommend disconnecting the LCD to determine if that is the cause.

Supported Hardware

The STM32 has two on-chip memory regions. A RAM region of 64KiB is present at 0x20000000. A FLASH region is present at 0x08000000 and is aliased to 0x0000000 during normal execution. On-board memory consists of 1MiB of SRAM mapped to 0x68000000 and 16MiB of NOR FLASH mapped to 0x64000000.

The STM32 variant HAL includes support for the five on-chip serial devices which are documented in the variant HAL. UART0 and UART1 are connected to external connectors on the board marked "CN12" and "CN8" respectively. Only UART1 on CN8 is equipped with RTS/CTS lines.

Device drivers are provided for the STM32 on-chip ADC interfaces, I²C interface, and SPI interface. 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.

Due to a silicon errata with the STM32F103Zx device the I2C1 bus cannot be used if FSMC is enabled. Therefore the I²C test example for the on-board STLM75 Temperature sensor explicitly disables FSMC prior to accessing I2C1.

Also, while the board is fitted with a CAN interface, this is not presently supported by the HAL port. The STM32F1 processor and the STM3210E-EVAL board provide an extremely 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.3.2, arm-eabi-gdb version 6.8, and binutils version 2.18.