Name

Configuration — Platform-specific Configuration Options

Overview

The MCB1700 board platform HAL package is loaded automatically when eCos is configured for an mcb1700 target. It should never be necessary to load this package explicitly. Unloading the package should only happen as a side effect of switching target hardware.

Startup

The MCB1700 board platform HAL package supports three separate startup types:

RAM
This is the startup type for application development using a GDB stubs based development approach. The Stubsrom is programmed into internal Flash at location 0x00000000 and uses internal RAM at location 0x10000000. arm-eabi-gdb is then used to load a RAM startup application into memory and debug it. The application code is loaded from 0x10001000 and its data and heap go into SRAM at 0x2007C000. It is assumed that the hardware has already been initialized by the stubs. By default the application will use the eCos virtual vectors mechanism to obtain services from the stubs, including diagnostic output.
ROM
This startup type can be used for finished applications which will be programmed into internal ROM at location 0x00000000. Data and BSS will be put into internal RAM starting from 0x10000400. The remainder of SRAM at 0x10000000 and all of the SRAM at 0x2007C000 will be used for heap. The application will be self-contained with no dependencies on services provided by other software. The program expects to boot from reset into ROM at location zero. eCos startup code will perform all necessary hardware initialization. This startup type can also be used with JTAG debuggers, writing the application image into the flash and then using JTAG to debug the application. This approach makes the best use of the board's frugal memory resources, but does require the additional step of flashing the image onto the board each time.
JTAG
This is the startup type used to build applications that are loaded via a JTAG interface. The application will be self-contained with no dependencies on services provided by other software. The program code expects to be loaded from 0x20000400 and entered at that address and its data and heap go into SRAM at 0x2007C000. eCos startup code will perform all necessary hardware initialization.

Monitors and Virtual Vectors

If the application is intended to act as a ROM monitor, providing services for other applications, then the configuration option CYGSEM_HAL_ROM_MONITOR should be set. Typically this option is set only when building the Stubrom.

If the application is supposed to make use of services provided by a ROM monitor, via the eCos virtual vector mechanism, then the configuration option CYGSEM_HAL_USE_ROM_MONITOR should be set. By default this option is enabled when building for a RAM startup, disabled otherwise. It can be manually disabled for a RAM startup, making the application self-contained, as a testing step before switching to ROM startup.

If the application does not rely on a ROM monitor for diagnostic services then serial port 1 will be claimed for HAL diagnostics.

UART Serial Driver

The MCB1700 board uses the LPC1XXX's internal UART serial support. As well as the polled HAL diagnostic interface, there is also a CYGPKG_IO_SERIAL_CORTEXM_LPC1XXX package which configures the CYGPKG_IO_SERIAL_GENERIC_16X5X driver for use in the LPC1XXX series. Both UARTs can be supported by this driver. Note that it is not recommended to enable this driver on the port used for HAL diagnostic I/O. This driver is not active until the CYGPKG_IO_SERIAL_DEVICES configuration option within the generic serial driver support package CYGPKG_IO_SERIAL is enabled in the configuration.