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/TMDXICE110:重新启动任务

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/679291/rtos-tmdxice110-restarting-task

器件型号:TMDXICE110

工具/软件:TI-RTOS

你好。

我创建了一个测试项目并编写了几个测试任务。 任务已成功启动并已将消息发送到控制台。 在 ROV 中、我看到任务在成功执行后被终止。

如何重新启动已完成的任务? 有什么方法可以做到这一点吗?

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

    如果您让任务"退出"(例如、任务函数调用返回)、或者如果您在该线程上调用 Task_exit、则任务将被终止。 "重新启动"的唯一方法是再次为该任务调用 Task_create (或 Task_construction")。

    通常、任务有一个大的 while 循环来等待处理的内容。 常见的阻塞机制包括在数据就绪时中断发布的信标上挂起、调用 Mailbox_pend 等待另一个线程的消息、Task_sleep 持续一段时间等等。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我创建任务时、是创建了相同的任务、还是创建了具有不同变量的另一个任务?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kiselev、

    如果在 Task_create 中被分配、堆栈在 Task_delete 上被释放。 调用 Task_create 时、任务假定堆栈内容无效。 所以所有的当地人都被淘汰了。 请注意、局部静态变量在创建/删除过程中是持久的、因为它们实际上是全局变量、其作用域位于声明该变量的函数中。

    Todd