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.

[参考译文] TMS320F28379D:当我继续进行分步调试时、不会触发中断。

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1106793/tms320f28379d-interrupt-is-not-triggered-when-i-continue-to-step-by-step-debugging

器件型号:TMS320F28379D

尊敬的 TI 您好、

我对使用 LaunchXL 焊盘中使用的 xdsv2进行调试有疑问、

我想说、当我对中断进行三角测量并继续执行步骤(F5)时、即使我按 F5超过10次、并且我添加了"ERTM"、也不会触发中断。

只有当我在中断服务程序中按 F8并断开 PC 时、才会触发中断。

这是因为需要14个周期还是因为仿真器问题、我必须激活调试寄存器中的某些内容吗?

谢谢你

S.Tarik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如何在应用中触发中断?

    谢谢
    Vasudha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    中断由用户中断触发。

    __interrupt void USER1_ISR(void)     // User Defined trap 1
    {
        volatile Uint16 i;
        PieCtrlRegs.PIEIFR1.all = 0x0040;
        EINT;
    
    
    
        //
        // Insert ISR Code here.......
        //
        //PieCtrlRegs.PIEIFR1.all = 0x00FF;
    
        for(i = 1; i <= 10; i++) {
            __asm("  NOP");
        }
    
        ISRTrace[ISRTraceIndex] = 0xCA11;
        ISRTraceIndex++;
        for(i = 1; i <= 10; i++) {
            __asm("  NOP");
        }
    
        ISRTrace[ISRTraceIndex] = 0xCA12;
        ISRTraceIndex++;
        for(i = 1; i <= 10; i++) {
            __asm("  NOP");
        }
        __asm("  NOP");
        ISRTrace[ISRTraceIndex] = 0xCA13;
        ISRTraceIndex++;
        for(i = 1; i <= 10; i++) {
            __asm("  NOP");
        }
        ISRTrace[ISRTraceIndex] = 0xCA14;
        ISRTraceIndex++;
        for(i = 1; i <= 10; i++) {
            __asm("  NOP");
        }
    
    
        // Next two lines for debug only to halt the processor here
        // Remove after inserting ISR Code
    //   __asm ("      ESTOP0");
    //    for(;;);
        //
        //  Add ISR to Trace
        //
        ISRTrace[ISRTraceIndex] = 0xCA15;
        ISRTraceIndex++;
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    调试器在单步执行时禁用中断默认情况下、您可以在设置中更改此设置。

    tools->Debugger Options -> Program/Memory Load Options。

    取消选中突出显示的复选框。

    请告诉我这是否有帮助。

    谢谢、

    Ashwini

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ashwini、

    我取消选中这两个选项、但仍然有相同的问题。

    S.Tarik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、如果在下一个 C 源语句中设置断点并运行、您是否会看到同样的问题?  

    谢谢、
    Ashwini

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、

    当我运行代码并在中断中设置断点时、PC 会停止、但当我一步一步执行时、我永远不会分支到中断服务例程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、感谢您试用这款。 我将把这个问题转交给 CCS 团队。 对于单步执行、调试器或硬件可能会禁用中断。 我将就此向您回复。

    谢谢、
    Ashwini

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ashwini、

    有关此主题的任何新闻?

    谢谢、

    ST

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 ST:

    CCS 在执行单步执行时隐式禁用中断、因此 取消选中 CCS 选项的"disable interrupt"不起作用。 CCS 团队正在研究是否可以在未来的调试器版本中更改此内容。

    目前、唯一的选项是设置断点并运行以在调试期间获取中断。

    谢谢、
    Ashwini

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ashwini、

    感谢您的回答

    S.t