I have worked on several projects where I have needed to process DMA interrupts. I am using the TMS320VC5507 DSP and currently running version 5.41.10.36 of the DSP/BIOS. I need to be establish my ISRs at run time so I have done this using HWI_dispatchPlug to plug the interrupt service routines interrupt vector into the BIOS. For the DMA interrupts I have used DMA_getEventID to get the event ID for the DMA channel. This ID has then been passed to HWI_dispatchPlug as the vectid. This method has worked just fine for some time.
I now need to add an ISR for processing interrupts from INT0 hardware interrupt pin. I cannot find a getEventID function for hardware interrupts. I have looked in hwi.h where HWI_dispatchPlug's prototype is defined to see if there were any defines for vector IDs and found none. I have tried a number of other guesses with no success.
So how do I find the vector ID for the hardware interrupts?
I have also tried using C55_plug. This actually plugs the hardware interrupt vector table with an address directly to my ISR. Therefore, I would assume that the DSP/BIOS dispatcher will not be used. I have discovered that once my ISR is called the global interrupt mask bit (INTM) in the ST1_55 register is set. After my ISR returns and I am back in my application this bit is still set.
In this approach, do I have to clear this flag in my ISR?
Thanks for your help.
Ken