支持前导0指令的CPU
configUSE_PORT_OPTIMISED_TASK_SELECTION 设置为 1
考虑到 RAM 的消耗,宏 configMAX_PRIORITIES 最好设置为一
个满足应用的最小值
RTOS最高优先级configMAX_PRIORITIES-1
configUSE_TIME_SLICING 定义为 1 多个任务可以共用一个优先级,数量不限
处于就绪态的优先级相同的任务就会使用时间片轮转调度器获取运行时间
创建任务:
1 xTaskCreate()或 xTaskCreateStatic()
如果一定要从任务函数中退出, vTaskDelete(NULL)来删除此任务
从任务函数中返回或退出的话就会调用configASSERT(),必须定义
configASSERT()
2 不一定要用延时函数,主要是要用任务切换API函数就可以
如:请求信号量、队列等,甚至直接调用任务调度器,延时最常用
3 任务控制块,存储任务的属性
TCB_t (新版) tskTCB(旧版)
使用函数 xTaskCreate()创建任务的时候就会自动的给每个任务分配
一个任务控制块
根据某些宏决定哪些需要编译,与裁剪有关
4 任务堆栈
任务切换保存现场用
创建任务的时候需要给任务指定堆栈
使用的函数 xTaskCreate()创建任务(动态方法)xTaskCreate()自动创建
任务堆栈
xTaskCreateStatic()创建任务(静态方法)手动定义任务堆栈,堆栈首地址
作为参数传给函数参数puxStackBuffer
StackType_t 堆栈大小数据类型,是uint32_t,堆栈实际大写是定义大小
的4倍
时间: 2024-11-10 00:52:03