头文件:task.h
portBASE_TYPE xTaskCreate ( pdTASK_CODE pvTaskCode, //指向任务的实现函数的指针。效果上仅仅是函数名
const portCHAR * const pcNane, //具有描述性的任务名。FreeRTOS 不会使用它。
unsigned portSHORT usStackDepth, //指定任务堆栈的大小
void *pvParameters, //指针用于作为一个参数传向创建的任务
unsigned portBASE_TYPE uxPriority, 任务运行时的优先级
xTaskHandle *pvCreatedTask //用于传递任务的句柄,可以引用从而对任务进行其他操作。
)
说明: 1. 这里的任务是指一个永远不会退出的C 函数,通常是一个死循环。
2. pcNane 其只是单纯地用于辅助调试。应用程序可以通过定义常量 config_MAX_TASK_NAME_LEN 来定义任务名的最大长度——包括’\0’结束符。如果传入的 字符串长度超过了这个最大值,字符串将会自动被截断
3. usStackDepth 这个值指定的是栈空间可以保存多少个字(word),而不是多少个字节(byte)。栈空间 大小为usStackDepth*4(bytes)。
4. uxPriority 优先级的取值范围可以从最低优先级0 到最高优先级(configMAX_PRIORITIES–1)。
返回: 1. pdPASS 表明任务创建成功,准备运行。
2. errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY 由于内存堆空间不足,FreeRTOS 无法分配 足够的空间来保存任务结构数据和任务栈,因此无法创建任务。
来源:https://www.cnblogs.com/zhangkai163/p/5058780.html