Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Thread

interrupt vector table & IAP

interrupt vector table & IAP

2004-05-24 by more_effective

Hi everybody,
We are trying to work with LPC2104 & Keil uVision3.

If you take LPC2104 user's manual (2 oct 2003) you can read:
"If user's code is runing from the on-chip RAM and an aplication
uses 
interrupts, interrupt vectors must be re-mapped to flash
address 0x0." (from page 70, VIC usage notes)

BUT, you can also read:
"The user should either disable interrupts, or ensure that user 
interrupt vectors are active in RAM and that the interrupt handlers 
reside in RAM, before making a flash erase/write IAP call." (from 
page 180, Interrupts during IAP)

What we don't understand is the expression "ensure that user 
interrupt vectors are active in RAM". Active in RAM? We thought all 
interrupts & exceptions must be active in 0x0 and above (i.e., flash).

BTW, can we manage to hace two APPs in flash with diferent interrupt 
vector tables?

Thanks a lot in advance.

-.-WOLFISH-.-

Re: [lpc2000] interrupt vector table & IAP

2004-05-24 by MaxStream - Ryan Bedwell

more_effective wrote:
> Hi everybody,
> We are trying to work with LPC2104 & Keil uVision3.
> 
> If you take LPC2104 user's manual (2 oct 2003) you can read:
> "If user's code is runing from the on-chip RAM and an aplication
> uses 
> interrupts, interrupt vectors must be re-mapped to flash
> address 0x0." (from page 70, VIC usage notes)
> 
> BUT, you can also read:
> "The user should either disable interrupts, or ensure that user 
> interrupt vectors are active in RAM and that the interrupt handlers 
> reside in RAM, before making a flash erase/write IAP call." (from 
> page 180, Interrupts during IAP)
> 
> What we don't understand is the expression "ensure that user 
> interrupt vectors are active in RAM". Active in RAM? We thought all 
> interrupts & exceptions must be active in 0x0 and above (i.e., flash).

Address 0 can appear in one of four places: the base of user flash, the 
base of user RAM, in external memory (for parts that support this) or 
somewhere in the Philips bootloader.  You have to put your vectors in 
one of the three user locations, then configure the remapping 
appropriately via the MEMMAP register.

If you're going to call IAP flash erase/write routines with interrupts 
enabled, you would have to have the vectors and the routines in RAM (or 
external memory) to ensure no access to the flash during the 
erase/program operation.

> BTW, can we manage to hace two APPs in flash with diferent interrupt 
> vector tables?

Probably the best way to accomplish this would be to have the vectors at 
the base of user RAM, then simply swap them in and out to match the 
application currently running.

Ryan

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.