eCos Support for the Atmel AT91SAM7A2-EK -- Overview
Description
This document covers the configuration and usage of eCos and RedBoot
on the Atmel AT91SAM7A2-EK Evaluation Kit. The AT91SAM7A2-EK
Evaluation Kit contains the AT91SAM7A2 processor, 512KiB of SRAM, 2MiB
of parallel NOR Flash memory, external connections for a singe serial
channel, CAN and LIN ports. eCos support for the devices and
peripherals on the AT91SAM7A2 is described below.
For typical eCos development, a RedBoot image is programmed into the
flash memory, and the board will boot into this image from
reset. RedBoot provides gdb stub functionality so it is then possible
to download and debug stand-alone and eCos applications via the gdb
debugger. Applications may also be loaded into RAM via a JTAG
debugger, or may be programmed into flash.
This documentation is expected to be read in conjunction with the AT91
processor HAL and AT91SAM7 variant HAL documentation and further
device support and subsystems are described and documented there.
Supported Hardware
The parallel NOR flash memory consists of 31 blocks of
16KiBytes each, followed by 8 blocks of 8KiBytes each. In a
typical setup, the first 128 KiBytes are reserved for the use of the
RedBoot image. The topmost 8 blocks are used to manage the flash and hold RedBoot
fconfig values. The remaining blocks can be used by
application code. There are 30 blocks available between 0x40020000
and 0x401EFFFF.
There is a serial driver CYGPKG_IO_SERIAL_ARM_AT91
which supports both the Debug Unit and USART serial devices. The debug
serial port can be used for communication. If RedBoot is installed, it
uses the Debug Unit serial device. The serial driver package is
loaded automatically when configuring for the AT91SAM7A2-EK target.
There is a watchdog driver
CYGPKG_DEVICES_WATCHDOG_ARM_AT91. This driver
is also loaded automatically when configuring for the AT91SAM7A2-EK
target.
In general, devices (PIO, UARTs, etc.) are initialized
only as far as is necessary for eCos to run. Other devices (RTC,
I2C, SPI etc.) are not touched unless the appropriate driver
is loaded, although in some cases, the HAL boot sequence will
set up the appropriate PIO configuration.
Tools
The AT91SAM7A2-EK support is intended to work with GNU tools configured
for an arm-elf target. The original port was undertaken using
arm-elf-gcc version 3.4.4, arm-elf-gdb version 6.3, and binutils
version 2.15.