【技术实现步骤摘要】
一种主机设备间消息处理方法、装置及存储介质
[0001]本专利技术涉及嵌入式主机设备间消息处理
,尤其涉及一种主机设备间消息处理方法、装置及存储介质。
技术介绍
[0002]在Linux系统下的嵌入式设备开发过程中,在主机和设备之间的通信环节是至关重要的,一种良好的通信方式,不仅能充分发挥硬件极限,节省用料成本,提高利润,更重要的是,优秀的通信机制,会使整个系统具备很高的流畅度,客户体验好,大大提高产品的市场竞争力。
[0003]在现有的主机设备通讯方式中,消息处理流程多是基于队列实现的,请求来时,将请求入队,请求处理完成后,将请求出队。设备侧按照待处理请求在队列中的排列顺序依次处理请求,这种方式存在如下弊端:容易因请求处理阻塞而影响后续请求的处理,影响用户体验。而且响应一般需要传递针对请求的答复数据,响应数据多,处理占用资源多不利于消息的快速处理。
[0004]Linux系统中,用户层和内核之间的通信,一般通过驱动程序在/dev目录下创建一个字符设备,并基于该设备编写一系列的方法,该驱动程序运行在内核 ...
【技术保护点】
【技术特征摘要】
1.一种主机设备间消息处理方法,基于主机侧内核运行的驱动程序实现,其特征在于,包括:驱动程序基于应用层发起的消息请求创建包含命令字、源地址、目的地址和第一状态的请求消息体,将请求消息体并放入消息请求队列并配置请求轮询标志位,所述请求轮询标志位表示该请求消息体在所述请求消息队列中的位置;设备侧基于第一状态选择消息请求体执行请求消息体处理答复过程;驱动程序响应于设备侧完成请求消息体处理答复过程,利用对应所述请求轮询标志位的响应轮询标志位和第二状态创建响应消息体并置入响应请求队列;驱动程序基于响应请求体中的第二状态和响应轮询标志位实现答复完成确认、答复数据获取以及答复完成的请求消息体和响应消息体出队。2.根据权利要求1所述的主机设备间消息处理方法,其特征在于,运行在内核的驱动程序的功能包括创建通信消息体,其中,所述通信消息体包括请求消息体和响应消息体两种:所述驱动程序根据应用层发起的消息请求生成请求消息体,所述请求消息体包含请求消息队列指针、命令字、源地址、目的地址和第一状态;所述驱动程序根据设备侧完成响应而创建响应消息体,所述响应消息体包含响应消息队列指针、第二状态和对应请求轮询标志位的响应轮询标志位。3.根据权利要求1所述的主机设备间消息处理方法,其特征在于,驱动程序基于应用层发起的消息请求创建请求消息体包括:应用层发起消息请求后,通过字符设备访问内核,通过IOCTL系统调用将消息请求传至内核层,运行于内核层的驱动程序将消息请求按照设定的格式整理成消息请求体。4.根据权利要求1所述的主机设备间消息处理方法,其特征在于,设备侧利用所述请求消息队列执行请求消息体处理答复过程,包括:设备侧轮询所述请求消息队列,查询请求消息队列里的请求消息体的第一状态;第一状态指示待设备处理时,解析请求消息体并根据解析出的命令字和源地址中携带的信息执行业务逻辑得到应用层所需的答复数据,并将答复数据利用直接存储器访问映射机制拷贝至所述目的地址指向的区域。5.根据权利要求4所述的主机设备间消息处理方法...
【专利技术属性】
技术研发人员:石念伟,秦法林,张忠国,姜向阳,王晓玉,范宣荣,尹相彦,
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。