FreeRtos Queue
2018-09-25 10:42:34 0 举报
rtos
作者其他创作
大纲/内容
N
退出临界区挂起任务调度
超时等待是否溢出?
pxQueueSetContainer
uxQueueNumber
Y
prvCopyDataToQueue() 将数据保存到队列
进入临界区域
队列未满 或者 覆盖插入队列?
cTxLock
将任务插入到 xTasksWaitingToSend
是否允许阻塞等待?
恢复调度切换任务
pcTail
第二个队列项
队列存储内存区域uxLength * uxItemSize
退出临界区函数返回errQUEUE_FULL
xQueueGenericSend
ucStaticallyAllocated
第三个队列项
解锁队列函数返回errQueue_FULL
Queue 控制块
解锁队列
解锁队列恢复任务调度
xTasksWaitingToReceive
是否初始化了超时结构体?
pcWriteTo
uxItemSize
初始化超时结构体
uxLength
pcReadFrom/uxRecursiveCallCount
退出临界区域函数返回 pdPASS
xTasksWaitingToSend
uxMessagesWaiting
队列是否满?
第一个队列项
解除一个等待任务, 恢复到就绪链表;高优先级任务就绪切换任务
锁定队列
特殊分支 !互斥锁释放优先级继承切换高优先级任务
pcHead
cRxLock
.....
判断 xTasksWaitingToReceive 中是否有等待接收消息的任务?
ucQueueType
0 条评论
下一页