I have a C project in which I need to force a IRQ0 interrupt several times before I start responding to real ones. I'm finding that when I use the raise() or raisensm() function to force an interrupt the DSP will no longer respond to real interrupts afterwards. If I do not use a raise function at all, the DSP responds normally to real external interrupts.
Also, the reverse happens as well, If I receive a real interrupt before I force one, then I can no longer force them either.
I initialize the interrupt with:
// Set up interrupt
*pSYSCTL |= IRQ0EN;
sysreg_bit_set(sysreg_MODE2,IRQ0E); // edge triggered
interrupts (SIG_IRQ0, timer_isr_ASM);
Then I would force it with:
My ISR is wriiten in assembly and I use the C marcos for calling asm functions from C:
entry; // stack support macro for ASM interfacing.
my asm code....
_timer_isr_ASM.end: exit; // stack support macro for ASM interfacing.
Any assistance with this problem would be very helpful.