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.

[参考译文] AM2634:中断排队/嵌套

Guru**** 2445440 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1544950/am2634-interrupt-queueing-nesting

器件型号:AM2634


工具/软件:

尊敬的 TI 专家:

我以特定的频率(例如 1ms)触发 ADC 中断。 有时、执行 ISR 所需的时间会超过 1ms。 在这种情况下、我看到计划在 1ms 触发的下一个中断会丢失、直到 ISR 完成其执行。  

您能否建议如何配置中断、以便即使前一个 ISR 溢出、也不会错过 1ms 安排的 ADC 中断? 我希望实现这样的用例:ADC 中断每 1ms 触发一次、如果 ISR 超限、则执行会在执行新触发的中断后恢复为运行超限 ISR。

当前实施详细信息:

HwiP_Params_init (&hwiPrms);
hwiPrms.intNum = CSLR_R5FSS0_CORE0_CONTROLSS_INTRXBAR0_OUT_1;
hwiPrms.callback = Sys_Adc_Isr;
hwiPrms.priority = 8;
hwiPrms.isPulse = true;
hwiPrms.isFIQ = 0;
(void) Hwip_construct (&HwiObject、&hwiPrms);
ADC_clearInterruptStatus (ADC2_BASE_ADDR、ADC_INT_number1);

void Sys_Adc_Isr(void *手柄)

   ADC_clearInterruptStatus (ADC2_BASE_ADDR、ADC_INT_number1);
   
  //此处为 ISR 逻辑
  返回;
}


我从 TCM 存储器运行 ISR。 这是当前系统中唯一触发的 ISR、因此我想优先级为 8 应该无关紧要。
期待您的意见。 谢谢!

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

    您好、对此查询有任何更新吗?

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

    您好 Sue A、

    对延迟的响应深表歉意、您能告诉我您使用的是哪个 SDK 版本?

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我使用的是 SDK 9.1.0.41。
    谢谢!

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

    您好 Sue、

    根据我与 SDK 团队的讨论、在 9.x 版本之前启用了中断嵌套、但有很多错误。 您能否使用最新 v10.02 SDK 进行一次迁移/测试? 09.01 发布后进行了大量错误修复、最好迁移到最新的 v10.02 SDK 版本

    此致、
    Shaunak