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.

[参考译文] 编译器/TMS320F2.8377万D:运行时频繁访问IER

Guru**** 2553450 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/630592/compiler-tms320f28377d-frequent-access-of-ier-during-runtime

部件号:TMS320F2.8377万D
主题中讨论的其他部件: C2000WARE

工具/软件:TI C/C++编译器

尊敬的先生:

我正在将TMS320F2.8377万D用于逆变器应用。 我经常使用IER寄存器启用/禁用软件中的中断。 例如,在高优先级控制环路上,我们正在通过IER禁用所有其他与通信相关的中断组。

现在我的查询是:

我在干什么? 在进入高优先级控制循环之前禁用特定的IER组,并在执行之后,重新启用IER。 因此,如果IER被禁用,而该特定组生成中断,那么在重新启用IER时会发生什么情况? 是否发生中断? (如果是,可以生成的最大中断数是多少)如果出现多个中断,会发生什么情况?


这是写控制软件的正确方法吗? 如果不是,请建议如何处理这种情况? 是否有跳过中断的可能(如果来自同一组的多个中断)?

谢谢,此致,

Maulik Timbadiya

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

    以CPU时钟频率采样中断。 当您重新启用IER行时,如果该行上有多个待处理的PIE中断,则将首先处理最小的数目,然后是下一个最小的数目。 如果自上次启用IER位以来,同一外设发生了多个中断,则重新启用时,只能获得一个中断进入CPU。 其他的将会丢失。

    如果您认为存在发生这种情况的风险,则必须小心管理中断计时。 通常,低优先级ISR会限制屏蔽高优先级中断的时间,以便通过在ISR内重新启用高优先级中断来保护上下文保存和恢复。 C2000Ware中特定于设备的头文件中有一个中断优先级示例。 如果您在硬盘驱动器的默认位置安装了最新版本,则示例将位于:

    C:\ti\c2000Ware_1_00_02_00\device_support\f2837xd\examples\CPU1 \SW_优2837 \SW_优 化_中断

    此致,

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

    感谢您的及时回复。 以下步骤将会发生什么情况:
    1.启用IER,没有待处理中断。
    2.设置IER =0后,假设SCI外设接收数据,并尝试生成中断。
    3.启用IER。

    在上述特定步骤上启用IER时是否发生中断? SCI中断将发生什么情况? 是否跳过?

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

    尊敬的Maulik:

    如果在步骤2中没有出现其它中断,并且PID已正确配置, 则当 您在IER上启用它时,CPU应接受SCI中断。

    您是否看到了不同的行为?

    此致,

    Richard

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

    我只是确认我对它的理解。
    您的意思是说,即使IER已禁用,也会设置相应的IFR。 对吧?
    当IER启用时,它将生成中断?

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

    尊敬的Maulik:

    是的,正确。  IFR在IER之前。  INTM禁用所有中断(请参阅附件)。

    此致,

    Richard

    e2e.ti.com/.../maskable-core-interrupts.pdf

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

    我将此帖子标记为已回答。
    祝你度过美好的一天!

    此致,
    Maulik