1、常规启动流程
2、任务创建 常用--动态创建
任务删除
3、信号量
说明:信号量通常用于规避一些资源(比如 UART、DMA、FLASH...)在不同进程时同时调用造成的冲突;比如 TASK_A 正在调用 UART,此时 TASK_B 又来调用 UART,导致串口冲突了
3.1 二值信号量
说明:二值信号量先 take 先得,take 后要 give 给其他任务用
3.2 计数信号量
说明:即表示一个资源可以给多个任务同时使用,但是有数量限制
3.3 互斥信号量
说明:在“高任务”等待“低任务”的互斥信号量时,会暂时先把“低任务”临时提升到和“高任务”同等级,在获取完互斥信号量后,“低任务”等级恢复原来的低等级,避免任务优先级翻转
4、事件组
说明:事件组即类似常用的全局变量 bit0 ~ bitx 的标志位,标志“某个事件”or“一系列事件”发生的标志
5、队列
说明:任务之间通过队列交互信息数据
5.1 交互一个结构体的项数据
5.2 交互字节流
6、任务通知
说明:用于任务A 通知 任务B,任务B可以去做xxx操作了
相比于事件组,任务通知的效率性能更快,而且可以直接在中断中调用
7、应用说明
1、当某个“资源”,特别是外设接口,比如 Uart串口发送、读写Flash等资源,不允许多个同时调用时,通过信号量来管理资源的使用权----获取、释放——使用信号量
2、当任务之间有数据交互,通常有一定字节数,比如交互通信报文数据——使用队列
3、当需要通知速度较快,有性能要求时,任务A在xxx情况下,通知任务B可以执行xxx操作了,只能针对单一条件去通知——使用任务通知
4、当某个任务需要等待一个或多个条件,才能够进行xxx操作时,比如任务A需要等待任务B去置位bit0、bit1、...bitx时才能进行xxx操作——使用事件组