WP Arm 0103
WP Arm 0103
White Paper
An Introduction to the
LPC2100 Architecture
Architecture: ARM
Author: Trevor Martin /Hitex UK
Revision: 06/2006 - 002
WhitePaper.dot - 01/2005 - 002
Preface
In order to keep you up-to-date with the latest developments on our products, we provide White
Papers containing additional topics, special hints, examples and detailed procedures etc.
For more information on the current software and hardware revisions as well as our update service,
please contact www.hitex.de, www.hitex.co.uk or www.hitex.com.
Contents
1 Overview 3
2 ARM-7-Based System Design 3
2.1 Memory Access 3
2.2 Memory Accelerator Module (MAM) 4
2.3 32-bit and 16-bit Instruction Sets 4
2.4 Clock Problems 5
2.5 Vectored Interrupt Controller (VIC) 5
2.6 Power Consumption 6
2.7 Bootloader 6
2.8 "Real Monitor" Software Kernel 6
2.9 Embedded Trace Macrocell (ETM) 7
2.10 Derivatives and Features 7
3 Support 7
1 Overview
Since its inception the ARM7 core has primarily been available as an IP core for incorporation into
custom system-on-chip designs. With the launch of the LPC2106 the first member of the LPC2100
family Philips has introduced a standard chip featuring the 32 bit ARM7 processor with on-chip FLASH
and SRAM with a range of general purpose peripherals in low pin count packages. However this on its
own does not necessarily make a successful microcontroller and as always the devil is in the detail.
This article will look at some of the key features of the LPC2100 family that help to successfully
integrate the ARM7 CPU into a standard microcontroller architecture.
On the LPC2106 this splits the 12K of FLASH into two banks of 128 bit wide memory. This allows the
memory accelerator module to fetch four instructions for every FLASH access, further enhanced by
the interleaving of the code between the two banks. The memory accelerator module allows the ARM7
to run at maximum speed for sequential code, with, branches and calls to addresses not held in the
MAM buffers causing an instruction miss that requires a new chain of bytes to be loaded from the
FLASH. These instruction misses can be reduced by buffering FLASH data in a branch-trail buffer and
by speculative reads into a prefetch buffer. This approach is very well tailored to the ARM7 core as
small branches are eliminated as each instruction is conditionally executed.
The memory accelerator module improves the chip’s execution rate from 20 MHz to 60 MHz. It would
be possible to provide this clock directly from an external oscillator but having a 60 MHz oscillator on
the board would increase EMC problems and overall cost of the PCB. The LPC2100 family have an
on-chip PLL that can generate clock frequencies up to the full 60 MHz from a simple external oscillator
in the range 10 MHz to 25 MHz.
Should a peripheral generate an interrupt for one of these vectored interrupt sources, the address of
its interrupt service routine is loaded into the vector address register. When the ARM7 responds to the
exception and jumps to the IRQ vector, the processor can immediately jump to the correct ISR in one
instruction, without having to determine the source of the IRQ interrupt. The vector interrupt controller
is absolutely essential for achieving any kind of real-time performance.
2.7 Bootloader
The LPC2100 devices are fitted with a FLASH bootloader which runs through the on-chip UART’s.
This allows easy in-circuit programming and reprogramming of devices for development and
production. The bootloader code is often the poor relation when it comes to software development in a
project and it often gets forgotten, only to be developed in a panic at the last minute. Having a fully
featured bootloader already in place at the beginning of a project is a real godsend!
The bootloader functions are available as an API to the application code and may also be used for in
application programming. This includes a RAM to FLASH transfer so that new code can be loaded into
the chip by any method and not just by the UART’s.
The ARM "Real Monitor" software kernel is also programmed into a reserved area of the device
memory. This is a debug program that can be triggered by events within the embedded ICE. It
provides pseudo-real-time access to on-chip memory so you can view and update memory ‘on the fly’,
something that is extremely useful when developing real-time applications.
3 Support
For more information on this new microcontroller family and a free CD containing evaluation
development tools, datasheets, application notes and program examples please contact Trevor Martin
at Hitex UK or any Hitex branch (for addresses see front page).