四、 任务4.1 创建任务 xTaskCreate()使用动态内存的方式创建一个任务。 1. ret = xTaskCreate((TaskFunction_t) master_task_main, /* 任务入口函数 */(1)
2. “MASTER”, /* 任务名字 */(2)
3. 64*1024, /* 任务栈大小 */(3)
4. NULL, ,/* 任务入口函数参数 */(4)
5. TASK_PRIORITY_NORMAL, /* 任务的优先级 */(5)
6. &task_master_handler); /* 任务控制块指针 */(6)
创建任务就是软件运行时的一个while(1)的入口,一般阅读其他代码,找到这个函数,再跟踪到任务入口函数,学习基于freeRTOS系统的代码,首先就是找到main和这个接口。 (1):任务入口函数,即任务函数的名称,需要我们自己定义并且实现。 (2):任务名字,字符串形式,最大长度由 FreeRTOSConfig.h 中定义的 configMAX_TASK_NAME_LEN 宏指定,多余部分会被自动截掉,只是方便调试。 (3):任务堆栈大小,单位为字, 4 个字节,这个要注意,否则系统内存紧缺。 (4):任务入口函数形参,不用的时候配置为 0 或者NULL 即可。
(5) :任务的优先级,在 FreeRTOS 中,数值越大优先级越高,0 代表最低优先级。基于其SDK开发,可将自定义的所有业务功能task设为同一个优先级,按时间片轮询调度。
(6):任务控制块指针,使用动态内存的时候,任务创建函数 xTaskCreate()会返回一个指针指向任务控制块,也可以设为NULL,因为任务句柄后期可以不使用。
|