freeRTOS学习二
临界段,用一句话概括就是一段在执行时不能被中断的代码段。
临界段被打断的情况,一个是系统调度,还有一个就是外部中断。
对临界段的保护就是对中断的开和关。
空闲任务与阻塞延时
xTicksToDelay是任务控制块的一个成员,用于记录任务需要延时的时间,单位为SysTick的中断周期。
多优先级
FreeRTOS中,数字优先级越小,逻辑优先级也越小。
空闲任务的优先级最低,为0。空闲任务一直处于就绪状态。
就绪列表是一个数组,里面存储的是就绪任务的TCB中的xStateListItem节点。
创建任务时,会根据任务的优先级将任务插入到就绪列表不同的位置。相同的优先级会插入就绪列表的同一链表中。
任务延时列表
当任务需要延时时,则先将任务挂起,即先将任务从就绪列表中删除,然后插入任务延时列表,同时更新下一个任务的解锁时刻变量xNextTaskUnblockTime的值,xNextTaskUnblockTime = xTickCount (系统时基计数器)+ xTicksToDelay。
动态创建任务