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.

[参考译文] TMS320F28384D:在使用零延迟和 HWI 调度程序中断时嵌套中断

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1476006/tms320f28384d-nesting-interrupts-when-using-zero-latency-and-hwi-dispatcher-interrupts

器件型号:TMS320F28384D
Thread 中讨论的其他器件:SYSBIOS

工具与软件:

我当前使用 TIRTOS。 我在系统中有多个 HWI、并正在考虑添加一个零延迟 ISR。 我正在使用 Hwi_Params、其中 maskSetting = Hwi_bit261_mask、并且  在使用 Hwi_Masking 调度程序时、为 Hwi_Params disableMASK/restoreMask 提供掩码、以便根据优先级嵌套中断。

我可以对零延迟中断执行类似的操作、但手动更改中断函数内关联的 IER 吗? 请参阅以下代码:

中断 void Zero_Latency ( void )  

//设置中断优先级:
Volatile UINT16 TempPIEIER = PieCtrlRegs.PIEIER1.all;
IER |= M_INT1;
IER &= MINT1;//设置"全局"优先级


PieCtrlRegs.PIEACK.all = 0xFFFF;// Enable PIE interrupts
ASM " CLRC INTM"

//[在此插入 ISR 代码]

//恢复寄存器已保存:
ASM " SETC INTM"


PieCtrlRegs.PIEIER1.all = TempPIEIER;
}

我的目标是能够使用 HWI 调度程序下的 PIE 和零延迟中断来添加零延迟、同时保持硬件组优先级嵌套不变。  

HWI 调度程序 HWI 能够根据优先级中断零延迟中断、反之亦然?

谢谢

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

    这个常见问题解答中有一句话 是、"你可以将一个位掩码传递给 Hwi.zeroLatencyIERMask 属性、以识别不应被[通过 SYSBIOS]禁用的中断、这让我认为、当嵌套被启用时、零延迟中断将保持启用状态、并且能够嵌套在 BIOS 管理的中断中。

    我想、如果您希望通过更改 PIEIER 来优先处理的零延迟组内有任何中断、那么您也许可以这样做。 但是、我不相信从零延迟中断内改变 BIOS 管理中断的 IER 或者 PIEIER 状态将不会有什么后果。

    如果您想查看如何实现嵌套模式和零延迟模式、C28器件的 Hwi 代码位于下面的文件夹中。

    C:\ti\BIOS_6_83_00_18\packages\ti\sysbios\family\c28

    惠特尼