一种嵌入式软件支撑平台的制作方法

文档序号:6373038阅读:237来源:国知局
专利名称:一种嵌入式软件支撑平台的制作方法
技术领域
本发明涉及软件支撑平台领域,具体为一种采用中间件技术和虚拟机原理,适应不同硬件平台和操作系统的嵌入式软件支撑平台。
背景技术
当前的嵌入式硬件平台一般由不同的生产厂家生产,其系统的体系结构各不相同,互不兼容。虽然有各种商用嵌入式操作系统来屏蔽嵌入式硬件平台之间的差异,但不同的操作系统提供资源和服务的方式各不相同,导致所提供的资源和服务的接口不统一,致使在不同的操作系统之上开发的嵌入式应用系统可移植性较差,开发人员需要了解大量底
层软硬件知识,同一功能需要不同的解决方案。而且,目前的嵌入式操作系统的内存管理效率较低,定时器算法的性能较差,联网支持较差,难以支持实时性较强的嵌入式应用系统。桌面计算机应用系统在开发中引入了中间件、虚拟机的概念,以增强应用系统的可移植性,采用了内存池的思想来提高系统分配内存的效率。因此,许多科研人员尝试把这些概念引入到嵌入式系统中来增强系统的可移植性和实时性。

发明内容
本发明的目的在于提供一种用于提高上层应用系统可移植性和实时性的嵌入式软件支撑平台。本发明的目的是这样实现的本发明包括板级支持包、操作系统适配层、公共模块,其特征是商用操作系统构建在板级支持包上,操作系统适配层构建在商用操作系统上,公共模块构建在操作系统适配层上,公共模块包括功能相互独立的调度管理模块、系统监控模块、异常管理模块、内存管理模块、定时器管理模块、文件管理模块、网络管理模块,公共模块为上层应用程序提供功能支撑,用于任务或线程封装、信号量封装、消息队列封装、文件系统封装,屏蔽不同硬件平台、操作系统的差异,操作系统适配层具有统一的接口供操作系统调用。内存管理模块用于划分并管理内存池和内存块,内存管理模块通过配置文件配置内存池及内存块大小。内存池由大小相等的内存块组成,内存块分配采用最小匹配原则。定时器管理模块提供1000个精度为Ims的相对定时和精度为Is的绝对定时。调度管理模块对Vxworks系统进行优化,在任务的基础上引入二级调度的机制。系统监控模块实时监控系统CPU使用情况,如发现有进程CPU占用超过90%持续I分钟以上或进程发生死锁,则记录该异常信息并且重启该进程。文件管理模块用于管理系统日志,将日志文件划分为IM大小的20个日志文件进行循环覆盖,采用zlib算法库对文件进行压缩。异常管理模块用于捕捉系统的异常情况,对发生异常时刻函数调用关系进行分析和记录。
网络管理模块为应用程序搭建统一的网络通信平台建立统一的网络线程池,线程池中的线程平时处于空闲状态不占用系统资源,当有网络传输请求时,网络管理模块在线程池中取出空闲的线程与需要网络传输的上层应用进行绑定。本发明的有益效果在于软件支撑平台与上层应用系统的开发分离,应用系统的开发摆脱了对操作系统的高度依赖,有效提高了上层应用系统的可移植性;通过内存管理模块、文件管理模块、定时器管理模块等功能提高了系统的实时性。可加快实时性要求高的可移植嵌入式应用系统的开发进程 。


