The Actel Smartfusion evaluation kit uses the A2F200 microcontroller from the Actel smartfusion family. The SmartFusion devices are a mix of programmable logic around a ARM cortex-M3 based processor. The SmartFusion has 3 variants: A2F060, A2F200, A2F500. The main difference between parts are the amount of RAM, FLASH as well as programmable logic. In addition, the A2F060 does not include the Ethernet controller peripheral. The A2F200 device includes 256KB of internal FLASH (also called Embedded Non-volatile Memory, ENVM) and 64KB of internal SRAM. The device has various peripherals such as UART, I2C, SPI, Ethernet MAC, ADC or DAC as well as the FPGA fabric. The kit features an OLED graphical display and UART0 is accessible via the on-board USB to UART converter. The kit also includes a serial flash, the Atmel AT25DF641 part (8MB memory). The FPGA fabric uses a non-volatile technology thus removing the need of additional flash memory for storing the FPGA programming matrix.
The eCos port targets standalone ROM application. The eCos device drivers include support for the I2C and SPI buses as well as UART and Ethernet Controller. No device driver is currently available for the ADC/DAC or the In-Application Programming feature that allows the application to re-program the FLASH or the FPGA fabric. The Smartfusion (A2Fxxx) HAL includes a timer test application and the A2F200 evaluation board flash device package includes a test application for the SPI serial flash.
For compilation, the official eCos ARM toolchain is required (gcc version 4.3.2). For debugging, while the board offers a JTAG interface, the HAL was developed using the SoftConsole IDE supplied from Actel. SoftConsole is an Eclipse based IDE installed along with the CodeSourcery ARM compiler / debugger. The ARM GDB and Sprite utilities from CodeSourcery are used to debug the target. The target includes an on-board debugger and is connected to the host via a USB cable. GDB interfaces the on-board debugger through the Actel flashpro driver. Detailed example of a debugging session is described later in this chapter.