请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS570LS1224 工具与软件:
尊敬的女士/先生:
我们在软件开发中使用上述 TI 芯片、并与 SAFERTOS 配合运行。 最近我们检查的是 ESM 中断偏移量高寄存器值、如果使用 esmREG->IOFFHR = 0触发 ISR、我们会将其视为严重故障。
如数据表中所述、如果 INTOFFH 为0、则不存在挂起的中断。 因此、ISR 根本不应触发。 但在本例中、每次下电上电时仅发生一次。 之后不触发 ISR。
void esmHighInterrupt (void)
{
uint32 vec = esmREG->IOFFHR - 1U;
如果(vec < 32U)
{
esmREG->SR1[0U]=(UINT32) 1U << vec;
esmGroup1通知(vec);
}
否则、如果(vec < 64U)
{
esmREG->SR1[1U]=(uint32) 1U <<(UINT-32U vec);
esmGroup2Notification (vec-32U);
}
否则、如果(vec < 96U)
{
esmREG->SR4[0U]=(uint32) 1U <<(UINT-64U vec);
esmGroup1通知(vec-32U);
}
设计
{
esmREG->SR4[0U]= 0xFFFFFFFFU;
esmREG->SR1[1U]= 0xFFFFFFFFU;
esmREG->SR1[0U]= 0xFFFFFFFFU;
}
}
您能帮我调查这个问题吗、为什么我们会收到 INTOFFH 值为0的 ISR - esmHighInterrupt()。
非常感谢。
此致
隆华茂