图I是嵌入式软件支撑平台结构图;图2是嵌入式软件支撑平台实例示意图。
具体实施例方式下面对本发明具体技术方案作进一步说明。本发明旨在提供一种可移植、实时性强的嵌入式软件支撑平台。具体有两个创新点,第一个创新点是在不同的商用操作系统上增加一个相对应的操作系统适配层,完全屏蔽各种硬件平台和操作系统的差异,封装操作系统的核心资源和系统服务,提供统一的接口以方便基于操作系统的调用,从而实现应用系统的可移植性;另一个创新点是在操作系统适配层之上,实现系统监控、网络管理、异常处理、调度管理、内存管理、定时管理和文件管理的功能。为上层的应用系统提供支撑功能,增强系统的实时性。本发明的工作原理是设计实现与不同操作系统相对应的操作系统适配层,来屏蔽硬件平台和操作系统之间的差异并向上层提供接口统一的核心资源和系统服务,实现硬件平台无关性和软件平台无关性。然后由7个模块来实现软件支撑功能,具体实现如下系统监控模块监控任务的周期性运行和CPU、内存等系统资源使用情况。设置CPU、内存的使用上限并在超限时报警;网络管理模块用于实现联网功能,使客户可直接访问上层的应用程序和内存数据库;异常处理模块的主要功能是通过底层操作系统截获异常,保存异常的详细现场信息,对异常点进行定位。通过对发生异常的进程的堆栈进行回溯分析,来得到异常发生前的函数调用关系;调度管理模块对于存在多进程多线程的系统,统计系统进程、线程的运行状态、切换次数,以便对系统状态进行分析;内存管理模块接管操作系统的内存管理,重新设计了内存管理的用户接口,在系统初始化时向操作系统申请一大块连续的内存区,再将该区划分为若干内存池,每个内存池中有数量不等、大小固定的内存块,其在池中的数量可按需配置。用户通过内存管理接口申请内存时,内存管理模块就查找各个内存池中满足要求的最小内存块并标记为“占用”,然后不加切割地分配给用户使用。内存回收时按照待释放内存块的首地址找到其所属的内存池,将该块标记为“空闲”放回该池即可;定时管理模块采用自行设计定时管理算法,针对每一个tick要处理大量定时器问题,通过设计定时器队列并在每一个tick对定时器队列进行扫描的机制,来实现对大量定时器的管理,以满足性能要求;文件管理模块为应用程序提供统一的文件操作接口,屏蔽底层操作系统和不同存储介质存取数据的具体实现细节,上层应用系统使用相同的方法来访问硬盘、闪存等存储介质。
本发明由板极支持包(BSP)、操作系统适配层和7个公共模块组成。用户可使用本发明开发和实施其应用系统,而无需考虑操作系统及硬件的具体细节。BSP对底层硬件板提供支持,方便程序在不同底层硬件平台之间的移植,支持的硬件平台包括x86、ARM和power pc等。其上层为商用操作系统,包括Vxworks、Linux和μ cos等。用户可根据应用系统硬件的需要,对BSP进行补充、修改。操作系统适配层位于BSP和操作系统之上,相当于一个虚拟的操作系统,对操作系统进行封装。应用系统设计人员在其上构建独立于具体操作系统的嵌入式软件支撑平台的7个公共模块,进而构建跨平台的上层应用。其主要功能包括任务或线程封装,信号量封装,消息队列封装,文件系统封装。公共模块位于操作系统适配层之上,功能独立,操作系统适配层向其提供操作系统调用功能的支持。公共模块包括内存管理、定时器管理、调度管理、系统监控、文件管理、 异常处理、网络管理7个模块。每一个模块都向上层应用系统提供特定功能。每一个模块 都具有平台无关性,可方便地移植到不同系统。内存管理模块按照应用的需求来划分内存池和管理内存块的大小,用户可以通过配置文件灵活配置内存池及内存块大小,每个内存池包含一定数量大小相等的内存块,内存块分配采用最小匹配原则。例如系统划分了内存池A包含10个16K内存块及内存池B包含了 10个32K内存块,用户需要IOK的内存块,那么就会从内存池A取出一块空闲的16K内存块使用。定时器模块可提供1000个精度为Ims的相对定时和精度为Is的绝对定时。由于不同操作系统不同CPU架构定时机制和精度不同,在BSP层和操作系统适配层对不同硬件和不同操作系统定时功能进行封装,提供给定时器模块使用。调度管理模块对Vxworks系统做了优化,在任务的基础上引入二级调度的机制,相当于在进程中封装一层线程调度,对线程采用FIFO的调度方式。对于Linux系统已经存在进程和线程调度方式,我们统计了系统进程、线程的运行状态、切换次数,以便对系统状态进行分析。系统监控模块实时监控系统CPU使用情况,如发现有进程CPU占用超过90%持续I分钟以上,记录该异常信息并且重启该进程;同时也监控进程是否发生死锁,如果CPU在一个进程一段时间内没有向下执行新的指令,则认为该进程出现死锁,记录异常日志并且重启该进程。文件管理模块实现对系统日志的管理。由于嵌入式系统一般采用Flash作为数据存储,存储容量较小,文件管理模块将日志文件划分为每一个为IM大小,一共20个日志文件循环覆盖,并且采用zlib算法库对文件进行压缩,兼容Windows下Winrar及Linux下tar解压算法。异常处理模块可捕捉系统异常,记录异常出现时刻的系统状态。采用栈回溯的原理对发生异常时刻函数调用关系进行分析和记录。由于栈回溯算法依赖于对CPU寄存器的访问,不同CPU架构寄存器组织方式不同,我们针对x86、ARM、PPC三种CPU架构分别做了栈回溯算法。网络管理模块为应用程序搭建一个统一的网络通信平台。我们建立一个统一的网络线程池,线程池中的线程平时处于空闲状态不占用系统资源,当有网络传输请求时,网络管理模块在线程池中取出空闲的线程与需要网络传输的上层应用进行绑定。这种机制可以支持同时1000个链路的数据传输,极大满足了上层应用的网络传输需求。嵌入式软件支撑平台的使用方法为首先选定适合的底层硬件板,根据用户的需求对底层的板级支持包加以修改和补充;然后选择相应的操作系统,进而选择相对应的操作系统层的适配模块,包括对该操作系统的信号量、消息队列、进程和线程等系统调用的封装;再根据系统具体应用需求选择对应中间件。可选择的中间件包括内存管理、定时器管理、调度管理、系统监控、文件管理、异常处理、网络管理这7个公共模块。调度管理、系统监控和异常处理属于必选模块,其他模块可根据需求适当配置。例如,若系统需实现定时器和网络功能,则将此两模块与前述的必选模块合并放入makefile中再对系统进行编译,即可实现定制化的平台功能。通过这些中间件的支持可容易地实现上层应用。可极大地增强系统的可移植性和实时性。实施例I如图2,以ARM硬件平台为例,首先选定对应的操作系统,如Linux。根据Linux系统选择其对应的操作系统适配模块,包括对Linux系统的信号量、消息队列、进程和线程等系统调用的封装;再根据系统具体应用需求选择对应中间件。可选择的中间件包括内存管理、定时器管理、调度管理、系统监控、文件管理、异常处理、网络管理这几个公共模块。调度管理、系统监控、异常管理属于必选模块,其他模块可根据需求配置。例如系统需要实现定时器和网络功能,那么将这两块模块加前面几个必选模块放在makefile中对系统一起进行编译,即实现了定制化的平台功能。通过这些中间件的支持可以容易地实现上层应用。权利要求
1.一种嵌入式软件支撑平台,包括板级支持包、操作系统适配层、公共模块,其特征是商用操作系统构建在板级支持包上,操作系统适配层构建在商用操作系统上,公共模块构建在操作系统适配层上,公共模块包括功能相互独立的调度管理模块、系统监控模块、异常管理模块、内存管理模块、定时器管理模块、文件管理模块、网络管理模块,公共模块为上层应用程序提供功能支撑,用于任务或线程封装、信号量封装、消息队列封装、文件系统封装,屏蔽不同硬件平台、操作系统的差异,操作系统适配层具有统一的接口供操作系统调用。
2.根据权利要求I所述的一种嵌入式软件支撑平台,其特征是所述的内存管理模块用于划分并管理内存池和内存块,内存管理模块通过配置文件配置内存池及内存块大小。
3.根据权利要求2所述的一种嵌入式软件支撑平台,其特征是所述的内存池由大小相等的内存块组成,内存块分配采用最小匹配原则。
4.根据权利要求I或2所述的一种嵌入式软件支撑平台,其特征是所述定时器管理模块提供1000个精度为Ims的相对定时和精度为Is的绝对定时。
5.根据权利要求4所述的一种嵌入式软件支撑平台,其特征是所述调度管理模块对Vxworks系统进行优化,在任务的基础上引入二级调度的机制。
6.根据权利要求5所述的一种嵌入式软件支撑平台,其特征是所述系统监控模块实时监控系统CPU使用情况,如发现有进程CPU占用超过90%持续I分钟以上或进程发生死锁,则记录该异常信息并且重启该进程。
7.根据权利要求6所述的一种嵌入式软件支撑平台,其特征是所述文件管理模块用于管理系统日志,将日志文件划分为IM大小的20个日志文件进行循环覆盖,采用zlib算法库对文件进行压缩。
8.根据权利要求7所述的一种嵌入式软件支撑平台,其特征是所述异常管理模块用于捕捉系统的异常情况,对发生异常时刻函数调用关系进行分析和记录。
9.根据权利要求8所述的一种嵌入式软件支撑平台,其特征是所述网络管理模块为应用程序搭建统一的网络通信平台建立统一的网络线程池,线程池中的线程平时处于空闲状态不占用系统资源,当有网络传输请求时,网络管理模块在线程池中取出空闲的线程与需要网络传输的上层应用进行绑定。
全文摘要
本发明涉及软件支撑平台领域,具体为一种采用中间件技术和虚拟机原理,适应不同硬件平台和操作系统的嵌入式软件支撑平台。本发明包括板级支持包、操作系统适配层、公共模块,商用操作系统构建在板级支持包上,操作系统适配层构建在商用操作系统上,公共模块构建在操作系统适配层上,公共模块为上层应用程序提供支撑功能,用于任务或线程封装、信号量封装、消息队列封装、文件系统封装,屏蔽不同硬件平台、操作系统的差异。本发明的软件支撑平台与上层应用系统的开发分离,应用系统的开发摆脱了对操作系统的高度依赖,有效提高了上层应用系统的可移植性;通过内存管理模块、文件管理模块、定时器管理模块等功能提高了系统的实时性。
文档编号G06F9/44GK102779047SQ20121023628
公开日2012年11月14日 申请日期2012年7月9日 优先权日2012年7月9日
发明者丁继成, 李健利, 李玉兵, 许兆新, 赵琳, 郝勇, 闫保中, 马兴成, 黄卫权, 黄超 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1