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.

TMS320F28388D: NMI interrupts not raised while DSP in Free RUN mode

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE

Hello,

I have an application to execute from CPU1 of DSP to determine if the sw has been loaded on the CPU2 or not. As i understand from TRM, if there is no sw loaded on CPU2 and when requested to boot CPU2 by CPU1, then CPU2 wd exceeds its counter that triggers the NMI interrupt on CPU1.

In the CPU1, i have enabled the NMI interrupt and also have the NMI ISR to handle the interrupt. This seems to be working while i am in the debugging mode (Connecting the DSP through JTAG). However, this NMI interrupt is not raised while i give a free RUN. I have a GPIO toggle in the ISR function to verify the ISR function invocation, but in the free RUN mode i dont see the GPIO being toggled.

I could not undestand why this is not working in Free RUN mode. I am missing something to configure? Could you please help.

Thanks,

Munaf

  • Hi Munaf,

    This seems to be working while i am in the debugging mode (Connecting the DSP through JTAG). However, this NMI interrupt is not raised while i give a free RUN.

    What do you mean by free RUN ? Are you power cycling the device with out JTAG connection ? If yes then have you confirm that your CPU1 application is running properly, meaning, CPU is executing your application code and not stuck in BOOT ROM ?

    Vivek Singh 

  • Hi Vivek,

    Thank you for the response.

    You are correct. Free run is cycling the power supply to the DSP after removing JTAG.

    I confirm the functionalities in my application are executing as expected. Only i see NMI interrupt is not raised while i am executing in free run.

    Thanks,

    Munaf

  • Have you released CPU2 reset in your CPU1 application code ?  When you are connected to CCS. CCS Gel file has code to release CPU2 reset but when you are not connected to CCS, CPU1 code need to release CPU2 out of reset.

    Regards,

    Vivek Singh

  • Hi Vivek,

    Can you suggest how to release CPU2 from reset when not connected to CCS.

    Thanks,

    Munaf

  • Please refer function Device_bootCPU2 in device.c file (in C200Ware <C200Ware_Folder>\device_support\f2838x\common\source)

    Vivek Singh

  • Hi Vivek,

    There are few functions for which definations are not available in the example code. I assume these are invoked from library. Can you provide me the document reference where i can find the definations or info about these functions.

    Also, just to let you know, i already have the Device_bootCPU2 function to boot the CPU2 at the section 0 of flash in my application program to boot CPU2. However, i see the NMI interrupt only in CCS conncected mode, not in free running mode.

    Thanks,

    Munaf

  • Hi Munaf,

    There are few functions for which definations are not available in the example code. I assume these are invoked from library. Can you provide me the document reference where i can find the definations or info about these functions.

    We should have source code for all the functions in C2000Ware. Can you please point to the function which you are referring in this case ?

    Also, just to let you know, i already have the Device_bootCPU2 function to boot the CPU2 at the section 0 of flash in my application program to boot CPU2. However, i see the NMI interrupt only in CCS conncected mode, not in free running mode.

    Have you also checked the XRSn pin to make sure, there is no reset happening while in free running mode ?

    Vivek Singh