VxWorks平台多任务软件框架实现方法技术

技术编号:17878635 阅读:40 留言:0更新日期:2018-05-06 00:32
本发明专利技术公开了一种VxWorks平台多任务软件框架实现方法,其包括以下步骤:步骤一,初始化主处理任务模块的消息队列,设置消息队列的长度及每个消息的尺寸;步骤二,初始化主处理任务模块,建立主处理任务模块及设置任务优先级,主处理任务模块阻塞接收消息,当收到报文类消息时,从消息中获取报文内容,处理报文等,能够解决VxWorks平台开发大型软件时,经常出现的多任务对共享数据访问冲突的问题。

Implementation of multi task software framework for VxWorks platform

This invention discloses a method of implementing the multi task software framework of VxWorks platform, which includes the following steps: Step 1, initialize the message queue of the main processing task module, set the length of the message queue and the size of each message; step two, initialize the main processing task module, establish the main processing task module and set up the task. The main processing task module blocks the receiving message. When the message class is received, the message content is obtained and the message is processed. It can solve the problem of the shared data access conflict when the VxWorks platform develops the large software.

【技术实现步骤摘要】
VxWorks平台多任务软件框架实现方法
本专利技术涉及一种框架实现方法,特别是涉及一种VxWorks平台多任务软件框架实现方法。
技术介绍
VxWorks(VxWorks是美国WindRiverSystem公司推出的一个实时操作系统)操作系统具有实时性好、稳定性强、可靠性高等特点,近年来被广泛应用于航空航天、军事、电力等领域。但这些系统结构复杂、任务处理量多、各模块间通信复杂,从而不可避免需要面对一个问题:多任务中对共享数据的访问存在冲突问题。对此解决方法也较多,但不同程度会有一些缺点,如采用周期排列处理工作的方法牺牲一些实时性,采用大量的互斥保护会带来设计复杂度较高等。在VxWorks中任务之间高效、经济地通信对整个系统的性能有很大的影响,针对上述现象,本专利技术采用了互斥通信与消息队列结合,提出一种VxWorks平台的多任务软件框架,基于此软件框架的VxWorks平台多任务通信处理软件,具有实时性好、可靠性高的特点,并且不需考虑数据共享访问冲突的问题,其软件复杂度、开发难度与windows平台相当,降低VxWorks编程开发成本,提高了开发效率
技术实现思路
本专利技术所要解决的技术问题是提供一种VxWorks平台多任务软件框架实现方法,其能够解决VxWorks平台开发大型软件时,经常出现多任务对共享数据访问冲突的问题。本专利技术是通过下述技术方案来解决上述技术问题的:一种VxWorks平台多任务软件框架实现方法,其特征在于,所述VxWorks平台多任务软件框架实现方法包括以下步骤:步骤一,初始化主处理任务模块的消息队列,设置消息队列的长度及每个消息的尺寸;步骤二,初始化主处理任务模块,建立主处理任务模块及设置任务优先级,主处理任务模块阻塞接收消息,当收到报文类消息时,从消息中获取报文内容,处理报文:收到数据类报文时,更新软件的数据;收到命令类报文时,启动相应的工作流程;收到定时消息时,执行定周期对应的工作;步骤三,初始化网络数据接收处理模块,建立和设置网络接收、发送socket,建立网络接收任务及设置任务优先级;网络数据接收处理模块阻塞接收网络报文,收到后将报文内容打包成一个结构体以消息发送给主任务;步骤四,初始化看门狗定时器处理模块,建立看看门狗定时器处理模块;定周期活动,向主任务发送一个消息,内容仅一项,为消息类型。优选地,所述VxWorks平台多任务软件框架实现方法采用网络数据接收处理模块、看门狗定时器处理模块、主处理任务模块,其中:网络数据接收处理模块与主处理任务模块相连,其用于收到网络数据后向主处理任务模块发送报文类消息;看门狗定时器处理模块与主处理任务模块相连,其用于发送定时消息;主处理任务模块用于提取消息。优选地,所述步骤一包括以下步骤:步骤十一,建立消息队列的结构体,消息队列的结构体包括消息类型、报文数据的长度、报文缓冲区,该区域长度依据该软件设计的最长报文格式的长度;步骤十二,确定消息队列的最大排队数,避免由于处理不及时导致新的消息不能入队而丢失的问题;步骤十三,依据步骤十一的结构体和步骤十二的最大排队数,建立主处理任务模块的消息队列。优选地,所述步骤二包括以下步骤:步骤二十一,确定主处理任务的优先级,该优先级比接收网络数据的优先级略低,保证外部网络数据一定能被接收;发起主处理任务;步骤二十二,主处理任务中,当主处理消息队列为空时,阻塞等待;步骤二十三,主处理任务中,当收到报文类消息时,从消息中获取报文内容,处理报文:收到数据类报文时,更新软件的数据;收到命令类报文时,启动相应的工作流程;步骤二十四,主处理任务中,收到定时消息时,执行定周期对应的工作,如定周期的数据处理,报文发送等定周期工作。优选地,所述步骤三包括以下步骤:步骤三十一,建立和设置网络接收、发送socket;设置两个socket的地址和端口,接收socks的设置依据软件的需求进行设置,加入组播接收等设置,超时设置;步骤三十二,建立网络接收任务及设置任务优先级;步骤三十三,网络数据接收任务中,未收到网络报文,阻塞等待;步骤三十四,网络数据接收任务中,,收到后将报文内容打包成一个主消息队列对应的结构体,以消息发送给主任务,其中结构体以消息包括消息类型、报文长度、报文内容等。优选地,步骤四包括以下步骤:步骤四十一,明确看门狗定时器的周期,若存在多个周期,可采用多个看门狗或者几个周期的最大公约数设置;步骤四十二,看门狗周期到,向主任务发送一个消息,内容仅一项,为消息类型。与现有技术相比,本专利技术具有如下的有益效果:一、软件多任务处理时,会引起共享数据访问冲突的数据仅一个,即主处理任务的消息队列;二、访问共享数据区的模块,其中网络数据接收处理模块和看门狗定时器处理模块发送消息占用CPU(CentralProcessingUnit,中央处理器)非常少;三、较好的实时性,当报文类消息或定时类消息送入主处理任务的消息队列排队时,一旦CPU处理完之前的消息,可以立即处理此类消息;四、软件的设计复杂度与开发成本较低;由于所有的对数据的访问的发起,都在主处理任务模块的消息队列中排队依次执行,不存在数据被打断的现象,软件设计不需考虑数据互斥访问的问题,VxWorks软件编程难度与Windows(操作系统)平台相当,降低软件开发成本,提高工作效率。附图说明图1为本专利技术的流程图。具体实施方式下面结合附图给出本专利技术较佳实施例,以详细说明本专利技术的技术方案。如图1所示,本专利技术VxWorks平台多任务软件框架实现方法包括以下步骤:步骤一,初始化主处理任务模块的消息队列,设置消息队列的长度及每个消息的尺寸;步骤二,初始化主处理任务模块,建立主处理任务模块及设置任务优先级,主处理任务模块阻塞接收消息,当收到报文类消息时,从消息中获取报文内容,处理报文:收到数据类报文时,更新软件的数据;收到命令类报文时,启动相应的工作流程;收到定时消息时,执行定周期对应的工作,如定周期的数据处理,报文发送等定周期工作;步骤三,初始化网络数据接收处理模块,建立和设置网络接收、发送socket,建立网络接收任务及设置任务优先级;网络数据接收处理模块阻塞接收网络报文,收到后将报文内容打包成一个结构体以消息发送给主任务,其中结构体的消息包括消息类型(报文类消息)、报文长度、报文内容等;步骤四,初始化看门狗定时器处理模块,建立看看门狗定时器处理模块;定周期活动,向主任务发送一个消息,内容仅一项,为消息类型(定时消息)。所述步骤一包括以下步骤:步骤十一,建立消息队列的结构体,消息队列的结构体包括消息类型(报文类消息、时间类消息,即收到该消息软件后软件执行何种动作,可扩展)、报文数据的长度、报文缓冲区,该区域长度依据该软件设计的最长报文格式的长度;步骤十二,确定消息队列的最大排队数,避免由于处理不及时导致新的消息不能入队而丢失的问题;步骤十三,依据步骤十一的结构体和步骤十二的最大排队数,建立主处理任务模块的消息队列。所述步骤二包括以下步骤:步骤二十一,确定主处理任务的优先级,该优先级比接收网络数据的优先级略低,保证外部网络数据一定能被接收;发起主处理任务;步骤二十二,主处理任务中,当主处理消息队列为空时,阻塞等待;步骤二十三,主处理任务中,当收到报文类消息时,从消息中获取报文内容,处理报文本文档来自技高网...
VxWorks平台多任务软件框架实现方法

