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/TMS320F28075:TI-RTOS 是否以隐式方式禁用 RTOS 代码任何关键段的中断?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/721862/rtos-tms320f28075-does-ti-rtos-implicitly-disables-interrupt-for-any-critical-section-of-rtos-code

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

工具/软件:TI-RTOS

我  在我的应用中使用 TMS320F28075和 TI-RTOS (版本2.16.1.14)。 我正在使用具有最高优先级的异位中断。 在我的测试过程中,我看到有时我缺少捕捉中断。

那么、TI-RTOS 是否在代码的任何关键段期间禁用中断? 如果是,那么中断被禁用的时间是多少?

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

    TI-RTOS 确实会在短时间内禁用中断。 您可以在 SYS/BIOS 发行说明中检查基准测试 、以了解这可能导致的最大中断延迟。

    您是否曾尝试将 SYS/BIOS 之外的 eCAP 中断插入为最小延迟中断:

    http://processors.wiki.ti.com/index.php/SYS/BIOS_for_the_28x#Minimal_Latency_Interrupts

    惠特尼

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

    尊敬的惠特尼:

    感谢您的回复。 我阅读了您提到的"最小延迟"注意事项。 还尝试使用"Zero Latency IER mask"字段将 ecapture 中断插入 SYSBIOS 外部。  但是、在编译时、我得到错误"Hwi 56与 IER 掩码0x8"冲突"。

    下面的注释也在 "最小延迟"一文中提到

    注意: 我们建议您仅在组中的所有中断都执行非 SYS/BIOS 中断处理程序时使用 zeroLatencyIERMask

    这意味着什么?

    这也意味着、我必须通过 在应用程序中写入一些代码来管理针对 ecapture 中断的寄存器保存和恢复 、而不是使用 SYS/BIOS 中断分配。

    请告诉我如何处理此问题。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否仍在为中断创建一个 Hwi? 我认为、如果您插入零延迟、则无需创建零延迟、因此我怀疑这是错误的来源。

    你不是创建一个 Hwi、而是使用 Hwi_plug ()来指定要调用的 ISR 来代替调度程序。 如果在 ISR 上使用_interrupt 关键字、编译器应生成必要的保存和恢复。

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

    尊敬的惠特尼:

    我使用 了 Hwi_plug、代码工作正常。 谢谢。

    正如您所说的、TI-RTOS 在很短的时间内禁用中断。 那么、RTOS 禁用中断的最长时间是多少?  

    中断禁用时间是否与 最大中断延迟时间(对于 TMS320F280x 系列为172个周期)相对应?