Interrupts during IAP
2004-12-16 by Karl Olsen
Yahoo Groups archive
Index last updated: 2026-04-28 23:31 UTC
Thread
2004-12-16 by Karl Olsen
Hello all, Normally all interrupts should be disabled during IAP calls. But if the interrupt vectors and all interrupt code are relocated to RAM, are there any limits as to how much time interrupt handlers may "steal" from the foreground program during IAP erase/write calls? Karl Olsen
2005-01-05 by rjwal3
I have set the UART interrupt up to run from RAM so I can use it during IAP writing to FLASH yet it causes the same problem as if I were running the interrupt from FLASH. Does any one have any experience this? The interrupt vector in startup.s is: LDR PC, [PC, #-0x0FF0] /* Vector from VicVectAddr */ And the vector address for my UART1 interrupt is my RAM function: VICVectAddr2 = (unsigned long)u1intRAM; This works fine by itself, but not when I try to use IAP with the UART interrupt anabled and all the rest disabled. Could it still be getting something from FLASH?
2005-01-05 by Karl Olsen
--- In lpc2000@yahoogroups.com, "rjwal3" <rossjwalker@n...> wrote: > > I have set the UART interrupt up to run from RAM so I can use it > during IAP writing to FLASH yet it causes the same problem as if I > were running the interrupt from FLASH. > Does any one have any experience this? > > The interrupt vector in startup.s is: > > LDR PC, [PC, #-0x0FF0] /* Vector from VicVectAddr */ > > And the vector address for my UART1 interrupt is my RAM function: > > VICVectAddr2 = (unsigned long)u1intRAM; > > > This works fine by itself, but not when I try to use IAP with the > UART interrupt anabled and all the rest disabled. > > Could it still be getting something from FLASH? Have you relocated the interrupt vectors, i.e. copied them from flash to RAM and changed MEMMAP? Karl Olsen
2005-01-05 by rjwal3
--- In lpc2000@yahoogroups.com, "Karl Olsen" <kro@p...> wrote: > > --- In lpc2000@yahoogroups.com, "rjwal3" <rossjwalker@n...> wrote: > > > > I have set the UART interrupt up to run from RAM so I can use it > > during IAP writing to FLASH yet it causes the same problem as if I > > were running the interrupt from FLASH. > > Does any one have any experience this? > > > > The interrupt vector in startup.s is: > > > > LDR PC, [PC, #-0x0FF0] /* Vector from VicVectAddr */ > > > > And the vector address for my UART1 interrupt is my RAM function: > > > > VICVectAddr2 = (unsigned long)u1intRAM; > > > > > > This works fine by itself, but not when I try to use IAP with the > > UART interrupt anabled and all the rest disabled. > > > > Could it still be getting something from FLASH? > > Have you relocated the interrupt vectors, i.e. copied them from flash > to RAM and changed MEMMAP? > > Karl Olsen yes I have copied the interrupt vectors to 0x4000000, and the interrupt procedures are in RAM as well and MEMMAP = 2. This All works fine unless I try to use it in conjunction with IAP, and the IAP works fine provided the interrupt is disabled. I can't see why it wont work, I guess more research is required.I
2005-01-05 by tom_laffey
Hi Ross, You might try tracing execution of the ISR in assembly mode to make absolutely certain that no accesses are made to flash. This would include constant data (i.e., initializers inside a function) as well as code. Every CPU access must be to RAM or a to a peripheral, since flash is unavailable during IAP. Tom --- In lpc2000@yahoogroups.com, "rjwal3" <rossjwalker@n...> wrote: > > --- In lpc2000@yahoogroups.com, "Karl Olsen" <kro@p...> wrote: > > > > --- In lpc2000@yahoogroups.com, "rjwal3" <rossjwalker@n...> wrote: > > > > > > I have set the UART interrupt up to run from RAM so I can use it > > > during IAP writing to FLASH yet it causes the same problem as if
> I > > > were running the interrupt from FLASH. > > > Does any one have any experience this? > > > > > > The interrupt vector in startup.s is: > > > > > > LDR PC, [PC, #-0x0FF0] /* Vector from VicVectAddr */ > > > > > > And the vector address for my UART1 interrupt is my RAM > function: > > > > > > VICVectAddr2 = (unsigned long)u1intRAM; > > > > > > > > > This works fine by itself, but not when I try to use IAP with > the > > > UART interrupt anabled and all the rest disabled. > > > > > > Could it still be getting something from FLASH? > > > > Have you relocated the interrupt vectors, i.e. copied them from > flash > > to RAM and changed MEMMAP? > > > > Karl Olsen > > > yes I have copied the interrupt vectors to 0x4000000, and the > interrupt procedures are in RAM as well and MEMMAP = 2. > This All works fine unless I try to use it in conjunction with IAP, > and the IAP works fine provided the interrupt is disabled. I can't > see why it wont work, I guess more research is required.I