Yahoo Groups archive

Lpc2000

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

Message

IRQ LPC2194

2005-06-02 by Steffen Rose

Hi,

I'm "playing" with interrupts.
Now I have this situation:

Within the VIC some Interrupts are enabled and set.
The ARM7 Core is in Usermode, the I Flag is 0.

Now I miss my Interrupt generation.

What could be wrong?

Before this situation, for example I clear the Interrupts on the 
VIC with 

    /* disable all Interrupts on the VIC unit */
    LPC21_VIC_INT_ENCLR = 0xFFFFFFFFul;
    /* reset current interrupt Flags */
    LPC21_VIC_SOFTINT_CLR = 0xFFFFFFFFul;

Later I generate a SWI. Within the Software Interrupt function I 
call this function:

void fl_destroyAppl(void) __arm 
{
    /* disable IRQ, FIRQ (Mode_SVC|I_Bit|F_Bit) */
    __asm { 
		MSR CPSR_c, #0xD3 	/* (Mode_SVC|I_Bit|F_Bit) */
                LDR     R0, =0xE01FC040 /* MEMMAP */
                MOV     R1, #1 	/* User Flash Mode */
                STR     R1, [R0]
    };

    ((void(*)(void))0)();
}


On address 0 the program restarts and the startup initializes and 
enables the interrupts. But now the Interrupt engine is wrong.

Do you have a better command to reset the CPU? I want also reset 
the internal resources. But I didn't find a Software Reset.

Thank you.
-- 
Steffen Rose

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.