[发明专利]一种基于实时操作系统的任务间消息高效传递方法有效
申请号: | 201911031121.1 | 申请日: | 2019-10-28 |
公开(公告)号: | CN110764935B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 王雨龙 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘二格 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 实时 操作系统 任务 消息 高效 传递 方法 | ||
本发明公开了一种基于实时操作系统的任务间消息队列高效传递方法,对实时操作系统的底层消息传递方法进行二次封装,使用一种新的数据结构管理消息队列的传输,该数据结构包括消息类型,消息功能码,数据长度以及数据指针,其中数据指针为动态内存申请所得该指针所指向的内容,由用户数据指针所指向数据拷贝而来,用户调用后即可释放。消息队列接收端则采用查找表来定位执行函数,当数据取走后即可释放消息队列发端申请的指针,该种方法使用固定长度的结构,解决了传统方案申请大数组的资源浪费和效率低的问题,结构体和查找表等采用模块化封装,保证了消息准确高效的传递。
技术领域
本发明属于计算机软件设计领域,涉及一种基于实时操作系统的任务间消息高效传递方法。
背景技术
实时操作系统是一种基于任务优先级的操作系统,在系统运行过程中,任务之间需要频繁地进行消息传递,使用系统中提供的原生消息队列函数是一种任务间高效传递信息的方法,其中消息队列的长度是已知的确定值,但在实际应用中,消息的长度经常是不固定的,传统的做法是在消息队列创建之初,将消息的长度值设为一个很大的值,足够包含使用中的长度要求,此外还需要申请一个足够大的数组来临时存储要发送的消息。这种设计方法的缺点是需要占用很大的内存空间,内存空间浪费比较大,消息队列的使用率和传输效率都比较低,软件本身的可扩展性比较差,而且当任务之间传递多种类型的数据时,只能在数据内容中增加判别消息功能类型的字节信息,这种做法破坏了消息的完整性,同时增加了解析的难度和工作量。
发明内容
(一)发明目的
本发明的目的为:提供一种基于实时操作系统的任务间消息高效传递方法,解决传统消息队列传输过程中内存浪费和传输效率低的问题,以增强软件的内存使用率、可扩展性和传递效率。
(二)技术方案
为了解决上述技术问题,本发明提供一种基于实时操作系统的任务间消息高效传递方法,其包括以下步骤:
S1:定义一个消息队列要传递的消息结构体;
S2:对消息队列发送过程的封装;
S3:定义消息接收处理函数的查找表;
S4:对消息队列接收过程的封装。
所述步骤S1中,消息队列包括传递消息的消息类型、消息的功能码、需要传递消息的长度和需要传递消息的指针,消息类型标记此消息属于公有消息类型或者私有消息类型,消息的功能码表示消息的功能类型。
所述步骤S2中,定义消息结构体MSG_STRU,结构体中消息类型MsgType占用一个字节,用char型变量表示,消息类型包括公有消息类型0和私有消息类型1;消息的功能码FunCode占用一个字节,用char型变量表示,消息的功能码包括1553B总线消息处理-0,CAN总线消息处理-1,串口消息处理-2;长度信息LenInfo占用两个字节,用short型变量表示,消息的长度信息为上层要发送数据的实际长度;消息的指针pData使用unsignedchar*变量类型表示,指针所指向实际传递数据的首地址。
所述步骤S2中,首先申请步骤S1中所述消息结构体的指针,将用户传递过来的消息类型、功能码和数据长度赋值给指针对应的成员变量;然后采用动态内存申请获得一个同样长度的空间;将应用层传递进来的数据指针所指的空间内容拷贝到动态内存的申请空间,使用实时操作系统提供的消息队列发送函数将结构体发送出去。
所述步骤S2中,消息队列发送过程中,传递的结构体的长度固定,消息队列发送函数调用完毕需判断消息队列返回值,如果返回错误,则将动态申请内存的指针释放。
所述步骤S2中,消息队列的发送过程中,开放给应用层的接口包括消息队列的ID,消息类型usr_type,消息功能码usr_code,数据指针usr_pdata,数据长度usr_len。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911031121.1/2.html,转载请声明来源钻瓜专利网。