队列结构体-鲁棒控制——线性矩阵不等式处理方法 俞立 文字版 非扫描版
13.2 队列结构体 有一个结构体用于描述队列,叫做 Queue_t,这个结构体在文件 queue.c 中定义如下: typedef struct QueueDefinition { int8_t *pcHead; //指向队列存储区开始地址。 int8_t *pcTail; //指向队列存储区最后一个字节。 int8_t *pcWriteTo; //指向存储区中下一个空闲区域。 union { int8_t *pcReadFrom; //当用作队列的时候指向最后一个出队的队列项首地址 UBaseType_t uxRecursiveCallCount;//当用作递归互斥量的时候用来记录递归互斥量被 //调用的次数。 } u; List_t xTasksWaitingToSend; //等待发送任务列表,那些因为队列满导致入队失败而进 //入阻塞态的任务就会挂到此列表上。 List_t xTasksWaitingToReceive; //等待接收任务列表,那些因为队列空导致出队失败而进 //入阻塞态的任务就会挂到此列表上。 volatile UBaseType_t uxMessagesWaiting; //队列中当前队列项数量,也就是消息数 UBaseType_t uxLength; //创建队列时指定的队列长度,也就是队列中最大允许的 //队列项(消息)数量 UBaseType_t uxItemSize; //创建队列时指定的每个队列项(消息)最大长度,单位字节 volatile int8_t cRxLock; //当队列上锁以后用来统计从队列中接收到的队列项数 //量,也就是出队的队列项数量,当队列没有上锁的话此字 //段为 queueUNLOCKED volatile int8_t cTxLock; //当队列上锁以后用来统计发送到队列中的队列项数量, //也就是入队的队列项数量,当队列没有上锁的话此字 //段为 queueUNLOCKED #if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) &&\ ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) uint8_t ucStaticallyAllocated; //如果使用静态存储的话此字段设置为 pdTURE。 #endif
- 粉丝: 32
- 资源: 4196
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助