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/OMAP-L138:DSP 线程如何切换、在 TI-RTOS 中它依赖于什么原理?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/660213/rtos-omap-l138-how-does-dsp-thread-switch-and-what-principle-it-depend-on-in-ti-rtos

器件型号:OMAP-L138

工具/软件:TI-RTOS

您好!

我在 DSP 中创建了两个线程、在 ARM 中创建了 MessageQ、它只从一个线程中打印信息。  我发现它一直只运行一个线程、而没有开关。  

我如何才能算出这一点?

软件:TI-RTOS-4.1、 xdctools_3_32_01_22_core

谢谢、

卢森黑

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

    通常、您可以使用同步模块(例如信标、邮箱、事件等)和任务优先级、以便 TI RTOS 内核可以管理任务切换和抢占(如果有)。

    当一个任务被一个更高优先级的任务抢先时、被抢先的任务被有效地放置在其就绪队列的_FRONT_上。 它将在具有相同优先级的任何其他线程之前运行。 在第一个任务阻断对 Semaphore_pend()或 Task_sleep()或某些这样的调用之前、与该任务具有相同优先级的任务将不会运行。

    这一点很重要、因为您可以将线程优先级用作廉价的互斥量。 2个具有相同优先级的线程可以共享一个资源(例如一些暂存存储器或一些其他资源)、而无需担心另一个线程。 另一个线程的唯一运行方式是第一个线程阻止。

    有关 TI RTOS 内核的更多信息、请访问:
    processors.wiki.ti.com/.../Processor_SDK_RTOS_Software_Developer_Guide
    -> processors.wiki.ti.com/index.php

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