SIEMENS河北省保定市 西门子代理商——西门子华北一级总代理

更新:2024-07-02 07:00 发布者IP:120.237.217.245 浏览:0次
发布企业
广东湘恒智能科技有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
1
主体名称:
广东湘恒智能科技有限公司
组织机构代码:
91441304MAC3TWY11U
报价
请来电询价
西门子总代理
PLC
西门子一级代
驱动
西门子代理商
伺服电机
关键词
PLC,变频器,代理商,一级代理,伺服电机
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房
联系电话
15903418770
手机
15915421161
联系人
张经理  请说明来自顺企网,优惠更多
请卖家联系我
15915421161

产品详细介绍

22消息队列创建

2.1 消息队列控制块

来看一下消息队列控制块(结构体)的结构组成:

FreeRTOS的消息队列控制块由多个元素组成,当消息队列被创建时,系统会为控制块分配对应的内存空间,用于保存消息队列的一些信息如消息的存储位置,头指针pcHead、尾指针pcTail、消息大小uxItemSize以及队列长度uxLength等。

每个消息队列都与消息空间在同一段连续的内存空间中,在创建成功的时候,这些内存就被占用了,只有删除了消息队列的时候,这段内存才会被释放掉,创建成功的时候就已经分配好每个消息空间与消息队列的容量,无法更改,每个消息空间可以存放不大于消息大小uxItemSize的任意类型的数据,所有消息队列中的消息空间总数即是消息队列的长度,这个长度可在消息队列创建时指定。


typedef struct { int8_t *pcHead; /* 指向队列消息存储区起始位置,即第一个消息空间 */ int8_t *pcTail; /* 指向队列消息存储区结束位置地址。一旦分配的字节超过了存储队列项的需要,就将其用作一个标记 */ int8_t *pcWriteTo; /* 指向队列消息存储区下一个可以写入消息的位置*/
union /* 使用联合体用来确保两个互斥的结构体成员不会同时出现 */ { int8_t *pcReadFrom; /* 当结构体用于队列时,pcReadFrom指向出队消息空间的Zui后一个 */ UBaseType_t uxRecursiveCallCount;/* 当结构体用于互斥量时,uxRecursiveCallCount用于计数,记录递归互斥量被“调用”的次数 */ } u;
List_t xTasksWaitingToSend; /* 一个发送消息的阻塞列表,用于保存阻塞在此队列的任务,任务按照优先级进行排序,由于队列已满,想要发送消息的任务无法发送消息 */ List_t xTasksWaitingToReceive; /* 一个获取消息的阻塞列表,用于保存阻塞在此队列的任务,任务按照优先级进行排序,由于队列是空的,想要获取消息的任务无法获取到消息 */
volatile UBaseType_t uxMessagesWaiting;/* 记录当前消息队列的消息个数,如果消息队列被用于信号量的时候,这个值就表示有效信号量个数*/ UBaseType_t uxLength; /* 队列的长度,也就是能存放多少消息 */ UBaseType_t uxItemSize; /* 单个消息的大小 */
volatile int8_t cRxLock; /* 队列上锁后,储存从队列收到的列表项数目,也就是出队的数量,如果队列没有上锁,设置为 */ volatile int8_t cTxLock; /* 队列上锁后,储存发送到队列的列表项数目,也就是入队的数量,如果队列没有上锁,设置为 */
#if( ( configSUPPORT_STATIC_ALLOCATION == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) uint8_t ucStaticallyAllocated; /* 如果队列使用的内存是静态分配的,以确保不会尝试释放内存,则设置为pdTRUE */ #endif
#if ( configUSE_ == 1 ) struct *px; /* 队列集 */ #endif
#if ( configUSE_TRACE_FACILITY == 1 ) UBaseType_t ux; uint8_t uc; /* 队列的类型(用途) */ #endif
} xQUEUE;
/* 旧版本的FreeRTOS使用xQUEUE,新版本使用代替*/typedef xQUEUE ;

队列的类型定义:








#define ASE ( ( uint8_t ) 0U ) /* 基础的队列 */#define ET ( ( uint8_t ) 0U )#define UTEX ( ( uint8_t ) 1U ) /* 互斥信号量 */#define OUNTING_SEMAPHORE( ( uint8_t ) 2U ) /* 计数信号量 */#define INARY_SEMAPHORE( ( uint8_t ) 3U ) /* 二值信号量 */#define ECURSIVE_MUTEX ( ( uint8_t ) 4U ) /* 递归互斥信号量 */

ASE即基本的消息队列,另外,信号量机制也是通过队列实现的,因此当用于互斥信号量,二值信号量等时,会标记对于的队列类型。


所属分类:中国电工电气网 / PLC
SIEMENS河北省保定市 西门子代理商——西门子华北一级总代理的文档下载: PDF DOC TXT
关于广东湘恒智能科技有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2022年11月17日
主营产品西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
公司简介广东湘恒智能科技有限公司主要从事工业自动化产品的集成,销售与维修。致力于为您提供在机械、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。公司本着“以人矢志创新、追求卓越”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成、销售,拥有丰富的自动为本、科技先导、化产品的应用和实 ...
公司新闻
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112