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/TMDSEVM6678:如何在连续创建任务时删除任务?

Guru**** 2554840 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609388/rtos-tmdsevm6678-how-to-delete-tasks-when-there-are-tasks-being-created-continuously

器件型号:TMDSEVM6678

工具/软件:TI-RTOS

我将任务用于八个内核上的连续类似过程。  每个内核动态创建三个任务、在挂钩函数中、为了退出任务、我将创建具有相同优先级的同一个任务、以便按照创建的顺序处理这三个任务。  此外,我还在 配置文件中启用了 Task_deleteTerminatedTasks 选项,以便可以为较新的任务释放内存。  但是、由于内核从未完成空闲任务、因此终止的任务似乎永远不会被删除。  我找不到解决方案来删除终止任务的时间和地点。  有人对如何实现这一点有任何想法吗?

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

    我已通知软件团队。 他们的反馈将在此处发布。

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

    请查看此处有关 TI RTOS E2E 主题的讨论、该主题涉及相同的主题。
    e2e.ti.com/.../263423

    您需要添加阻止条件、以便在您提到所有任务都已完成执行时、允许空闲任务至少运行。

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

    感谢 Rahul 的答复。

    那么、您是说我应该以某种方式调用一个空闲函数吗?  然后、当任务准备好执行时、它是否会自动从空闲状态中恢复?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、这是我的建议。 空闲任务是最低优先级的任务、因此、只要任何其他任务准备好执行、TI RTOS 调度程序就会由于抢先式操作模式而使内核脱离空闲状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常好、谢谢! 我刚刚在我的出口挂钩函数中添加了函数 idle_run(),它的工作方式非常完美。 但是、运行大约需要2700个周期。 不确定删除任务的周期数是否正确、以及是否有方法将其最小化!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您确认问题已得到解决。 到达 IDLE 所需的时间取决于系统中运行的较高优先级线程的数量以及 Idle_run()何时被调用。 您还可以查看系统分析器、以查看在给定的时间实例中系统中运行的其他内容。