基于消息订阅与派发的嵌入式软件任务间通信方法及系统技术方案

技术编号:37992194 阅读:21 留言:0更新日期:2023-06-30 10:06
本发明专利技术公开了一种基于消息订阅与派发的嵌入式软件任务间通信方法及系统,包括:嵌入式软件初始化时,每个任务模块调用消息注册函数对需要订阅的消息进行注册,以确定消息管理链表;当产生消息时,消息发送函数基于所述消息管理链表将所述消息分别放置于订阅该消息的目标任务模块的消息队列中;每个目标任务模块的消息处理函数按照预设的任务执行周期处理对应的消息队列中存放的消息,以实现嵌入式软件任务间的通信。本发明专利技术使用基于消息注册及消息派发的方法使软件各模块间进行通信,不依赖于硬件芯片及操作系统,可有效解决非操作系统的嵌入式软件任务间通信的问题,减少对操作系统的依赖,方便在嵌入式设备上进行移植。方便在嵌入式设备上进行移植。方便在嵌入式设备上进行移植。

【技术实现步骤摘要】
基于消息订阅与派发的嵌入式软件任务间通信方法及系统


[0001]本专利技术涉及嵌入式设备软件
,并且更具体地,涉及一种基于消息订阅与派发的嵌入式软件任务间通信方法及系统。

技术介绍

[0002]嵌入式软件中,随着应用软件功能多样化及复杂化,常采用功能模块化的开发方法,使不同的任务相互独立解耦,嵌入式软件任务间数据交互构成了整个嵌入式软件系统。当前嵌入式软件任务间通信主要方法有基于实时操作系统(FreeRTOS、UC/OS

II)的信号量、队列、事件组等方法、基于嵌入式linux操作系统的信号量、互斥量、队列、共享内存、消息邮箱等方法。
[0003]基于实时操作系统(FreeRTOS、UC/OS

II等)或嵌入式linux系统的任务间通信方法需要移植对应的操作系统到嵌入式设备上,增大了嵌入式软件的内存及磁盘等资源。现有技术方案需依赖操作系统软件架构,任务间通信方式不能灵活裁剪,不易在嵌入式设备上推广应用。
[0004]因此,需要一种基于消息订阅与派发的嵌入式软件任务间通信方法。
...

【技术保护点】

【技术特征摘要】
1.一种基于消息订阅与派发的嵌入式软件任务间通信方法,其特征在于,所述方法包括:嵌入式软件初始化时,每个任务模块调用消息注册函数对需要订阅的消息进行注册,以确定消息管理链表;当产生消息时,消息发送函数基于所述消息管理链表将所述消息分别放置于订阅该消息的目标任务模块的消息队列中;每个目标任务模块的消息处理函数按照预设的任务执行周期处理对应的消息队列中存放的消息,以实现嵌入式软件任务间的通信。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:定义消息类型、任务模块接口、消息接口、每个任务模块的名称和编号以及每个任务模块需要订阅的消息内容。3.根据权利要求1所述的方法,其特征在于,所述消息队列中的数据包括:消息队列头、消息队列尾、消息队列个数CFG_MSG_MAX和每个息队列可缓存消息的最大个数CFG_MSG_SIZE;其中,CFG_MSG_MAX表示任务模块的个数,一个任务模块对应一个消息队列,CFG_MSG_SIZE表示一个任务模块可最多缓存的消息个数。4.根据权利要求1所述的方法,其特征在于,所述消息管理链表,包括:一个消息允许被订阅的最大次数CFG_MESSAGE_SUBSCRIBE_MAX、所述消息管理链表管理的最大消息个数CFG_MESSAGE_TYPE_MAX。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:当任一个目标任务模块对应的消息队列中的任一个消息被读取进行处理后,将该任一个消息在该任一个目标任务模块对应的消息队列中删除。6.一种基于消息订阅与派发的嵌入式软件任务间通信系统,其特...

【专利技术属性】
技术研发人员:翟峰许斌梁晓兵赵兵陈昊申洪涛李智虎李保丰曹永峰许海清杜新纲陶鹏吕英杰周晖孔令达史轮付义伦李飞潘卫红何宝灵徐萌冯云赵英杰秦煜张辰卢艳许岳楼白宇周琪袁泉王楠郑旖旎
申请(专利权)人:国家电网有限公司国网河北省电力有限公司营销服务中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1