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.
早上好、
我在使 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上执行得非常完美。
谢谢
很抱歉耽误你的回答。
[引用] 只要最后两行未执行、ISR 就会执行一次、而不会再次执行、并且没有错误消息、CPU2上的程序正常运行。 执行最后两条语句时、我收到以下错误消息:
需要执行最后两行来启用来自 ePWM 的下一个中断以及在同一 PIE 组上。 这是预期的。
在另一个错误中,您是否以实时模式运行?
此致、
Vivek Singh
Vivek、
感谢您的回答。 延时不是问题。 无论如何,我都被转移了。
我尝试使用同一中断触发两个 ISR;一个在 CPU1上、一个在 CPU2上。 我认为这应该是直接的、因为 CPU 具有独立的 PIE 表、并且两个处理器都可以看到共享的外设中断。 是的、我是在实时模式下运行的。
我不知道要做什么、导入了另一个已经有中断并使其正常工作的 CPU2示例程序。 不确定我在这里做什么。 我怀疑这是原始 CPU2程序的配置问题、但我不知道会有什么区别。 与编程相比、我仍在执行更多的剪切和粘贴操作。
谢谢、
伊姆