cmaedu.comucos邮箱通信,ucos中邮箱

hacker2年前黑客组织182

cmaedu.com

ucos ii中如何创建非空消息队列和非空消息邮箱

你的意思是创建消息队列或消息邮箱,并让它有初始值吗?

cmaedu.com创建邮箱使用OSMboxCreate(void

cmaedu.compvMsg),参数中可以直接传递一个消息进去,这样就是非空的。

创建消息队列OSQCreate

(void

**start,

INT8U

cmaedu.comsize)只能给出一个消息队列空间,不能直接传递消息,但是你可以消息创建成功后,立即发送一个消息。

cmaedu.com具体的你可以参考UCOS的接口手册

高手回答:uCOS-II使用消息邮箱时出现错误

没有引入OS_EVENT的声明,请尝试把头文件ucos_ii.h加进去(#include ucos_ii.h),注意有些编译器还需要把头文件所在的文件路径加到编译器里头去,这样它才知道在哪里找你的头文件(如MDK)。

cmaedu.com

ucos ii中如何创建非空消息队列和非空消息邮箱

你的意思是创建消息队列或消息邮箱,并让它有初始值吗?

cmaedu.com创建邮箱使用OSMboxCreate(void * pvMsg),参数中可以直接传递一个消息进去,这样就是非空的。

创建消息队列OSQCreate (void **start, INT8U size)只能给出一个消息队列空间,不能直接传递消息,但是你可以消息创建成功后,立即发送一个消息。

具体的你可以参考UCOS的接口手册

cmaedu.com

ucos菜鸟提问:关于ucos操作系统中如何从邮箱中提取出消息

首先介绍消息邮箱的一种使用方式:即只传递一个非空指针,告诉等待消息的任务时间到了,但是这个指针里并没有可用的数据,而任务中也不可对这个地址指向的变量进行任何的读取和写入操作,读写操作都是无意义的,从另外一个角度来看,虽然借用了别人的地址但是本身并没有对地址里的数据进行操作,所以地址里的数据也是安全的,也就是消息邮箱版信号量(非计数),下面介绍详细步骤:

cmaedu.com步骤1:声明一个指针变量,这个指针变量在初始化消息邮箱的时候会把这个消息邮箱对应的事件控制块 的指针存放进去。 void *Mbox_Task_LED1;

cmaedu.com步骤2:对消息邮箱进行初始化,也就是初始化对应的事件控制块,并且会把这个事件控制块的指针作为返回值赋值给第一步声明的指针变量。消息邮箱初始化函数有一个参数,应该设置为空指针,表示消息邮箱为空。 Mbox_Task_LED1 = OSMboxCreate((void *)0); 步骤3:在任务里设置等待消息函数,当这个任务执行到这句话的时候,系统会把这个任务挂起,等待有消息的发送。这个函数里有3个变量,第一个参数是指等待的是哪个消息邮箱,第二个参数是指等待时间单位为系统心跳,0指无时间期限的等待,第三个参数为返回的错误类型。OSMboxPend(Mbox_Task_LED1,0,err);

步骤4:在其他的任务里或者中断服务程序里设置发送消息函数,需要注意的是,这个函数并不会引起系统调度,所以如果把它放在中断服务函数里的话就要去中断里的内容尽量简短,以保证消息发送出去后,能进来快的进行系统调度让消息接受函数相应。在这个函数里有2个参数,第一个参数为要发送给哪个消息邮箱,第二个参数为发送的数据的地址。在这里其实并没有真实的数据,只是把发送的地址用了一个非空地址,这个地址及其指向的数据都没有任何意义,也不需要进行任何的读写操作,只是传递一个消息到相应的等待函数,以解除对应任 务的挂起状态。

cmaedu.com

uCOS-II中提供了哪些有关消息邮箱的操作函数,这些操作函数分别有什么作用?

cmaedu.com最近在学习UCOS-II,为了自已方便,我把UCOS-II内核程序都做了一个注释,虽然不够完整,但对学习也是有一定帮助的,我把它放在这里,希望对大家有所帮助吧。所有的注释我会陆续放在这里的。敬请关注。

cmaedu.com消息邮箱是uC/OS-II中的另一种通信机制,可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。通常该指针指向一个包含了“消息”的特定数据结构。

cmaedu.com 应用程序可以使用多少个邮箱,其最大数目是由OS_CFG.H文件中的配置常数OS_MAX_EVENTS设定。

任务或者中断服务子程序都可以调用函数OSMboxPost(),OSMboxPostOpt() ,而只有任务可以调用OSMboxDel()

OSMboxPend(), OSMboxQuery()。

void *OSMboxAccept (OS_EVENT *pevent)

cmaedu.com 无等待的从邮箱中得到一则消息。

cmaedu.comOS_EVENT *OSMboxCreate (void *msg)

建立一个邮箱。

msg:用来初始化建立的消息邮箱,如果该指针不为空,则建立的消息邮箱将含有消息。

返回值:指向分配给所建立的消息邮箱的事件控制块的指针。如果没有可用的事件控制块,则返回空指针。

OS_EVENT *OSMboxDel (OS_EVENT *pevent, INT8U opt, INT8U *err)

cmaedu.com 删除一个邮箱。当将OS_CFG.H文件中的OS_MBOX_DEL_EN设为1时,该函数才会被编译。使用该函数时要注意,多个任务可能试图操作已经删除的邮箱。在删除邮箱之前,必须首先删除可能操作该邮箱的所有任务。

pevent:指向邮箱的指针。该指针是在邮箱建立时返回给用户应用程序的指针。

cmaedu.com opt:该先项定义邮箱的删除条件,可以选择只能在已经没有任何在等待该邮箱的消息时,才能删除邮箱

cmaedu.com (OS_DEL_NO_PEND);或者不管有没有任务在等待邮箱的消息,立即删除邮箱(OS_DEL_ALWAYS),在这种情况 下,所有等待邮箱消息的任务都会立即进入就绪态。

cmaedu.comerr:指向出错代码的指针。返回的出错代码可以是以下几种情况之一。

OS_NO_ERR 调用成功,邮箱已经被删除。

cmaedu.com OS_ERR_DEL_ISR 试图在中断服务子程序中删除邮箱。

cmaedu.com OS_ERR_INVALID_OPT 无效的opt参数,用户没有将opt定义为上述两种情况之一。

cmaedu.com OS_ERR_EVENT_TYPE pevent不是指向邮箱的指针。

cmaedu.com OS_ERR_PEVENT_NULL 已经没有OS_EVENT数据结构可以使用。

cmaedu.com返回值:返回NULL表示邮箱已被删除;返回pevent表示邮箱没有删作,。

void *OSMboxPend (OS_EVENT *pevent, INT16U timeout, INT8U *err)

等待邮箱中的消息。

cmaedu.compevent:指向即将接收消息的消息邮箱的指针。

timeout:允许一个任务在经过了指定数目的时钟节拍后还没有得到需要的消息时恢复运行。如果该值为0表示任务将持续等待消息。

cmaedu.comerr:指向包含错误码的变量的指针。该函数返回的错误码可能为下述几种情况

cmaedu.com OS_NO_ERR 消息被正确地接收。

cmaedu.com OS_TIMEOUT 消息没有在指定的等待时间内送到。

OS_ERR_EVENT_TYPE pevent不是指向消息邮箱的指针。

OS_ERR_PEND_ISR 从中断调用该函数。

cmaedu.com OS_ERR_PEVENT_NULL pevent是空指针。

cmaedu.com 返回值:该函数返回接收的消息并将*err置为OS_NO_ERR.

cmaedu.comINT8U OSMboxPost (OS_EVENT *pevent, void *msg)

cmaedu.com 向邮箱发送一则消息。

cmaedu.com pevent:指向即将接收消息的消息邮箱的指针。

cmaedu.commsg:即将实际发送给任务的的消息。消息是一个以指针表示的苛种数据类型的变量,在不同的程序中消息的使用也可能不同。不允许传递一个空指针,国灰这意味着消息邮箱为空。

cmaedu.com返回值:该函数的返回值为下述之一:

OS_NO_ERR 消息成功地放到消息邮箱中。

OS_MBOX_FULL 消息邮箱已经包含了其他消息,已满。

cmaedu.com OS_ERR_EVENT_TYPE pevent不是指向消息邮箱的指针。

cmaedu.com OS_ERR_PEVENT_NULL pevent是空指针。

OS_ERR_POST_NULL_PTR 用户试图发出空指针。根据规则,在这里不支持空指针。

INT8U OSMboxPostOpt (OS_EVENT *pevent, void *msg, INT8U opt)

向邮箱发送一则消息。该函数可以向等待邮箱的所有任务发送消息(广播)。

pevent:指向即将接收消息的消息邮箱的指针。

cmaedu.com msg:即将实际发送给任务的消息。消息是一个以指针表示的某种数据类型的变量,在不同的程序中消息的使用也可能不同。不允许传递一个空指针,因为这意味着消息邮箱为空。

cmaedu.com opt:定义消息只发给等待邮箱消息的任务中优先级最高的任务(将opt置为OS_POST_OPT_NONE),或者让所有等待 邮箱消息的任务都得到消息(将opt置为OS_POST_OPT_BROADCAST)。

cmaedu.com 返回值:

err 指向包含错误码的变量指针,返回的错误码可能为下述几种之一:

cmaedu.com 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)

