嵌入式实时操作系统中任务间的通信方法及装置制造方法及图纸

技术编号:23399722 阅读:32 留言:0更新日期:2020-02-22 12:01
本申请实施例公开了本申请实施例提供的嵌入式实时操作系统中任务间的通信方法及装置,该方法包括:第一任务将请求消息发送至第二任务的消息队列中,请求消息用于请求第二任务完成第一事件;第二任务将请求消息放置到第二任务的执行链表中;第二任务调用执行函数,获得第一事件的执行结果,并将执行结果发送至第一任务的消息队列中。即本申请,针对不同的任务请求,通过将任务请求对应的请求消息的发送、存储、执行等操作采用统一的代码实现,开发人员无需为每个任务请求编写通信代码,进而大大减少了软件开发者的工作量,解决了代码量大,开发周期长的问题。

Communication method and device between tasks in embedded real-time operating system

【技术实现步骤摘要】
嵌入式实时操作系统中任务间的通信方法及装置
本申请涉及计算机
,尤其涉及一种嵌入式实时操作系统中任务间的通信方法及装置。
技术介绍
在嵌入式领域,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RealTimeOperatingSystem,RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。而FreeRTOS(免费嵌入式实时操作系统)是一个迷你的实时操作系统内核,作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。在FreeRTOS中,当需要多个任务间通信时,已有的嵌入式实时操作系统中任务间的通信方法,软件开发者需要完成的步骤较多,且其中可能会有许多冗余的步骤及代码,且代码耦合度高,导致开发时间较长,移植性差等问题。
技术实现思路
本申请实施例提供一种嵌入式实时操作系统中任务间的通信方法及装置。第一方面,本申请实施例提供一种嵌入式实时操作系统中任务间的通信方本文档来自技高网...

【技术保护点】
1.一种嵌入式实时操作系统中任务间的通信方法,其特征在于,包括:/n第一任务将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;/n第二任务从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;/n所述第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。/n

【技术特征摘要】
1.一种嵌入式实时操作系统中任务间的通信方法,其特征在于,包括:
第一任务将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;
第二任务从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;
所述第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。


2.根据权利要求1所述的方法,其特征在于,所述请求消息包括执行结果的反馈信息;
若所述执行结果的反馈信息用于指示所述第二任务反馈所述执行结果,则所述方法还包括:所述第二任务向所述第一任务反馈所述执行结果。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一任务将回调函数放置至所述第一任务的回调链表中,并为所述回调函数设置标识;
所述第一任务检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,调用所述回调函数,获得所述回调结果。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第二任务创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中。


5.根据权利要求4所述的方法,其特征在于,所述第一任务将请求消息发送至第二任务的消息队列中之前,所述方法还包括:
所述第一任务检测所述第二任务的功能链表中的各第二功能中是否具有处理第一事件的第一功能;
所述第一任务将请求消息发送至第二任务的消息队列中,包括:
所述第一任务在检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息发送至所述第二任务的消息队列中。


6.根据权利要求4所述的方法,其特征在于,所述第二任务将所述请求消息放置到所述第二任务的执行链表中之前,所述方法还包括:
所述第二任务检测所述第二任务的功能链表中的各第二功能中是否具有处理所述第一事件的第一功能;
所述第二任务将所述请求消息放置到所述第二任务的执行链表中,包括:
所述第二任务在检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息放置到所述第二任务的执行链表中。


7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第二任务为创建的每个所述第二功能设置优先级;
所述第二任务将所述请求消息放置到所述第二任务的执行链表中,包括:
所述第二任务根据所述请求消息的接收时间和优先级,将所述请求消息放置到所述第二任务的执行链表中,其中,所述请求消息的优先级为各所述第二功能中具有完成所述第一事件能力的第二功能所对应的优先级。


8.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第二任务在执行完所述第一事件后,从所述执行链表中删除所述请求消息;和/或,
所述第二任务在检测到所述第二任务的功能链表中不具有完成所述第一事件能力的第二功能时,删除所述第二功能对应的数据;和/或,
所述第一任务在调用完所述回调函数后,从所述回调链表中删除所述回调函数;和/或,
系统删除任务在检测到所述第二任务或所述第一任务删除时,删除所述第一任务或所述第二任务对应的数据。


9.根据权利要求1-8任一项所述的方法,其特征在于,所述第一任务将请求消息发送至第二任务的消息队列中,包括:
所述第一任务采用阻塞式发送方式或非阻塞式发送方式将所述请求消息发送至第二任务的消息队列中。


10.一种嵌入式实时操作系统中任务间的通信装置,其特征在于,包括:
发送模块,用于将请求消息发送至第二任务的消息队列中...

【专利技术属性】
技术研发人员:黄晓杰
申请(专利权)人:深圳移航通信技术有限公司
类型:发明
国别省市:广东;44

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

1