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.

[参考译文] TMS320F28335:SYS/BIOS:常规 Hwi 与特定于器件的 Hwi

Guru**** 2538930 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1126466/tms320f28335-sys-bios-general-hwi-vs-device-specific-hwi

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

您好!

我正在尝试确定是使用 Gernal Hwi 还是使用特定于硬件的 Hwi。

我注意到 常规 Hwi 和特定于器件的 Hwi 之间存在以下差异:
1、 通用 Hwi 允许指定中断优先级、而特定于器件的 Hwi 不允许指定中断优先级

2. 特定于器件的 Hwi 允许指定中断禁用和恢复掩码、而通用 Hwi 不允许指定中断禁用和恢复掩码。  

这是否意味着:

1.如果要允许嵌套、应使用特定于器件的 Hwi?

2.如果您不关心中断嵌套并且想要覆盖硬件中断优先级、应该使用常规 Hwi?

此外、常规和特定于硬件的 Hwi 之间的时序基准测试是否有差异?

此外、如果你想在从 Hwi 返回后重新启用所有中断、恢复掩码应该为0xFFFF?

谢谢

斯蒂芬

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

    是的、这是对差异的良好理解。 如果您想使用诸如嵌套等特定于器件的特性和诸如 Hwi_enablePIEIER ()的函数、您应该使用 ti.sysbios.family.c28.Hwi 模块。

    [引用 userid="118414" URL"~/support/microsystems/c2000-microsystems-group/C2000/f/c2000-microsystems-forum/1126466/TMS320F28335-sys-general-hwi-vs-device-specific hwi"]此外、General 和 Hardware Specific Hwi 之间的计时基准是否存在任何差异?

    我不确定记录 的基准测试 使用的代码版本、但是的、我希望添加 IER 屏蔽、以支持嵌套中断或零延迟中断、与没有它的代码相比、这需要增加几个周期。

    [引用 userid="118414" URL"~/support/microsystems/c2000-microdevice-group/C2000/f/c2000-microdevice-forum/1126466/TMS320F28335-sys-general-hwi-vs-device-specific hwi"]此外、如果您想从引用的 Hwi/hwi"返回后重新启用所有中断、恢复掩码是否应为0xFFFF?]

    它将重新启用在函数调用之前启用的所有中断。 基本上、在调用 Hwi 函数之前、Hwi 调度程序会备份 IER 的前一个值、然后在返回 IER 后、它会像 IER |=(hwi->restoreMask & oldIER)那样恢复 IER;

    如果您想知道某些代码的外观、可以查看 C:\ti\BIOS_6_83_00_18\packages/ti\SysBIOS\family\c28\Hwi.c。

    惠特尼