This platform HAL is designed to support the QuickStart board series from Embedded Artists, fitted with an NXP LPC2xxx microcontroller, and optionally connected to an Embedded Artists QuickStart Prototype Board.
The support for the QuickStart board series provided by this HAL has been initially developed for the Embedded Artists (henceforth 'EA') LPC2148 USB QuickStart Board. This HAL documentation therefore presently corresponds to that particular board instance, and future supported variants will cause this documentation to be updated accordingly.
The Embedded Artists QuickStart 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 a single 9-pin RS-232 serial interface connected to the LPC2xxx on-chip UART 0, an I2C EEPROM, and a USB device interface. Refer to EA's QuickStart board documentation for full details.
Further peripheral support is available if the board is mounted on to the EA QuickStart Prototype Board, including push buttons, LEDs, JTAG, MMC/SD card socket, buzzer, 7-segment LED, and a further 9-pin RS-232 serial interface connected to the LPC2xxx on-chip UART 1.
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, such as the 32KBytes on the LPC2148, it is typically expected that standalone applications will be programmed directly to on-chip Flash, either using a hardware JTAG/ICE unit via the QuickStart Prototype Board, 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 EA QuickStart 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 EA QuickStart 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 QuickStart boards do not connect these pins, and so that functionality is unavailable.
The EA QuickStart 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 QuickStart 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.