查询一个邮箱的状态。

cmaedu.com pevent:指向即将接收消息的消息邮箱的指针。

cmaedu.com pdata:指向OS_MBOX_DATA数据结构的指针,该数据结构包含下述成员。

cmaedu.com void *OSMsg; /*消息邮箱中消息的复制*/

INT8U OSEventTbl[OS_EVENT_TBL_SIZE]; /*消息邮箱等待队列的复制*/

cmaedu.com INT8U OSEventGrp

返回值:该函数返回值为下述之一:

cmaedu.com OS_NO_ERR 调用成功

OS_ERR_EVENT_NULL pevent是空指针

OS_ERR_EVENT_TYPE pevent不是指向消息邮箱的指针。

标签: ucos中邮箱

相关文章

cmaedu.com如何查询邮箱的ip地址-黑客24小时在线接单网站-Spg查邮箱

cmaedu.com如何查询邮箱的ip地址-黑客24小时在线接单网站-Spg查邮箱

富士康科技集团IDSPG事业群IPQC主要是做什么的 1、IDSBG是富士康创新数位系统事业群。原本是IDPBG旗下,2010年6月份划分出来成为独立的事业群。主要从事时尚平板计算机、台式计算机、笔记...

cmaedu.com芝加哥使馆邮箱是多少,芝加哥使馆邮箱

