30.01.2015 Views

UM10211 - Standard ICs

UM10211 - Standard ICs

UM10211 - Standard ICs

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

NXP Semiconductors<br />

<strong>UM10211</strong><br />

Chapter 2: LPC2300 Memory map<br />

4.2 Memory re-mapping<br />

5. Memory mapping control<br />

In order to allow for compatibility with future derivatives, the entire Boot ROM is mapped<br />

to the top of the on-chip memory space. In this manner, the use of larger or smaller flash<br />

modules will not require changing the location of the Boot ROM (which would require<br />

changing the Boot Loader code itself) or changing the mapping of the Boot ROM interrupt<br />

vectors. Memory spaces other than the interrupt vectors remain in fixed locations.<br />

Figure 2–7 shows the on-chip memory mapping in the modes defined above.<br />

The portion of memory that is re-mapped to allow interrupt processing in different modes<br />

includes the interrupt vector area (32 bytes) and an additional 32 bytes for a total of<br />

64 bytes, that facilitates branching to interrupt handlers at distant physical addresses. The<br />

remapped code locations overlay addresses 0x0000 0000 through 0x0000 003F. A typical<br />

user program in the Flash memory can place the entire FIQ handler at address<br />

0x0000 001C without any need to consider memory boundaries. The vector contained in<br />

the SRAM, external memory, and Boot ROM must contain branches to the actual interrupt<br />

handlers, or to other instructions that accomplish the branch to the interrupt handlers.<br />

There are three reasons this configuration was chosen:<br />

1. To give the FIQ handler in the Flash memory the advantage of not having to take a<br />

memory boundary caused by the remapping into account.<br />

2. Minimize the need to for the SRAM and Boot ROM vectors to deal with arbitrary<br />

boundaries in the middle of code space.<br />

3. To provide space to store constants for jumping beyond the range of single word<br />

branch instructions.<br />

Re-mapped memory areas, including the Boot ROM and interrupt vectors, continue to<br />

appear in their original location in addition to the re-mapped address.<br />

Details on re-mapping and examples can be found in Section 2–5 “Memory mapping<br />

control” on page 17.<br />

The Memory Mapping Control alters the mapping of the interrupt vectors that appear<br />

beginning at address 0x0000 0000. This allows code running in different memory spaces<br />

to have control of the interrupts.<br />

5.1 Memory Mapping Control Register (MEMMAP - 0xE01F C040)<br />

Whenever an exception handling is necessary, microcontroller will fetch an instruction<br />

residing on exception corresponding address as described in Table 2–5 “ARM exception<br />

vector locations” on page 16. The MEMMAP register determines the source of data that<br />

will fill this table.<br />

Table 7.<br />

Memory mapping control registers<br />

Name Description Access Reset Address<br />

value<br />

MEMMAP Memory mapping control. Selects whether the<br />

ARM interrupt vectors are read from the Boot<br />

ROM, User Flash, or RAM.<br />

R/W 0x00 0xE01F C040<br />

<strong>UM10211</strong>_1<br />

© NXP B.V. 2007. All rights reserved.<br />

User manual Rev. 01 — 27 March 2007 17 of 613

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!