创建消息队列 tx_qc.c

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值