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:在 CPU2上运行 ISR

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/782831/tms320f28379d-running-isr-on-cpu2

器件型号:TMS320F28379D

早上好、

我在使 ISR 在 CPU2上运行时遇到问题。 该中断来自共享外设、并在 CPU1上工作。 ISR 如下所示:

中断 MyPWM1_ISR_2 ()

  EINT;

  my_interrupt_counter++;

 

 

  //EPwm1Regs.ETCLR.bit.INT = 1;

  //PieCtrlRegs.PIEACX.ALL  = PIEACK_Group3;

 

只要最后两行未执行、ISR 就会执行一次、而不会再次执行、并且没有错误消息、CPU2上的程序正常运行。 执行最后两条语句时、我收到以下错误消息:

 

读取寄存器 PC 时出现问题:

(错误-1142 @ 0x0)

器件阻止了调试访问、因为它当前正在执行不可调试的代码。 选择"粗鲁重试"以禁用礼貌模式并强制执行操作。

(仿真包8.0.903.6)

 

选择“粗鲁重试”会导致相同的错误消息。

完全相同的 ISR 在 CPU1上执行得非常完美。

 

谢谢

 

 

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们将对此进行研究、并将在1天或2天内返回给您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉耽误你的回答。

    [引用] 只要最后两行未执行、ISR 就会执行一次、而不会再次执行、并且没有错误消息、CPU2上的程序正常运行。 执行最后两条语句时、我收到以下错误消息:

    需要执行最后两行来启用来自 ePWM 的下一个中断以及在同一 PIE 组上。 这是预期的。  

    在另一个错误中,您是否以实时模式运行?  

    此致、

    Vivek Singh

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

    Vivek、

    感谢您的回答。  延时不是问题。  无论如何,我都被转移了。

    我尝试使用同一中断触发两个 ISR;一个在 CPU1上、一个在 CPU2上。  我认为这应该是直接的、因为 CPU 具有独立的 PIE 表、并且两个处理器都可以看到共享的外设中断。 是的、我是在实时模式下运行的。

    我不知道要做什么、导入了另一个已经有中断并使其正常工作的 CPU2示例程序。  不确定我在这里做什么。  我怀疑这是原始 CPU2程序的配置问题、但我不知道会有什么区别。  与编程相比、我仍在执行更多的剪切和粘贴操作。

    谢谢、

    伊姆

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴知道您已使其正常工作。 将关闭此帖子、如果您有任何疑问、请启动新帖子。