UM10208_2
© NXP B.V. 2007. All rights reserved.
User manual
Rev. 02 — 1 June 2007
10 of 362
1.
Introduction
Upon reset, the LPC288x executes code from an internal ROM. This code allows four
possible types of startup. These are:
•
Execute code from internal flash memory.
•
Execute code from external memory bank 0.
•
Download code from USB to memory.
•
Test mode. Toggles a port pin to indicate basic device functionality.
2.
Operation
Internal pulldowns on the P2.3 and P2.2 pins cause them to read as 0 when unconnected.
This results in the default startup mode being execution from internal Flash memory. One
or two external pullup resistors can cause startup to use one of the other modes, as
shown in
.
3.
Boot mode descriptions
The boot process is illustrated in figure 1. The following discussion describes each boot
mode in more detail.
Mode 0: Execute user program from internal flash memory
This is the default mode if the P2.3 and P2.2 pins are left unconnected. The Flash
memory begins at address 0x1040_0000. This is the address branched to in this mode.
In order to prevent accidental execution of an unprogrammed Flash, the ROM code
checks for a specific valid user program marker value in memory prior to branching into
the Flash memory. This marker is stored as address 0x104F_F800, 2K bytes below the
top of the 1MB Flash memory. The value expected here is 0xAA55_AA55. If Mode 0 is
selected and the valid user program marker value is not found in the Flash, control is
transferred to Mode 2 (USB download mode).
UM10208
Chapter 3: Boot process
Rev. 02 — 1 June 2007
User manual
Table 3.
Boot flow chart
P2.3/Mode2
P2.2/Mode1 Mode selected
0
0
Execute user program from internal flash memory.
0
1
Execute user program from external memory on bank 0.
1
0
Download program from USB port to memory.
1
1
Test mode.