主题中讨论的其他器件:HALCOGEN、
我正在开发一个依赖中断的 TMS570LS3137固件。 直到最近、一切都在运行、但是不知何故、中断可靠地停止工作。 除了 HalCoGen 生成的代码、调试代码非常简单:
int main(void)
{
gioInit(); /* IO pins init */
_enable_IRQ();
gioEnableNotification(gioPORTB,2);
while(true);
return;
}
uint32 testCounter = 0;
/* USER CODE END */
#pragma WEAK(gioNotification)
void gioNotification(gioPORT_t *port, uint32 bit)
{
testCounter++;
}
HCG 文件将 IRQ 通道9 (GIO Int A)置1、各个引脚的 GIO 设置为高优先级、且通知句柄的功能在 VIM RAN 选项卡、插槽9上进行设置(这是来自 HCG 的 gioHighLevelInterrupt、只需调用上面的 gioNotification)。 当然、计数器不会向上计数、即使它处理另一个代码、从头开始、仅针对 GIO。 在启动后的很短时间内、它将会递增。
CPSR 上的 I 寄存器为0、对应引脚的 IntDet 和 IntENASet 为1、IntFlg 保持为0、即使我可以看到 DIN 寄存器中的值发生变化、并且从未调用通知、有时也会调用几次以永远不会再次调用。
对于要调查或如何解决此问题的任何提示、我们都非常欢迎您!








