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.

[参考译文] TMS570LS1227:中断优先级屏蔽

Guru**** 2952510 points

Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/985183/tms570ls1227-interrupt-priority-mask

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

您好!

我们必须使用 VIM (矢量中断管理器)接口来实现中断优先级屏蔽。
中断优先级屏蔽应该阻止优先级较低的中断、即使在被触发时也是如此。
硬件中是否有任何寄存器或任何其他设置中断优先级屏蔽的方法。  

谢谢。

此致、

丹尼

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

    您好!

    有两个 VIM 寄存器来启用中断并选择优先级。 它们是 REQENASETx 和 FIRQPRx。  

     REQENASETx 寄存器的中断使能位用于控制事件的发生是否会引起对 VIM 的中断请求。  每个 FIQ 和 IRQ 中编号较小的通道具有较高的优先级。 例如、VIM 通道2上的 RTI 比较0具有比 VIM 通道3上的 RTI 比较1更高的优先级。

    VIM 可同时向 CPU 发送两个中断请求-一个 IRQ 和一个 FIQ。 如果在 CPU 级别启用了两种中断类型、则 FIQ 具有更高的优先级、并首先进行处理。 除 通道0和1之外的每个中断通道都可以分配给 CPU 发送 FIQ 或 IRQ 请求。 这是通过 FIRQPRx 寄存器完成的。

    这些操作(启用或禁用、FIQ/IRQ 选择)由硬件完成。

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

    您好!

    感谢你的答复

    如果从任务级别(无活动中断)开始、我只需要允许优先级大于"x"的中断、该怎么办。 是否有 全局优先级屏蔽寄存器(例如 CortexM 中的 BASEPRI)或是否有有效的权变措施?

    丹尼

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

    您可以使用  REQENACLRx 来屏蔽通道号大于 x 的所有中断

    例如、如果 x < 32、以下配置将屏蔽所有较低优先级的 IRQ (不屏蔽 FIQ)。  

    vimREG->REQMASKCLR0 =((0xFFFFFFU << x) &(~vimREG->FIRQPR0));
    vimREG->REQMASKCLR1 =(0xFFFFU &(~vimREG->FIRQPR1));
    vimREG->REQMASKCLR2 =(0xFFFFU &(~vimREG->FIRQPR2));
    vimREG->REQMASKCLR3 =(0xFFFFU &(~vimREG->FIRQPR3));

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

    经过分析、我们似乎需要实施一个权变措施来正确解决 TMS570中已实现 VIM 中断控制器中优先级掩码的失效问题。  

    如何使用 TMS570中的 VIM 来实现 CAT1、CAT2、CAT0 AUTOSAR OS 中断级别?

     此外、对于每个 CAT2中断、应禁用所有优先级较低的中断、同时跟踪不同的应用。 这意味着几乎每个上下文切换都会打开和关闭中断通道。 中断服务也需要类似的权变措施。

     TI 是否提供经过测试的变通方法(或应用手册)、这对于 AUTOSAR 堆栈没有任何问题、可满足所有 AUTOSAR 要求? TI 能提供这些吗?

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

    我不知道 AutoSar 中使用的 CAT1、CAT2中断类别。 VIM 中断配置是使用 HALCoGen 生成的 API 或您自己的函数在您的应用代码中完成的。  

    没有计划发布新的 HALCOGen 版本。  

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

    是否可以安排与我的操作系统提供商的会议来讨论这一问题?

    谢谢你

    丹尼

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

    尊敬的 Denny's:

    很抱歉、我不知道使用 AutoSar。