cmaedu.com芝加哥使馆邮箱是多少,芝加哥使馆邮箱

中国驻美国芝加哥领事馆办理换户更换护照具体地址在什么地方? 驻芝加哥总领馆官网提供的信息如下:办公地点:1 East Erie Street, Suite 500,Chicago, IL 60611。...

cmaedu.com雅加达国际机场,雅加达机场邮箱

cmaedu.com雅加达国际机场,雅加达机场邮箱

雅加达机场三字码,JKT和CGK是同一个么 不是同一个。雅加达有两个机场,一个是苏加诺-哈达国际机场,三字码是CGK;另外一个是哈林机场,三字码是HLP,因此并没有JKT这个三字码。苏加诺-哈达国际机...

cmaedu.com明星邮箱明星会看嘛,明星邮箱studio

cmaedu.com明星邮箱明星会看嘛,明星邮箱studio

明星的工作室邮箱是啥意思? 一个有名气的歌手或演员或没有艺术味道的流量人的工作室退出的可以和粉丝联系的邮箱📮怎样查找明星邮箱? 以前在各大学校里都流传着这么一个恐怖故事 说是A校有不干净的东西 每当十...

cmaedu.com企业邮箱怎么扩容,邮箱满了怎么扩展邮箱

cmaedu.com企业邮箱怎么扩容,邮箱满了怎么扩展邮箱

邮箱容量满了,连邮件都收不进来了,怎么扩容呢? 如果之前用的是限制容量的邮箱,联系服务商扩容,如果已经是不限容量的了而客户端提示容量满了,那要清理客户端,可以将原先的邮件存在在新的文件夹下,然后删除之...

cmaedu.com中国用邮箱网注册,中国用邮箱

cmaedu.com中国用邮箱网注册,中国用邮箱

国内邮箱用哪个最好,国内的邮箱有哪些? 如TOM邮箱,263邮箱,腾讯邮箱等等。像TOM邮箱就属于商务邮箱。一些功能产品都有很好的口碑。注册流程:1、在网址栏输入163.net,进入官网,点击“立即注...

评论列表

访客
2022-10-06 00:02:28

cos操作系统中如何从邮箱中提取出消息首先介绍消息邮箱的一种使用方式:即只传递一个非空指针,告诉等待消息的任务时间到了,但是这个指针里并没有可用的数据,而任务中也不可对这个地址指向的变量进行任何的读取和写入操作,读写操作都是

访客
2022-10-06 08:13:38

指针。 OS_ERR_POST_NULL_PTR 用户试图发出空指针。根据规则,在这里不支持空指针。 INT8U OSMboxQuery (OS_EVENT *pevent, OS_M

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。