如何在 FreeRTOS 任务中使用函数

How to use Functions in FreeRTOS Tasks

我想知道如何使用我将在 FreeRTOS 中实现的功能。
示例:如果我想创建任何像 calculateTotal 这样的两个值的函数(只是一个例子),我如何将它与任务一起使用?我应该防止在 Tasks 之外使用函数,而是在 Task 中编写所有函数的纯代码吗?有人可以帮我吗?

void randomTask(void* param) {
    //initialize something

    for(;;){

    //can i call functions here and define them outside?
    
    }
}

是的,您可以在外部定义函数并从任务中调用它们。这些函数在调用任务的上下文中执行,它们使用为任务分配的堆栈内存。

您也可以从不同的任务调用相同的函数,只要它们是无状态的。如果函数不使用全局变量和静态局部变量,则它是无状态的。当然,你可以提供一个状态(上下文)作为函数参数。