eCos Support for the Atmel AT91SAM7S-EK -- Overview
Description
This document covers the configuration and usage of eCos and GDB Stubs
on the Atmel AT91SAM7S-EK Evaluation Kit. The AT91SAM7S-EK Evaluation
Kit contains the AT91SAM7S processor, external connections for two
serial channels (one debug, one full), USB host/device. eCos
support for the devices and peripherals on the AT91SAM7S is
described below.
Application development on this board can take one of several
approaches. Applications may be loaded into RAM via a JTAG device;
however, the application size is limited by the amount of on-chip RAM,
which is 64KiB on the AT91SAM7S256 and AT91SAM7S512, and 32KiB on the
AT91SAM7S128. Applications may also be loaded into the on-chip flash
memory where the RAM limit will only apply to the data portion of the
application. Finally, it is possible to program a GDB debugging stub
into flash which will then allow applications to be loaded into RAM
via the serial port. This allows development to proceed without
needing to use a JTAG device and application size is limited to the
RAM size less 4KiB used by the stub. It is therefore recommended that
JTAG debugging be used to debug applications since memory is limited
on this platform.
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 on-chip NOR flash is organized into pages of 128 or 256 bytes each. The
number of pages is determined by the device variant, from 2048 for the
AT91SAM7S512 to 128 for the AT91SAM7S32.
There is a serial driver CYGPKG_IO_SERIAL_ARM_AT91
which supports both the Debug Unit and USART serial devices. The
debug serial port at J3 and DTE port at J2 (connected to USART
channel 0) can be used for communication. If the GDB stub ROM is
installed, it uses the Debug Unit serial device only.
The serial driver package is loaded automatically
when configuring for the AT91SAM7S-EK target.
There is a watchdog driver
CYGPKG_DEVICES_WATCHDOG_ARM_AT91WDTC. This driver
is also loaded automatically when configuring for the AT91SAM7S-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 AT91SAM7S-EK support is intended to work with GNU tools configured
for an arm-eabi 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.