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.

DSP/BIOS Interrupt Configuration (C6455)

I have done interrupt handling with the CSL INTC library before, but I would like to use DSP/BIOS.  I would like to know if the following steps are enough to configure the DSP/BIOS to handle an SRIO triggered event.

1) The SRIO peripheral condition routing register (ICRR) is configured for INTDST0. 

2) From the data sheet, I can find that INTDST0 is EVENT #20.  So I need to configure the DSP/BIOS to handle EVENT20 and call a custom function.

3) In the DSP/BIOS, I select HWI_4 and enable the "use dispatcher" option, and leave the argument at 0x0.

4) In the DSP/BIOS, I enable the event combiner (ECM).

5) In the DSP/BIOS, I select EVENT20 and assign to the function _srio_INTDST0 and unmask the event.  (srio_INTDST0 is a function I have provided)

6) In the main() function, I enable GIE in the CSR register and IE4 in the IER register using inline assembly.

 

Will these steps route the event to my custom handler function which will clear the interrupt in the peripheral's ICCR register?

Thank you for your help!

  • In step 3 you should put in the name of your handler there (_srio_INTDST0).  You should put in the interrupt number 20 in this box as well.  You should then eliminate steps 4-5.

  • Thank you for taking the time to answer my question.

    If I wanted to use all three SRIO events, I would need to route each event to a different HWI interrupt with the corresponding event numbers, correct?

     

  • Yes, that's correct. 

    Only if there are more than 12 total interrupts in the system do you need to bother with the interrupt combiner.  In that scenario you map either 0, 1, 2, or 3 (EVT0, EVT1, EVT2, EVT3) as the interrupt number to one of the HWIs.  You would then need an extra level of handling.  Perhaps BIOS already has that handler available.  I haven't played with it.