eCos Support for the Atmel AT91SAM7X-EK — Overview


This document covers the configuration and usage of eCos and GDB Stubs on the Atmel AT91SAM7X-EK Evaluation Kit. The AT91SAM7X-EK Evaluation Kit contains the AT91SAM7X256 processor, external connections for two serial channels (one debug, one full), ethernet, USB host/device. eCos support for the devices and peripherals on the AT91SAM7X256 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 AT91SAM7X256, 32KiB on the AT91SAM7X128 and 128KiB on the AT91SAM7X512. 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 256 bytes each. The number of pages is determined by the device variant, from 512 for the AT91SAM7X128 to 2048 for the AT91SAM7X512.

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 AT91SAM7X-EK target.

There is a watchdog driver CYGPKG_DEVICES_WATCHDOG_ARM_AT91WDTC. This driver is also loaded automatically when configuring for the AT91SAM7X-EK target.

The AT91SAM7 processor HAL contains a driver for the Two-Wire Interface (TWI) controller on the AT91SAM7X. This type of bus is also known as I²C®.

There is a network driver for the on-chip Ethernet and DM9161A PHY. This is only recommended for use with the lwIP TCP/IP stack due to the low RAM requirements.

The AT91SAM7X-EK on-board dataflash device is accessible at virtual address 0x10000000 and a dataflash card connected at J30 is accessible at virtual address 0x20000000.

In general, devices (PIO, UARTs, etc.) are initialized only as far as is necessary for eCos to run. Other devices (RTC, I²C, 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.


The AT91SAM7X-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.