【技术保护点】
一种VxWorks平台多任务软件框架实现方法,其特征在于,所述VxWorks平台多任务软件框架实现方法包括以下步骤:步骤一,初始化主处理任务模块的消息队列,设置消息队列的长度及每个消息的尺寸;步骤二,初始化主处理任务模块,建立主处理任务模块及设置任务优先级,主处理任务模块阻塞接收消息,当收到报文类消息时,从消息中获取报文内容,处理报文:收到数据类报文时,更新软件的数据;收到命令类报文时,启动相应的工作流程;收到定时消息时,执行定周期对应的工作;步骤三,初始化网络数据接收处理模块,建立和设置网络接收、发送socket,建立网络接收任务及设置任务优先级;网络数据接收处理模块阻塞接收网络报文,收到后将报文内容打包成一个结构体以消息发送给主任务;步骤四,初始化看门狗定时器处理模块,建立看看门狗定时器处理模块;定周期活动,向主任务发送一个消息,内容仅一项,为消息类型。

【技术特征摘要】
1.一种VxWorks平台多任务软件框架实现方法,其特征在于,所述VxWorks平台多任务软件框架实现方法包括以下步骤:步骤一,初始化主处理任务模块的消息队列,设置消息队列的长度及每个消息的尺寸;步骤二,初始化主处理任务模块,建立主处理任务模块及设置任务优先级,主处理任务模块阻塞接收消息,当收到报文类消息时,从消息中获取报文内容,处理报文:收到数据类报文时,更新软件的数据;收到命令类报文时,启动相应的工作流程;收到定时消息时,执行定周期对应的工作;步骤三,初始化网络数据接收处理模块,建立和设置网络接收、发送socket,建立网络接收任务及设置任务优先级;网络数据接收处理模块阻塞接收网络报文,收到后将报文内容打包成一个结构体以消息发送给主任务;步骤四,初始化看门狗定时器处理模块,建立看看门狗定时器处理模块;定周期活动,向主任务发送一个消息,内容仅一项,为消息类型。2.如权利要求1所述的VxWorks平台多任务软件框架实现方法,其特征在于,所述VxWorks平台多任务软件框架实现方法采用网络数据接收处理模块、看门狗定时器处理模块、主处理任务模块,其中:网络数据接收处理模块与主处理任务模块相连,其用于收到网络数据后向主处理任务模块发送报文类消息;看门狗定时器处理模块与主处理任务模块相连,其用于发送定时消息;主处理任务模块用于提取消息。3.如权利要求1所述的VxWorks平台多任务软件框架实现方法,其特征在于,所述步骤一包括以下步骤:步骤十一,建立消息队列的结构体,消息队列的结构体包括消息类型、报文数据的长度、报文缓冲区,该区域长度依据该软件设计的最长报文格式的长度;步骤十二,确定消息队列的最大排队数,避免由于处理不及时...

【专利技术属性】
技术研发人员:简力邹诗苑舒福张国群丁洁曹颖颖王力文李闯
申请(专利权)人:上海机电工程研究所
类型:发明
国别省市:上海,31

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

1