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.

[参考译文] TMS570LS3137:在后台循环执行期间临时禁用特定中断

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1068661/tms570ls3137-disabling-specific-interrupts-temporarily-during-background-loop-execution

部件号:TMS570LS3137

您好,

我对中断处理有疑问:

我只想禁用特定的中断,例如,在 执行在后台循环(例如主方法)中发生的功能时,RTI 比较0。

是否有其他方法可以解决这个问题?

我应该 使用 VIM 寄存器来屏蔽特定中断,还是 可以轻松使用 RTI 接口的 ClearInt 寄存器来暂时禁用相应的中断线路 ,直到我的功能执行后再次启用它?

我的意思是在全局范围内,我可以轻松禁用此函数上下文中的所有中断,但这是我希望避免的。

同样重要  的是,不要错过来自该接口的任何待处理中断,因为中断 IRQ 线路仍然是应用程序的关键所在。

在执行 cricital 代码段时,它应该只是“休眠”。 离开此关键代码部分后,如果屏蔽 IRQ 中的任何待处理中断可用,则应触发相应的 IRQ 线路。

我已经阅读了 Hercules 平台上嵌套中断的文档,但本文档详细说明了纯中断上下文执行过程中的处理。

我是否可以重复使用或简化某些内容以实现上述行为?

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

    你好,Krax,

    [引用 userid="345079" url="~ë/support/icler/arm-based icroms-group/arm-based icros/f/arm-based icroms-forum/1068661/tms570ls3137-disabling-specific interrupts - temporaril-during -background-loo-execution"],我可以轻松使用 RTI/中断的 ClearRegister, 直到重新启用相应的函数,以暂时禁用相应的接口[引用我的函数来启用该函数[

    是的,您可以使用 HAL 生成的 API 来禁用和启用 RTI 中断:

    /*要求:HL_SR84 *
    无效的可发送通知(UINT32通知)

      (笑声)

    }

    无效的 rtiEnableNotification (UINT32通知)

     (笑声)
    }