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.

[参考译文] TMS570LS0432:禁用中断

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1450315/tms570ls0432-disabling-interrupt

器件型号:TMS570LS0432

工具与软件:

您好!

我正在我 的设计中使用 TMS570LS0432。   我有一个用例、其中软件使用 VIM 寄存器严重禁用了中断、如下面的代码所示。

静态内联 void VimDisableInterrupt (UINT32通道)
  中频(通道>= 64U)
  {
    vimREG->REQMASKCLR2 =(UINT32) 1U <<(通道-64U);
  }
  否则、如果(通道>= 32U)
  {
    vimREG->REQMASKCLR1 =(UINT32) 1U <<(通道32U);
  }
  否则、如果(通道>= 2U)
  {
    vimREG->REQMASKCLR0 =(UINT32) 1U <<通道
  }
  设计
  {
    /*空*/
  }
}
该操作非常简单、几行代码后即可立即启用。 如果发生了在禁用期间导致中断的事件、那么一旦再次启用该中断、它是否仍然可以由 CPU 注册?   期待 您的答复。  
此致、
Sreekanth Challa
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sreekanth Reddy:

    此操作非常简单、在几行代码后立即启用。 如果发生在禁用期间导致中断的事件、那么一旦再次启用该中断、它是否仍会由 CPU 注册?[/QUOT]

    是的、一旦再次启用、它就会由 CPU 注册。

    这是因为我们不会禁用外设右侧的中断、因此一旦外设完成其中断分配操作、它就会发出中断标志。 因此、一旦 CPU 再次启用 VIM、CPU 将处理此中断。

    例如、考虑 ADC:

    假设我们禁用了 ADC 的 VIM 中断、但仍然启用了外设级别的中断、因此、一旦 ADC 执行转换、它将在外设级别引发中断、并且仅在相应的处理程序例程中清除该中断标志。 因此、一旦您在 VIM 上启用了中断、这个挂起的中断将立即进入 VIM、而 VIM 将触发 CPU 处理相应的中断。

    ——
    谢谢、此致、
    Jagadish。