Yahoo Groups archive

Lpc2000

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

Message

Re: [lpc2000] Re: LPC2138FBD64 - not possible to run from Flash and use IAP?

2005-10-27 by Richard Duits

Tom Walsh wrote:

> A lot of Flash does this, while the microcode sequencer inside the flash
> memory is busy working with the flash array, it cannot be disturbed by
> the CPU core reading that same array.  Some flash memories are capable
> of allowing reading while the sequencer is busy writing / erasing some
> other part of the Flash array, but these types of Flash are more of an
> oddity than the normal flash you find.
>
I think the LPC2xxx have a flash that can read from the last block while 
erasing/programming another block, otherwise the IAP routines had be 
relocated to RAM before using them. It could also be that the LPC2xxx 
has more RAM then specified in the datasheet and that the bootcode 
relocates the IAP routines before jumping to the user program, but this 
seems more expensive and increases the startup time.

> So, to keep your CPU core running (waiting for the flash to become
> available again), you copy some code into RAM, then call the Flash erase
> / write IAP routines from there.  This way, your CPU doesn't find itself
> suddenly reading random bytes from the Flash program store.
>
You don't need any code in RAM to use the IAP routines (it works for 
me). You can call the IAP from flash, you just have to make sure that 
all interrupts are disabled.

> TomW
>
Richard.

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.