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中

gcorelabs:CDN业务节点分布100多个国家地区,免费版提供1T/月流量

卢森堡商家gcorelabs是个全球数据中心集大成的运营者,不但提供超过32个数据中心的VPS、13个数据中心的cloud(云服务器)、超过44个数据中心的独立服务器,还提供超过100个数据中心节点的CDN业务。CDN的总带宽容量超过50Tbps,支持免费测试! Gcorelabs根据业务分,有2套后台,分别是: CDN、流媒体平台、DDoS高防业务、块存储、cloud云服务器、裸金属服务器...

美得云(20元)香港特价将军澳CTG+CN2云服务器

美得云成立于2021年,是一家云产品管理服务商(cloud)专业提供云计算服务、DDOS防护、网络安全服务、国内海外数据中心托管租用等业务、20000+用户的选择,43800+小时稳定运行香港特价将军澳CTG+CN2云服务器、采用高端CPU 优质CN2路线 SDD硬盘。香港CTG+CN22核2G3M20G数据盘25元点击购买香港CTG+CN2​2核2G5M30G数据盘39元点击购买香港CTG+CN...

JustHost俄罗斯VPS有HDD、SSD、NVMe SSD,不限流量低至约9.6元/月

justhost怎么样?justhost服务器好不好?JustHost是一家成立于2006年的俄罗斯服务器提供商,支持支付宝付款,服务器价格便宜,200Mbps大带宽不限流量,支持免费更换5次IP,支持控制面板自由切换机房,目前JustHost有俄罗斯6个机房可以自由切换选择,最重要的还是价格真的特别便宜,最低只需要87卢布/月,约8.5元/月起!总体来说,性价比很高,性价比不错,有需要的朋友可以...

ucos为你推荐
达内学院成都达内学校在什么地方?淘气鸟松鸦是否会说话?呼叫中心搭建如何建立适合自己的呼叫中心创业好项目论坛现在挣钱太难了、大家有什么好项目催收软件哪个好问下催款人爆通讯录是电话通讯录还是微信上的通讯录或者其它软件的通讯录1518qq几开头的QQ号好cf服务器爆满为什么穿越火线显示该服务器已爆满怎么才能挤进去?nero教程如何使用NERO刻碟prepare的用法prepare和prepare for的区别魔兽世界密保卡怎么取消WOW密保卡
免费域名注册 西安服务器租用 tier l5520 老左博客 debian7 789电视 双11秒杀 drupal安装 四川电信商城 学生服务器 电信主机托管 美国主机侦探 phpinfo sonya 标准机柜 卡巴下载 paypal兑换 web服务器软件 深圳安居房申请网站 更多