大家好!
我´m Lauterbach 调试 TMS320F28388D、我的´m 遇到 双色 那就是它绝不会将 INTM 设置为1。 反过来、 电子情报 指令 正确地将 INTM 设置为0。
我已检查生成的汇编器代码、并且 DINT 已正确"转换"为" SETC INTM "指令。
为什么需要以任何原因或条件 双色 可能无法将 INTM 设置为1?
提前感谢您。
伊万
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.
大家好!
我´m Lauterbach 调试 TMS320F28388D、我的´m 遇到 双色 那就是它绝不会将 INTM 设置为1。 反过来、 电子情报 指令 正确地将 INTM 设置为0。
我已检查生成的汇编器代码、并且 DINT 已正确"转换"为" SETC INTM "指令。
为什么需要以任何原因或条件 双色 可能无法将 INTM 设置为1?
提前感谢您。
伊万
您好、Vince。
感谢您的答复。
实际上、在 初始化阶段也可以很早就观察到这种行为、在初始化阶段没有配置/启用中断。
以下是代码的摘录:
DINT; /* disable interrupts globally */ !!!----> DINT here never sets INTM to 1 (visible in Lauterbach Registers window) !!!----> Although I manipulate INTM to 0, a re-execution !!!----> of DINT, through a changing of the program counter (set PC in Lauterbach), !!!----> has not effect, that is INTM remains set to 0. IER = 0x0; /* disable all interrupts groups */ IFR = 0x0; /* clear all CPU interrupt flags */ EINT; /* enable all interrupts */ !!!----> Conversely in this case, EINTM sets always INTM to 0
问题是:谁/什么可能阻止 INTM 设置为1?
一般而言:我看到它设置为1的唯一时刻(正如预期的那样)是我输入一个中断处理程序时、该处理程序正如预期的那样。 对于手册、当一个中断被触发时、CPU 的确将 INTM 设置为1 (也就是说:一旦进入一个中断处理程序、中断被全局禁用)。
任何将 INTM 设置为1 (SETC INTM 指令)的软件尝试都不起作用。
欢迎提出任何建议。 谢谢你。
此致、
伊万