Yahoo Groups archive

Lpc2000

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

Thread

Partially remmaped vector int table??????

Partially remmaped vector int table??????

2004-10-28 by givc@yahoo.com

Hello everyone,

I'm developing an environment with my own bootloader and 
MainApplication to allow updrades via CAN controller. Each 
application has it's Vector Interrupt Table and I'm using MEMMAP to 
switch from one table to another. In order to do that, the MainApp 
VIT are copied from flash at address 0x2100 to RAM at ox40000000 
after the MEMMAP reg is set to 0x02.

Ok... the problem I'm having is that when I switch to the MainApp 
the interrupts are not working totally ok. I have a TIMER interrupt 
(IRQ) that works as expected.. when the int is generated it jumps to 
the correct IRQ Address(At add ~0x2100+) and the ISRoutine is 
executed. BUT... when a CAN interrupt is generated (which is FIQ) 
instead of jumping to the correct address(~0x2100+) is jumping to 
the VITable of the BootApp (At ~0x009C).

The only difference between IRQ and FIQ is that in the VITables... 
at FIQ address there's a jump to a Label and in the IRQ address 
there's a PC operation (...[PC, #-0x0FF0])

As additionala information, I disable the interrupts prior to jump 
to the mainApp. I'm taking care of not using the first 64bytes 
(MEMMAP) of RAM or the top 32Bytes(IAP functions).

Is there anything else I need to do to with the IFQs in order to use 
MEMMAP.

Thanks in advance!

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.