Here is solved the question I proposed last week.
It was necessary to map interruption vectors of the Application program (which
is at 0x80010000) to RAM memory.
The solution to my question is at AN10835 (LPC secondary bootloader for code
update using IAP). In that document, among other subjects, it is detailed how to
map interruption vectors to RAM memory.
Basically, it is necessary to store the interruption vectors in RAM,
IF :DEF:VECINT_RAM
ADR R8, Vectors
LDR R9, =RAM_BASE
LDMIA R8!, {R0-R7}
STMIA R9!, {R0-R7}
LDMIA R8!, {R0-R7}
STMIA R9!, {R0-R7}
ENDIF
And to set MEMMAP to 2 in the Startup.s
LDR R0, =MEMMAP
IF:DEF:VECINT_RAM
MOV R1, #2
ELSE
MOV R1, #1
ENDIF
STR R1, [R0]
Where RAM_BASE is defined as RAM_BASE EQU 0x40000000
And VECINT_RAM is defined (using keil) at Project > Options for Target
xxx>ASM>Define
In the Project>Options for Target it is interesting to reserve space for
interruption vectors in RAM. The IRAM start address should be 0x40000040 to
keep the first 64 bytes for the interruption vectors.
Grosella