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.

NMI must be activated in order to get an other interrupt

Hi ,

I would like to know if we must activate the NMI interruption in order to get an other interrupt??

I tried to activate only the timer 0 interrupt but I can't reached interrupt. But when I enable the NMI interrupt it works !

regards

  • Hi Suleyman,

    Suleyman says said:
    I would like to know if we must activate the NMI interruption in order to get an other interrupt??


    Yes, NMI should be enabled before any other interrupt is activated.

    Suleyman says said:
    I tried to activate only the timer 0 interrupt but I can't reached interrupt. But when I enable the NMI interrupt it works !


    Yes, except for CPU interrupt, "Reset", NMI should be enabled.
  • How do I "enable" the NMI interrupt?

  • The best solution is to use TI-RTOS and/or CSL. Following the examples provided for a processor will take care of all of these details.

    To understand better how our processors work, there are archived online workshops for many of the processor. These often go through important details like this.

    Each processor DSP core comes with a CPU & Instruction Set document that is available on TI.com on the Product Folder page for your DSP. Go to the Technical Documents tab and look through the User Guides. This document explains the technical details of the DSP core. There are other similar documents for other parts of each device. These are very useful for the people who do not want to use our support software but want to write directly to registers. We support that path by offering these documents, or suggesting to use TI-RTOS and/or CSL instead.

    Regards,
    RandyP
  • Hi don5534,

    I would recommend you to refer to the interrupt.c file of C6748 starterware code.

    Below is the code snippet from interrupt.c

    #define C674X_NMI 1

     void IntDSPINTCInit (void)
    {
        unsigned int step = 0;

        /* Set ISRs to default "do-nothing" routine */
        while(step != C674X_INT_COUNT)
            c674xISRtbl[step++] = IntDefaultHandler;

        /* Set interrupt service table pointer to the vector table */
    #ifdef __TI_EABI__
        ISTP = (unsigned int)_intcVectorTable;
    #else
        ISTP = (unsigned int)intcVectorTable;
    #endif

        /* Clear pending CPU maskable interrupts (if any) */
        ICR = 0xFFF0;

        /* Enable NMIE bit to allow CPU maskable interrupts */
        IER = (1 << C674X_NMI);
    }

  • Hi Shankari,

    Thanks, that's just the information I need. I appreciate the response.

    Don

  • Hi don,

    OK, That's good.

    you are welcome.