首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
IIC Shanghai 2023
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商中心
论坛
博文
电子工程专辑
电子技术设计
国际电子商情
资料
白皮书
研讨会
芯语
文库
登录|注册
登录
最新发表
推荐阅读
明星博主
原创博文
年度排行
博文排行
博文评论
FPGA/CPLD
MCU/ 嵌入式
模拟
电源/新能源
测试测量
通信
智能手机
处理器与DSP
PCB
汽车电子
消费电子
智能硬件
物联网
软件与OS
采购与分销
供应链管理
工程师职场
EDA/ IP/ 设计与制造
无人机
机器人/ AI
医疗电子
工业电子
管理
写博文
aas7502987
修改
文章:
215
阅读:
491220
评论:
87
赞:
445
好友
私信
个人主页
文章
215
原创
0
阅读
491220
评论
87
赞
445
原创
uC/OS-II中的消息邮箱
2010-7-6 10:14
1821
2
2
分类:
MCU/ 嵌入式
最近在学习UCOS-II,为了自已方便,我把UCOS-II内核程序都做了一个注释,虽然不够完整,但对学习也是有一定帮助的,我把它放在这里,希望对大家有所帮助吧。所有的注释我会陆续放在这里的。敬请关注。
消息邮箱是uC/OS-II中的另一种通信机制,可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。通常该指针指向一个包含了“消息”的特定数据结构。
应用程序可以使用多少个邮箱,其最大数目是由OS_CFG.H文件中的配置常数OS_MAX_EVENTS设定。
任务或者中断服务子程序都可以调用函数OSMboxPost(),OSMboxPostOpt() ,而只有任务可以调用OSMboxDel()
OSMboxPend(), OSMboxQuery()。
void *OSMboxAccept (OS_EVENT *pevent)
无等待的从邮箱中得到一则消息。
OS_EVENT *OSMboxCreate (void *msg)
建立一个邮箱。
msg:用来初始化建立的消息邮箱,如果该指针不为空,则建立的消息邮箱将含有消息。
返回值:指向分配给所建立的消息邮箱的事件控制块的指针。如果没有可用的事件控制块,则返回空指针。
OS_EVENT *OSMboxDel (OS_EVENT *pevent, INT8U opt, INT8U *err)
删除一个邮箱。当将OS_CFG.H文件中的OS_MBOX_DEL_EN设为1时,该函数才会被编译。使用该函数时要注意,多个任务可能试图操作已经删除的邮箱。在删除邮箱之前,必须首先删除可能操作该邮箱的所有任务。
pevent:指向邮箱的指针。该指针是在邮箱建立时返回给用户应用程序的指针。
opt:该先项定义邮箱的删除条件,可以选择只能在已经没有任何在等待该邮箱的消息时,才能删除邮箱
(OS_DEL_NO_PEND);或者不管有没有任务在等待邮箱的消息,立即删除邮箱(OS_DEL_ALWAYS),在这种情况 下,所有等待邮箱消息的任务都会立即进入就绪态。
err:指向出错代码的指针。返回的出错代码可以是以下几种情况之一。
OS_NO_ERR 调用成功,邮箱已经被删除。
OS_ERR_DEL_ISR 试图在中断服务子程序中删除邮箱。
OS_ERR_INVALID_OPT 无效的opt参数,用户没有将opt定义为上述两种情况之一。
OS_ERR_EVENT_TYPE pevent不是指向邮箱的指针。
OS_ERR_PEVENT_NULL 已经没有OS_EVENT数据结构可以使用。
返回值:返回NULL表示邮箱已被删除;返回pevent表示邮箱没有删作,。
void *OSMboxPend (OS_EVENT *pevent, INT16U timeout, INT8U *err)
等待邮箱中的消息。
pevent:指向即将接收消息的消息邮箱的指针。
timeout:允许一个任务在经过了指定数目的时钟节拍后还没有得到需要的消息时恢复运行。如果该值为0表示任务将持续等待消息。
err:指向包含错误码的变量的指针。该函数返回的错误码可能为下述几种情况
OS_NO_ERR 消息被正确地接收。
OS_TIMEOUT 消息没有在指定的等待时间内送到。
OS_ERR_EVENT_TYPE pevent不是指向消息邮箱的指针。
OS_ERR_PEND_ISR 从中断调用该函数。
OS_ERR_PEVENT_NULL pevent是空指针。
返回值:该函数返回接收的消息并将*err置为OS_NO_ERR.
INT8U OSMboxPost (OS_EVENT *pevent, void *msg)
向邮箱发送一则消息。
pevent:指向即将接收消息的消息邮箱的指针。
msg:即将实际发送给任务的的消息。消息是一个以指针表示的苛种数据类型的变量,在不同的程序中消息的使用也可能不同。不允许传递一个空指针,国灰这意味着消息邮箱为空。
返回值:该函数的返回值为下述之一:
OS_NO_ERR 消息成功地放到消息邮箱中。
OS_MBOX_FULL 消息邮箱已经包含了其他消息,已满。
OS_ERR_EVENT_TYPE pevent不是指向消息邮箱的指针。
OS_ERR_PEVENT_NULL pevent是空指针。
OS_ERR_POST_NULL_PTR 用户试图发出空指针。根据规则,在这里不支持空指针。
INT8U OSMboxPostOpt (OS_EVENT *pevent, void *msg, INT8U opt)
向邮箱发送一则消息。该函数可以向等待邮箱的所有任务发送消息(广播)。
pevent:指向即将接收消息的消息邮箱的指针。
msg:即将实际发送给任务的消息。消息是一个以指针表示的某种数据类型的变量,在不同的程序中消息的使用也可能不同。不允许传递一个空指针,因为这意味着消息邮箱为空。
opt:定义消息只发给等待邮箱消息的任务中优先级最高的任务(将opt置为OS_POST_OPT_NONE),或者让所有等待 邮箱消息的任务都得到消息(将opt置为OS_POST_OPT_BROADCAST)。
返回值:
err 指向包含错误码的变量指针,返回的错误码可能为下述几种之一:
OS_NO_ERR 消息成功地放到消息邮箱中。
OS_MBOX_FULL 消息邮箱已经包含了其他消息,已满。
OS_ERR_EVENT_TYPE pevent不是指向消息邮箱的指针。
OS_ERR_PEVENT_NULL pevent是空指针。
OS_ERR_POST_NULL_PTR 用户试图发出空指针。根据规则,在这里不支持空指针。
INT8U OSMboxQuery (OS_EVENT *pevent, OS_MBOX_DATA *p_mbox_data)
查询一个邮箱的状态。
pevent:指向即将接收消息的消息邮箱的指针。
pdata:指向OS_MBOX_DATA数据结构的指针,该数据结构包含下述成员。
void *OSMsg; /*消息邮箱中消息的复制*/
INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; /*消息邮箱等待队列的复制*/
INT8U OSEventGrp
返回值:该函数返回值为下述之一:
OS_NO_ERR 调用成功
OS_ERR_EVENT_NULL pevent是空指针
OS_ERR_EVENT_TYPE pevent不是指向消息邮箱的指针。
点赞(
2
)
收藏
分享到:
上一篇:
μC/OS-II在C8051F上的移植
下一篇:
ucos+ucgui+触摸屏控制demo
【报名】2023 国际AIoT生态发展大会(深圳)
【直播报名】汽车半导体中的功率器件及 MEMS 器件设计
【报名】2023年STM32中国峰会暨粉丝狂欢节
【Fabless100 直播】高性能计算的AI设计挑战
文章评论
(
0
条评论)
登录
后参与讨论
您需要登录后才可以评论
登录
|
立即注册
发布
相关推荐阅读
aas7502987
2012-04-07 11:48
51/STC最小系统板资料(更新中)
图片欣赏 淘宝网址:http://item.taobao.com/auction/item_detail.htm?item_num_id=9073446988 二 程...
aas7502987
2011-10-13 22:59
YL-3 资料
YL-3数码管模块资料:YL-3 串行数码管资料.zip...
aas7502987
2011-09-24 09:10
USB转TTL小板驱动
xp系统驱动:XP系统支持STC下载的PL-2303HX新版驱动.rar WIN7系统驱动:WIN7系统支持STC下载的PL2303HX驱动.rar...
aas7502987
2011-05-24 22:48
STM32F103RBT6最小系统原理图 PCB
STM32F103RBT6最小系统板原理图 PCB 附件:做好的成品板:淘宝链接网址:http://item.taobao.com/item.htm?id=8864376956...
aas7502987
2011-05-08 12:53
YL-16 STM32F103最小系统板资料(更新中)
二 数据手册: USB协议中文版:attachment download 中文数据手册:attachment downloadSTM32选型手册:attachment downloadSTM32勘...
aas7502987
2011-03-20 13:27
DS18B20温度测量模块
DS18B20 数码管温度显示程序:...
aas7502987
修改
文章:
215
阅读:
491220
评论:
87
赞:
445
好友
私信
个人主页
文章
215
原创
0
阅读
491220
评论
87
赞
445
最新评论
更多
学习了
curton
评论博文
2023-6-5
通义听悟诞生背后,AI大模型打响应用第一枪 ...
学习了
jslrj
评论博文
2023-6-5
通过化学气相沉积工艺对改进太阳能电池的表 ...
学习了
jslrj
评论博文
2023-6-5
电子元器件知识:怎么判断真空传感器坏了? ...
最新
博文
什么是NTP服务器?NTP服务器是如何工 ...
磁环插件电感质量的好坏的判断方法 ...
插件棒型电感的漆包线为什么会断裂 ...
资料下载
本周热帖
制冷工作维护常识
大型冷库维护保养
(RadioOne_V2_DIY资料固件版)
51avr单片机USB ISP 下载线
51_avr单片机USB_ISP_下载线
黄仁勋致毕业生们:AI时代,全力以赴 ...
【2023下载活动第2季】粽享好礼!传资 ...
【变废为宝】国货当自强——某国内大 ...
【嵌入式Linux开发】《C语言(十:5分 ...
基于数字相关的时栅信号处理设计LPC21 ...
最新资讯
芯语最新
解码元器件供应链的出海战略 ...
中国研究人员开发可用作传感器和处理 ...
比亚迪半导体公布“芯片及其数据存储 ...
新兴技术将如何推动嵌入式物联网连接 ...
市场低迷,元器件分销商的新业务增长 ...
SSD又大跌!三星980Pro2TB只要899元了 ...
i3/i5/i7/i9再见!Intel年度新品发布 ...
眼动追踪学习书籍推荐
龙图光罩科创板IPO获受理!本次拟募资 ...
长飞光学与半导体石英材料研发及产业 ...
EE直播间
更多
Fabless100系列技术和应用直播 – 蓝牙音频/网络技术的最新应用和市场趋势
直播时间: 06月16日 10:00
Fabless100系列技术和应用直播 – GPU助力数据中心高性能计算和AI大模型的开发
直播时间: 06月27日 10:00
创芯未来:是德科技前沿技术交流会 – 深圳高校专场
直播时间: 06月28日 13:30
Fabless100系列技术和应用直播 – 工业MCU的设计、测试及应用市场分析
直播时间: 07月14日 10:00
在线研讨会
更多
USB 2.0通过第二代USB隔离器实现高速稳定隔离
专设蓝牙、Matter、Wi-Fi和LPWAN主题!即刻报名芯科科技Tech Talks 在线技术讲座
为智能工厂设计工业连接解决方案
听专家侃一侃逻辑分析仪和程朱理学的关系
热门
推荐
【有奖直播】创芯未来:是德科技前沿技术交流会 – 深圳高校专场
【报名赢耳机】加速HPC未来: 224G以太网IP推动力
【6.15直播】解决复杂网络芯片系统级验证难题
【上海/北京/深圳】报名SiFive RISC-V论坛
我要评论
0
2
分享到微信
分享到微博
分享到QQ
点击右上角,分享到朋友圈
我知道啦
请使用浏览器分享功能
我知道啦
×
余额支付
请输入6位数字支付密码
忘记密码?
确认支付
×
×
微信扫码支付
支付金额
1
元
1
2
3
4
5
6
7
8
9
0
×
给作者打赏,鼓励TA抓紧创作!
请选择支付金额
1
元
2
元
5
元
10
元
50
元
自定义
请选择支付方式
微信支付
余额支付
×
确认支付
¥ 1
×
0人赞赏(共赞赏
¥
)
关闭
热点推荐
/4
【6.20直播】基于总线架构SSN技术,颠覆传统测试设计
通过技术实现解析和用户案例分享,全方位介绍 SSN 如何帮助用户降低设计工作量,节省测试成本,实现更优的功耗、性能和面积。
【6.29直播】西门子EDA工具在3D IC设计中的应用
本次线上研讨会将介绍西门子 EDA 工具在 3D IC 设计中的应用。 3D IC 是一种新的封装技术,通过垂直堆叠多个芯片来实现更高的电路密度。 西门子 EDA 提供了一系列设计、验证、仿真、热分析、测试和 IP 验证工具,帮助设计人员更好地实施 3D IC 设计。
跟上 RISC-V 最火话题,立即报名SiFive RISC-V论坛
2023 SiFive RISC-V 中国技术论坛三城巡讲-上海/北京/深圳 线下活动开放报名!与 RISC-V 的创始人和行业领袖面对面互动,激发创新思维!参与人人有礼,额外抽索尼PS5、beats 耳机等!
粽享好礼!传资料,领800元奖金!
端午佳节到,下载中心的活动也到啦! 快来传资料,质量越优奖励越大!最高可获得800元的奖励~
首页
论坛
电子技术基础
模拟技术
可编程器件
嵌入式系统与MCU
工程师职场
最新帖子
问答
版主申请
每月抽奖
商城免费换礼
社区有奖活动
博客
下载
评测
视频
文库
芯语
资源
IIC Shanghai 2023
在线研讨会
EE直播间
小测验
白皮书
行业及技术活动
杂志免费订阅
免费在线工具
厂商中心
帖子
博文
返回顶部
×
文章评论(0条评论)
登录后参与讨论