This platform HAL is designed to support the KickStart Card series from IAR, fitted with an NXP LPC2xxx microcontroller.
The support for the KickStart board series provided by this HAL has been initially developed for the IAR LPC2106 KickStart Card. This HAL documentation therefore presently corresponds to that particular board instance, and future supported variants will cause this documentation to be updated accordingly.
The IAR KickStart Board is fitted with an NXP LPC2xxx processor rated at up to 60MHz, which contains up to 64KB of SRAM and up to 512KB of FLASH, depending on choice of LPC2xxx variant. The board itself has two 9-pin RS-232 serial interfaces connected to the LPC2xxx on-chip UART 0 and UART 1, push buttons connected to interrupt lines, LEDs, a JTAG debug port, anda prototyping area. Refer to IAR's KickStart board documentation for full details.
The typical mode of operation for eCos development usually depends on the amount of memory available. On LPC2xxx variants with 64Kbytes or more of SRAM, a GDB stub ROM image is programmed into the LPC2xxx on-chip flash memory, and the board will boot this image from reset. While RedBoot may also be used, its larger RAM footprint requirements usually make it unsuitable. Both RedBoot and the GDB stub ROM provide GDB stub functionality so it is then possible to download and debug stand-alone and eCos applications via the gdb debugger using UART 0.
On LPC2xxx variants with less than 64KBytes SRAM, it is typically expected that standalone applications will be programmed directly to on-chip Flash, either using a hardware JTAG/ICE unit, or by serial using the on-chip In-System Programming (ISP) mechanism included with NXP LPC2xxx microcontrollers and a suitable host application running on a PC.
This documentation describes platform-specific elements of the IAR KickStart Board support within eCos. Documentation on the NXP LPC2xxx variants is available separately, and should be read in conjunction with this documentation. The LPC2xxx documentation covers various topics including HAL support common to LPC2xxx variants, and on-chip device support. This document complements the LPC2xxx documentation.
The NXP LPC2xxx microcontrollers on the IAR KickStart Boards have up to 512Kbytes of on-chip Flash memory. In a typical setup, the GDB stub ROM or the user application will load and run from this internal flash. For initial programming of the internal Flash, external support is required, such as the NXP LPC2000 Flash Utility, the Flash Magic tool, or a hardware JTAG/ICE unit. The latter may be used with its own in-built LPC2xxx flash programming support if it exists, or the eCosPro® ecoflash utility. 28Kbytes of internal flash memory should be reserved for the GDB Stub ROM, the remainder being free for the application's use. Note that the LPC2xxx primary boot loader and IAP code reside in boot blocks located at the end of on-chip Flash. To determine the number and size of blocks reserved for their use, consult the specific LPC2xxx variant's datasheet.
The first 64 bytes of on-chip SRAM are mapped by the HAL startup code using the LPC2xxx memory mapping control to location 0x00000000. When loading applications using the GDB stub ROM, SRAM from location 0x40000040 to 0x40001000 is reserved for its use. The rest of SRAM is generally available for use by the application. Programs booted from ROM, or loaded directly into SRAM via JTAG may use all SRAM. In all cases, if using the eCos LPC2xxx Flash driver, the last 32 bytes (or more if a separate program buffer is used) become reserved due to the requirements of the IAP code.
The NXP LPC2xxx variant HAL includes support for the two LPC2xxx on-chip serial devices and is documented in the variant HAL. Although the interrupt-driven serial driver supports the line status and modem control lines on UART 1 (UART 0 not having such support), the KickStart boards do not connect these pins, and so that functionality is unavailable.
The IAR KickStart port includes support for the on-chip watchdog, RTC (wallclock), interrupt controller (VIC) and on-chip Flash. This support is documented in the LPC2xxx variant HAL.
The KickStart Board port is intended to work with GNU tools configured for an arm-eabi target. Thumb mode is supported. The original port was created using arm-elf-gcc version 3.4.4, arm-elf-gdb version 6.3, and binutils version 2.16.