UINT _tx_queue_create(
//指向消息队列控制块的指针
TX_QUEUE *queue_ptr,
//指向消息队列名称的指针
CHAR *name_ptr,
//指定队列中每条消息的大小。有效的消息大小:1个字≤消息大小≤16个字
UINT message_size,
//消息队列的起始地址。 起始地址必须与 ULONG 数据类型的大小一致
VOID *queue_start,
//可用于消息队列的总字节数
ULONG queue_size);
局部变量:
流程:
1.设置消息队列控制块
(1) 将输入赋给控制块
(2) 计算消息队列可以存放多少条消息、used word为消息队列容量(字节)
message size可为1、2、4、8个32位字
(3)将消息队列的起始地址、终止地址写入控制块
(4) 将读、写指针指向消息队列起始地址
(5) 设置初始空间容量、剩余空间为capacity,当前消息个数为0
2.将消息队列加入created queue list
(1) 禁止中断 TX_DISABLE
(2) 写入queue ID
(3) 判断created queue list是否为空
1) 非空
加入list,建立连接
2) 空
加入list,指针都指向自己
(4) list count++
(5) 恢复中断 TX_RESTORE