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.

[参考译文] CC1352P:TI RTOS -从另一个任务调用一个任务函数

Guru**** 2486625 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1182452/cc1352p-ti-rtos---calling-a-tasks-function-from-another-task

器件型号:CC1352P

如果我从分散的任务环境中调用函数的任务、会发生什么情况?  

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

    这取决于它是否可重入。 如果所有数据都是基于堆栈的、则应该是可以的。 请注意、如果它像信标或其他系统拥有的资源那样进行系统调用、情况可能会变得混乱。

    此外、不会调用"挂钩"、您必须提供参数。

    最好创建一个可以从任何位置调用的函数:

    空 myTaskFunc(UArg0、UArgarg1)

        //任务特定的内容

         已调用的 myablestuff()

    无效的已调用的 ablestuff()

       //我想从其他地方调用的东西

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

    我同意 Keith 的建议。 最好是使函数可调用、而不是在有同步风险的情况下调用整个任务。 您有责任提供函数执行所需的所有内容(所有相关参数)。

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

    问题是我的任务是使用4K (CLI 线程)调用函数、我希望它将其变量分配到具有16k 的不同堆栈上...

    我遇到崩溃、因为本地变量似乎分配到较小的任务堆栈中

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

    您能否提供一个简单的示例? 注意:您可以在设置任务时设置任务的堆栈大小。