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.

[参考译文] CC3235SF:如何在官方例程中使用 FreeRTOS 提供的 API 函数?

Guru**** 2560390 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1066445/cc3235sf-how-to-use-api-functions-provided-by-freertos-in-official-routines

部件号:CC3235SF

您好,

我创建了一个任务作为例程,但当我想使用 FreeRTOS 中的 API 函数时,它们的参数需要在创建任务时返回任务句柄,但该例程创建了任务,并且没有返回相关的任务句柄。 我该怎么做? 请告诉我解决方案。

例如,以下 API 函数的第一个参数,如何传递任务句柄?

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

    您好,吴

    我将在本周晚些时候跟进。

    谢谢,
    雅各布

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

    你好,Jacob,

    请尽快提供解决方案。

    谢谢。

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

    您好,吴

    我相信您可以使用 xTaskCreate 返回任务句柄。   您可以在这个用于 xTaskCreate 的 FreeRTOS 文档页面上找到更多信息。 但是,我认为您应该确保使用 在您的程序中创建的相同任务句柄。 哪个例程创建了您所指的任务句柄?  

    谢谢,
    雅各布

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

    你好,Jacob,

    但例程使用 retc = pthread_create (&thread,&pAttrs,mainThread,NULL)创建任务;
    这不会返回任务句柄。 我根据例行程序创建任务。

    谢谢。

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

    您好,

    POSIX API 返回 pthread_t *newthread 的任务句柄,该文件是一个结构 pthread_Obj,其中是 TaskHandle_t freeRTOSTask。

    1月

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

    您好,

    如果我按照例程创建任务,如这样,retc = pthread_create(&thread0,&atts, slaveThread, 空);

    我应该如何传递 FreeRTOS 的第一个参数以及如何传递创建的任务句柄?

    void vTaskNotifyGiveFromISR( TaskHandle_t xTaskToNotify,

                             basetype_t *pxHigherPriorityTaskWoken );

    谢谢。

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

    您好,吴

    thread0->freeRTOSTask

    有关详细信息,请参见 SDK (\sources\ti\POSIX\FreeRTOS\pthread.c)中的 POSIX 实现。 从该代码可以很明显地看出它的工作原理。

    1月

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

    您好,

    为什么我会像您所说的那样将 thread0 -> freeRTOSTask 佩戴到 vTaskDelete(),但编译期间报告了错误? 如何通过此任务处理?

    pthread_create (&thread0,&atts,imuThread,NULL);

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

    您好,吴

    您知道运营商“.”和“-->”之间有何区别吗? 如果没有,请在互联网上搜索一些描述C 语言指针如何工作的课程。 描述 C 语言的基本结构超出了本论坛的范围。

    1月

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

    你好,Jan,

    如果我想通过 pthread_ create (&thread0,&atts,imutread,NULL)删除;我应该调用哪个 API 函数来实现创建的任务? void ptthread_ exit (void * retval)函数吗? 如果是,我应该如何传递创建的任务句柄?

    谢谢。

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

    您好,

    这取决于需要删除线程的上下文。 API pthread_exit()用于从调用线程中删除,因此您无需将句柄传递到 API 中。 另一方面,如果要从其他上下文终止任务,则应使用 pthread_cancel()

    1月

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

    您好,

    如果由 xStreamBufferSenFromISR()函数创建的缓冲区已满,数据在有空间时是否会被直接丢弃或放入?

    xStreamBufferSendFromISR( xStreamBuffer, ads129x_Cache2,48,&xHigherPriorityTaskWoked);

    谢谢。

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

    您好,

    请将您的问题转发至 FreeRTOS 论坛。 本论坛不打算为 FreeRTOS 本身提供支持。

    1月