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.

[参考译文] RTOS/TM4C1294NCPDT:访问硬件中断的子优先级组

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/710230/rtos-tm4c1294ncpdt-accessing-sub-priority-group-of-hardware-intrrupt

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

您好!

我需要设置同一优先级组的 HWI 的子优先级。

根据器件数据表第2.5.6节(第120页)、可以调整中断的子优先级(如果我们使用 APINT 寄存器减少优先级组)。

我们如何使用 Hwi 的 XDC 配置工具来访问和设置它?

我参考了 TI RTOS 用户指南和 SYS/BIOS 内核用户指南来找到这一点、但没有成功。

请帮助。

谢谢、此致、

Pranav。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 TivaWare 函数 IntPriorityGroupingSet()将优先级组组合成子组。 这只是改变了中断彼此优先的方式。 您可以将8个优先级组分成4个组、每个组有2个子组、2个组有4个子组、或1个组有8个子组。 组编号较低的中断将优先于组编号较高的中断处理程序。 具有相同组编号但较低子组编号的中断不会优先于具有相同组编号的中断。 但是、如果两个中断正由相同的组编号和不同的子组编号挂起、那么即使有更高的异常编号、也会首先为具有较低子组编号的中断提供服务。 这是您想要实现的目标吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Bob:

    感谢您的回复。
    是的、这与我要查找的内容完全相同(如我所说、在第2.5.6节中进行了说明)。

    据我所知、我可以通过以下方式完成此操作:

    首先、在我的 hdwr_Init ()函数调用中调用 TivaWare 函数 IntPriorityGroupingSet (2);(我需要有2个子组)
    其次、按照器件数据表的表3-9中的指南、在每个 Hwi 实例(XDC 工具)中定义优先级。

    此外、只要有可能、我也可以利用基于异常号的固有中断优先级 中断的中断。 (如器件数据表的表2-9中定义)。 该行为类似于同一子组中的中断(如果它们处于同一优先级组中)。

    我希望我的理解是正确的。


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

    您好 Pranav、

    该函数有点令人困惑。 尝试:

    内部权限组集(NVIC_APINT_PRIGROUP_2_6); 

    查看 APINT 寄存器的定义、我们需要在位10:8中添加一个101b。

    #define NVIC_APINT_PRIGROUP_2_6 0x00000500 //优先级组2.6拆分
    

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