I am writing Interrupt Controller for Blackfin 609. In the SEC event dispatcher, I am reading CEC_SID to get the source of the Interrupt and it works fine for all the peripheral interrupts. But when I initialize software interrupt on EVT14, SEC dispatcher which I have written is still reading CEC_SID and getting routed to different service routines instead of EVT14.
I have following questions
1. Is it normal behavior that CEC_SID still have the valid value even if the software interrupts are triggered ? or should I write a different dispatcher for software interrupts which doesn't read the CEC_SID.
2. I have no information on EVT 7-EVT 15 except EVT 11 so that means they all can be used as software interrupts?
3. How does the interrupt racing occurs among peripherals to fill SEC_CPND. If the higher priority(A) gets the core and lower priority peripheral(B) is waiting but by the time A gets serviced if a medium priority peripheral (C < A & C > B) trigers the interrupt which of the two peripherals(B-triggered earlier than C or C-higher priority than B) gets core.
Thanks and Regards,