Yahoo Groups archive

Lpc2000

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

Message

IAP problems (LPC2131)

2006-04-18 by adelacruz01

Hi,

I'm currently on a project which uses the LPC2131 mp. The problem I'm 
trying to tackle at the moment is trying to get the IAP to 
successfully copy RAM data into flash. After browsing through the 
15,000+ messages on this board regarding the IAP, I could not get any 
of the solutions posted to work for me (unless I'm missing something 
very simple). This device runs with 1 FIQ process (PWM) and 4 other  
IRQs. Some of the solutions I've found from the other boards include

1) Make sure the jump to IAP location is 0x7FFFFFF1 using a BX 
instead of MOV or standard B.

2) Make sure the CCLK value is correct (In this case, 20 Mhz external 
clock PLL'ed to 60 Mhz)

3) Disable interrupts before jumping into the IAP address

4) Change MEMMAP to use RAM space instead of user flash since IAP 
disallows any access of flash memory while IAP is active

I've followed what I could from the above solutions. Here are the 
results when I try several different things with regards to IAP:

1) Turning interrupts off via MSR/MRS instruction, watchdog (1 second 
timeout) running - device goes into software reset.

2) Turning interrupts off via VIC, watchdog running - device goes 
into software reset.

3) Turning interrupts off, watchdog disabled - device locks up, 
requires power down/up to restart again.

Now, this IAP routine is supposed to execute when it receives a 
proper frame via the serial bus (UART0), and it does so (I've 
verified this). Now, if I attempt to do the copy RAM to flash IAP 
process in the startup sequence (IE. interrupts & watchdog not yet 
enabled), I can see that the RAM -> flash process was successful by 
viewing the bytes on the destination sector. Yet, it doesn't seem to 
work while everything else is running. Possible interrupt problem? If 
you have any thoughts to share on this, it would be very much 
appreciated. Thanks for your time.

Anthony

Attachments

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.