The Atmel AIC interrupt controller provides vectored interrupts through the AIC. Because of this, and because of the REMAP command usually required to set up the chip select units and to place RAM at address zero, the usual INITARM.FTH file is not used for CPU initialisation, and the file INTARM.FTH for the interrupt handlers is not required.
Each Atmel AT91 variant uses a CPU specific start up file INITxxxx.FTH which enables enough of the chip to perform the REMAP command and to waggle an LED pin on the Atmel EVBs.
The initialisation code generates the following memory map:
on-chip 0000:0000 - 8k SRAM
Flash 0100:0000 - 2Mb Flash
external 0200:0000 - 256k SRAM
The first 64k of RAM is reserved for the boot code, which is run from SRAM for speed and to avoid Flash programming problems. Application extension programs are run from RAM at 0201:0000. Providing that extension programs make no use of boot code, they may use the 64k of SRAM at 0200:000.
The boot loader in EDSLBOOT.FTH includes two utilities, MAINTAIN and BOOTSTRAP. MAINTAIN provides the facilities to run a menu that allows you set defaults, to reprogram the boot flash and application programs and so on. The word BOOSTRAP is for use as the cold start word using the phrase "MAKE-TURNKEY BOOTSTRAP" in the control file below; if no no key is pressed within three seconds, the default application is run.
The Xmodem code requires synonyms for the serial primitives. The direct low level functions that do not handle OUT are used for output.
Next are included the I2C serial EEPROM and SPI DataFlash drivers.
Include the AT49BV1614 driver and EDSL boot code.