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.

C6745 High priority interrupt

Other Parts Discussed in Thread: SYSBIOS

Hi,

 

How to configure a high priority interrupt in the C6745 ? I've tried this :

pInterruptRegs->INTMUX1 = 0x00000036; // GPIO Bank 4 event, INTSEL4

bit it's seems disturbed by a lower priority  (EMAC0 RX):

pInterruptRegs->INTMUX2 = 0x00001C1B; // EMAC0 RX event, INTSEL8, EMAC0 TX event, INTSEL9

Thanks

Laurent

 

  • Laurent,

    You should be using BIOS. It is free with your CCS, it provides for interrupts by writing to the INTMUXn registers, it provides methods to set priorities between interrupts, and its footprint can be reduced to the minimum size that you require. You can read the Application Note DSP/BIOS Sizing Guidelines for TMS320C2000/C5000/C6000 DSPs for information on minimizing the BIOS5 footprint. BIOS6/SYSBIOS is even easier to fit to match your needs.

    Using BIOS will make your job easier, you will get your application running sooner, and you will be able to create a more structured and supportable program.

    Whether you choose the path that we have built for you or not, you will need to explain more about what you mean by a "high priority interrupt" and "seems disturbed by a lower priority [interrupt]".

    Anything that I can imagine that you mean by these terms, you can make that functionality work using BIOS and the HWI_Dispatcher.

    Regards,
    RandyP

  • Hi,

    I've found the problem. GIE is disable when the isr is processing. For nested interrupt i do like this :

     

    interrupt my_isr_high_priority ( void ) // high priority

    {

    // **********************

     // My code here

     // **********************

    }

     

    interrupt my_emac0_rx ( void) // low priority, interruptible

    {

     Uint32 irpreg;

     Uint32 csrreg;

     

      irpreg = IRP; 

     csrreg = CSR;

     

     CSR |= 1; // enable GIE

     // **********************

     // My code here

     // **********************

     CSR &= ~1; // disable GIE

     IRP = irpreg;

     CSR = csrreg;

    }

     

    It seems to work.

    Laurent