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.

TMS320F28335: Software generated interrupts using reserved hardware interrupt

Guru 19935 points

Hello,

Are the following steps the correct way to software generate a PIE Group 10 or 11 interrupt in an ISR and to not have it serviced until after the ISR completes:

1. Enable the group using the IER register at power-up.

2.  In the ISR, set the appropriate multiplexed interrupt group item (i.e. PIE10.y or PIE11.y).

Am I missing anything?

Also, The PIE Group 10 or 11 ISR should allow nesting of all in use PIE group interrupts.  I am thinking that the software only needs to set the appropriate bits in the IER at the beginning of the ISR, e.g  IER |= M_INT7|M_INT6|MINT1 if Group 7,6 and 1 are the only in use PIE group interrupts.

Am I correct?

Stephen

  • Hi Stephen,

    Yes, the step you mention for SW interrupt look fine.

    Please go through following link for more info on Nested Interrupts.

    http://processors.wiki.ti.com/index.php/Interrupt_Nesting_on_C28x

    Regards,

    Vivek Singh

  • "Yes, the step you mention for SW interrupt look fine."

    Fantastic.

    "Please go through following link for more info on Nested Interrupts."

    Is the code below correct?  Is the "Wait one cycle necessary?"

    interrupt void INT10_1_ISR(void)
    {
        IER |= M_INT1|M_INT3|M_INT5;           // Allow nesting of all "in-use" PIE Groups. PIE Groups 1,3 and 5 interrupts are "in use".
    IER &= M_INT1|M_INT3|M_INT5; // Disallow nesting of all others that are not used asm(" NOP"); // Wait one cycle. Is this necessary? EINT; // Clear INTM to enable interrupts // // Insert ISR Code here...... }

  • Hi Stevenh,

    You are not using the step needed to acknowledge the current interrupt.

        PieCtrlRegs.PIEACK.all = 0xFFFF;

    Without this any interrupt from current ISR group will not be nested. If that is ok, then code you have should be fine. Also, I think wait cycle is needed if you are using the code related to ACK else it should not matter but I'll suggest to leave it there.

    Regards,

    Vivek Singh