ucosucos的消息是指什么

ucos  时间:2021-07-22  阅读:()

ucos的消息是指什么

ucos消息队列的使用 一、消息队列的使用 1、 需在以下文件中配置如下内容 OS_CFG.H OS_MAX_QS N 你需要的值 根据需要自己配置 #define OS_Q_EN 1 /* Enable (1) or Disable (0) code generation for QUEUES */ #define OS_Q_ACCEPT_EN 1 /* Include code for ept() */ #define OS_Q_DEL_EN 1 /* Include code for OSQDel() */ #define OS_Q_FLUSH_EN 1 /* Include code for OSQFlush() */ #define OS_Q_POST_EN 1 /* Include code for OSQPost() */ #define OS_Q_POST_FRONT_EN 1 /* Include code for OSQPostFront() */ #define OS_Q_POST_OPT_EN 1 /* Include code for OSQPostOpt() */ #define OS_Q_QUERY_EN 1 /* Include code for OSQQuery() */ 2、 建立一个指向消息数组的指针和数组的大小,该指针数组必须申明为void类型,如下: void *MyArrayOfMsg[SIZE]; 3、 声明一个OS_EVENT类型的指针指向生成的队列,如下: OS_EVENT *QSem; 4、 调用OSQcreate()函数创建消息队列,如下: QSem = OSQcreate(&MyArrayOfMsg[0],SIZE); 5、 等待消息队列中的消息,OSQPend()。

void *OSQPend (OS_EVENT *pevent, INT16U timeout, INT8U *err): 必须保证消息队列已经被建立。

timeout定义的是等待超时时间,如果为0则表示无期限的等待 err表示的是在等待消息队列出错时的返回类型,有以下几种: OS_ERR_PEVENT_NULL //消息队列不存在 OS_ERR_EVENT_TYPE OS_TIMEOUT //消息队列等待超时 OS_NO_ERR //消息队列接收到消息 获得消息队列示例 type *GETQ; INT8U err; GETQ = (type *)OSQPend(QSem, time, &err); if(err == OS_NO_ERR){ 无错处理 } else{ 出错处理 } 6.1 向消息队列发送一则消息(FIFO),OSQPost(); INT8U OSQPost (OS_EVENT *pevent, void *msg): 函数返回值有: OS_ERR_PEVENT_NULL OS_ERR_POST_NULL_PTR OS_ERR_EVENT_TYPE OS_Q_FULL OS_NO_ERR 参数:pevent,*msg 6.2 向消息队列发送一则消息(LIFO) INT8U OSQPostFront (OS_EVENT *pevent, void *msg) 6.3 向消息队列发送一则消息(LIFO或者FIFO) INT8U OSQPostOpt (OS_EVENT *pevent, void *msg, INT8U opt) 参数: opt 如果经opt参数中的OS_POST_OPT_BROADCAST位置为1,则所有正在等待消息的任务都能接收到这则消息,并且被OS_EventTaskRdy()从等待列表中删除 如果不是广播方式,则只有等待消息的任务中优先级最高的任务能够进入就绪态。

然后,OS_EventTaskRdy()从等待列表中把等待消息的任务中优先级最高的任务删除。

注: 如果此函数由ISR调用,则不会发生任务切换,直到中断嵌套的最外层中断服务子程序调用OSIntExit()函数时,才能进行任务切换 7、 无等待的从消息队列中获得消息,ept(); void *ept (OS_EVENT *pevent, INT8U *err) err可能的返回值: OS_ERR_PEVENT_NULL OS_Q_EMPTY OS_NO_ERR 函数的返回值:消息,0 8、 清空消息队列 INT8U OSQFlush (OS_EVENT *pevent) 函数返回值: OS_ERR_PEVENT_NULL OS_ERR_EVENT_TYPE OS_NO_ERR 9、 获取消息队列的状态,OSQQuery(); INT8U OSQQuery (OS_EVENT *pevent, OS_Q_DATA *p_q_data) 函数返回值: OS_ERR_PEVENT_NULL OS_ERR_EVENT_TYPE OS_NO_ERR OS_Q_DATA数据结构在ucos_ii.h中

江苏云服务器 2H2G 20M 79元/月 大宽带159元/月 高性能挂机宝6元/月 香港CN2 GIA、美国200G防御 CN2 GIA 折后18元/月 御速云

介绍:御速云成立于2021年的国人商家,深圳市御速信息技术有限公司旗下品牌,为您提供安全可靠的弹性计算服务,随着业务需求的变化,您可以实时扩展或缩减计算资源,使用弹性云计算可以极大降低您的软硬件采购成本,简化IT运维工作。主要从事VPS、虚拟主机、CDN等云计算产品业务,适合建站、新手上车的值得选择,拥有华东江苏、华东山东等国内优质云产品;香港三网直连(电信CN2GIA联通移动CN2直连);美国高...

傲游主机38.4元起,韩国CN2/荷兰VPS全场8折vps香港高防

傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...

香港 E5-2650 16G 10M 900元首月 美国 E5-2660 V2 16G 100M 688元/月 华纳云

华纳云双11钜惠出海:CN2海外物理服务器终身价688元/月,香港/美国机房,免费送20G DDos防御,50M CN2或100M国际带宽可选,(文内附带测评)华纳云作为一家专业的全球数据中心基础服务提供商,总部在香港,拥有香港政府颁发的商业登记证明,APNIC 和 ARIN 会员单位。主营香港服务器、美国服务器、香港/美国OpenStack云服务器、香港高防物理服务器、美国高防服务器、香港高防I...

ucos为你推荐
windowsphone手机Windows Phone 手机有哪些物联卡官网移动物联卡怎么注册微信语音在哪个文件夹怎么把微信语音导出来 从哪个文件夹导出啊linux操作系统好吗linux操作系统 比 windows系统 更好吗?无法清除dns缓存无法清除dns缓存 设置好后重起又是无法清除怎么发布小程序如何发布微信小程序体验版win7旗舰版64激活码求WIN7,64位系统旗舰版激活密钥win7旗舰版64激活码win7旗舰版64位密钥暗黑三试玩暗黑3账号变试玩账号超级快递百度云超级快递在哪里下载完整的,知道的告诉下
北京租服务器 国外vps主机 金万维动态域名 电信测速器 la域名 permitrootlogin godaddy域名优惠码 100m空间 国外免费asp空间 怎么建立邮箱 江苏双线服务器 什么是web服务器 睿云 沈阳idc 美国十大啦 web服务器 comodo paypal兑换 vim命令 g6950 更多