This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Processing Hardware Interrupts

Other Parts Discussed in Thread: TMS320VC5507

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

  • Related information is on page 2-47 of TMS320C55x DSP CPU Reference Guide, http://www.ti.com/lit/ug/spru371f/spru371f.pdf

    Here talks about INTM bit of ST1_55. INTM is set before branching to ISR. The ISR can re-enable the maskable interrupts by clearing the INTM bit.

    Hope this help.

    Regards.

     

  • Thanks, but could you also comment on the use of HWI_dispatchPlug.  Specifically where do we get the proper values for the vector IDs when there is no CSL function related to the interrupt.  DMA seems to be covered but I could not find anything in the CSL manual about getting event IDs for the hardware interrupt pins.  When I looked at what was being returned for the DMA interrupts, there did not seem to be a correlation between the DMA interrupt and the location of that interrupt in the table of interrupts in the DSP datasheet.

    Thanks again,

    Ken