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.

[参考译文] TMS570LS1224:每次下电上电时、使用 esmREG->IOFFHR 值0触发 esmHighInterrupt ()。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1413310/tms570ls1224-esmhighinterrupt-is-triggered-with-esmreg--ioffhr-value-of-0-once-every-power-cycle

器件型号: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 (vec32U);
  }
  否则、如果(vec < 96U)
  {
    esmREG->SR4[0U]=(uint32) 1U <<(UINT-64U vec);
    esmGroup1通知(vec32U);
  }
  设计
  {
    esmREG->SR4[0U]= 0xFFFFFFFFU
    esmREG->SR1[1U]= 0xFFFFFFFFU
    esmREG->SR1[0U]= 0xFFFFFFFFU
  }

}

您能帮我调查这个问题吗、为什么我们会收到  INTOFFH 值为0的 ISR - esmHighInterrupt()。

非常感谢。

此致

隆华茂