对嵌入式系统进行在线监测的方法及其系统的制作方法

文档序号:6411667阅读:134来源:国知局
专利名称:对嵌入式系统进行在线监测的方法及其系统的制作方法
技术领域
本发明涉及嵌入式系统的监测技术,特别涉及嵌入式系统中软件的监测技术。
背景技术
嵌入式系统作为具有良好的应用前景的一项技术,在越来越多的领域得到了广泛的应用。据统计,每年只有10%-20%的计算机芯片用于台式机或笔记本电脑等,这就意味着每年有10亿~20亿块中央处理器(Central ProcessingUnit,简称“CPU”)是为嵌入式系统设计和制造的;每年有超过1万个新的嵌入式系统计划产生,它们被广泛应用到工业控制系统、仿真系统、医疗仪器、信息家电、通信设备等众多领域中,而且科技的不断更新将进一步促进嵌入式系统的发展。
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统和一般的个人计算机(Personal Computer,简称“PC”)的系统不同,嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。同时,为了提高执行速度和系统可靠性,嵌入式系统中的软件存储在非挥发性只读存储器中,以固化态出现,也称为固件(firmware),固件一旦设计完成就很难更改和升级,维护成本较高。
按照完成的功能,嵌入式系统一般是由下面几个模块组成的计算机系统或者单片微处理器,字长可以是4位、8位、16位、32位等;用以保存固件的非挥发性只读存储器;用以存程序数据的挥发性的随机访问存储器;连接微控制器和用户接口器件,如开关、按钮、传感器、模数转化器、控制器、发光二极管和显示器端口等;嵌入式操作系统,用于管理资源、协调整个系统的运行。
嵌入式系统开机时,系统将存储在非挥发性只读存储器中的固件加载到系统的随机访问存储器,如同步动态随机访问存储器(Synchronous DynamicRandom Access Memory,简称“SDRAM”)上运行,运行时可以快速的随机的存取修改程序数据。例如,在嵌入式系统软件中的一个消息分发处理流程中,处理流程如图1所示。系统判定消息是否为系统定义消息,如果是则按照系统的定义进行处理,否则进行缺省处理。需要说明的是,通常消息分发处理流程是一个循环,在此为了说明方便仅说明了一个循环周期内的处理。
嵌入式系统按形态可分为设备级、板级和芯片级。设备级的嵌入式系统通常用于工程控制;板级的嵌入式系统的应用主要集中在航空航天、电话电讯等设备上;芯片级的嵌入式系统,即通常所说的片上系统(System on Chip,简称“SoC”),主要应用在消费电子、互联网络和手持设备等产品上。其中,板级的嵌入式系统又称为单板,是嵌入式系统的主要市场。
为了保证嵌入式系统运行的可靠性,需要对嵌入式系统软件进行测试,尤其在嵌入式系统加载固件后,运行时所进行的在线测试就是测试的一个重要步骤。现有技术中,嵌入式系统软件在线测试的监测软件运行的手段和在线测试技术比较缺乏,例如在对单板进行测试的时候,通常只是在单板硬件运行中通过示波器的探针测试单板中预设的测试点,检验测试点的输出波形,来完成单板的在线测试。
在实际应用中,上述方案存在以下问题现有的技术在嵌入式系统软件的在线测试时比较难以实现嵌入式系统软件的运行情况的监测和故障的定位,并且无法为嵌入式系统软件增加补丁。
造成这种情况的主要原因在于,现有技术在固件加载后,不支持嵌入式系统软件在线运行时进行补丁和测试程序升级,无法对嵌入式系统软件在线运行时的情况进行监测;其次,现有技术在软件原因或者硬件原因导致嵌入式运行故障时,故障定位比较困难,而且由于很多故障在系统软复位或者硬复位后无法重现,更加增加了故障定位的难度;而且,嵌入式系统软件由于是预先定制的关系,当需要升级的通常是软件全面升级,一般不能进行补丁。

发明内容
有鉴于此,本发明的主要目的在于提供一种对嵌入式系统进行在线监测的方法及其系统,使得嵌入式系统软件的运行状态得到监测,解决嵌入式系统运行中的故障定位困难以及无法在线进行补丁和测试程序升级运行的问题。
为实现上述目的,本发明提供了一种对嵌入式系统进行在线监测的方法,包含以下步骤A在所述嵌入式系统的软件中增加接口函数定义,开发用于在线监测的实现所述接口函数的补丁程序;B在线下载所述补丁程序,存储于和所述嵌入式系统软件处于不同内存代码段的内存空间;C根据预先约定的存储补丁有效标志和补丁接口定义的内存空间地址,在线下载所述补丁程序时更新所述补丁有效标志和所述补丁接口定义;D在线运行所述嵌入式系统软件,当所述补丁有效标志为有效时,调用所述接口函数。
其中,所述补丁程序包含所述补丁有效标志和所述补丁接口定义的更新信息,在线下载时在所述补丁接口定义中提供所述补丁程序中所述接口函数的指针。
使用编译器提供的为函数和变量指定代码段和运行段的方式实现所述补丁程序使用的代码段和数据段在内存空间上与所述单板软件完全独立。
所述方法还包含以下步骤将实现所述接口函数的补丁程序源代码和所述嵌入式系统软件源代码共同编译生成可以分离下载的补丁程序,所述补丁程序共享所述嵌入式系统软件的资源。
在所述嵌入式系统软件中可以增加多个不同的接口函数的定义,在所述补丁有效标志和所述补丁接口定义内存储所述多个接口函数的有效标志和指针。
本发明还提供了一种对嵌入式系统进行在线监测的系统,包含用于实现所述嵌入式系统基本软件功能的嵌入式系统软件,用于实现监测功能的可以在线下载的补丁程序,用于标志所述补丁程序是否有效的补丁有效标志,用于提供访问所述补丁程序的指针的补丁接口定义;所述嵌入式系统软件在所述补丁有效标志为有效时,通过所述补丁接口定义中的所述指针调用所述补丁程序;其中,所述各个模块各自存储在独立的内存代码段内,所述补丁有效标志和所述补丁接口定义的存储地址由所述嵌入式系统软件和所述补丁程序共同约定。
其中,所述补丁程序在线下载时更新所述补丁有效标志和所述补丁接口定义。
所述补丁程序和所述嵌入式系统软件共同编译,在生成的目标代码中分离出补丁程序用于单独在线下载执行,所述补丁程序可以访问所述嵌入式系统软件中的各个变量和函数。
通过比较可以发现,本发明的技术方案与现有技术的区别在于,本发明方案在嵌入式系统软件中预先定义接口函数,在线下载用于实现接口函数以监测和测试的各种补丁程序,同时由补丁程序为嵌入式系统软件在约定的内存空间内提供接口函数是否有效的标志和函数指针,通过在嵌入式系统软件中需要进行监测和测试的地方增加依据标志是否有效调用接口函数的代码,运行接口函数实现嵌入式系统软件运行情况的监测和测试。
这种技术方案上的区别,带来了较为明显的有益效果,即首先,本发明对嵌入式系统软件在线测试和补丁的方案可以通过在线下载各种不同的补丁程序进行相应的测试,测试程序的更新非常方便,大大简化对嵌入式系统软件的测试,提高了测试的可靠性。
其次,本发明提供了一种在线进行嵌入式系统软件的运行状态监测和测试的新方法,解决了嵌入式系统软件运行时的不中断正常功能执行下的运行状态监测和测试的问题。
最后,由于不需要中断嵌入式系统软件的运行,可以运行补丁程序随时监测嵌入式系统软件的运行情况,并且在出现故障时,依据补丁程序的运行结果很容易进行故障定位。


图1为现有嵌入式系统软件中的消息分发处理流程的示意图;图2为根据本发明的一个较佳实施例的对嵌入式系统软件进行在线测试和补丁的软件系统中各个软件模块在内存中存储分配的示意图;图3为根据本发明的一个较佳实施例的对嵌入式系统软件进行在线测试和补丁的方法的流程图;图4为根据本发明的一个较佳实施例的嵌入式系统软件的消息分发处理流程中增加接口定义和调用的流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
首先说明本发明的基本原理。本发明方案在嵌入式系统软件设计时在软件中预定义接口函数,在接口函数有效时进行接口函数调用,在线加载实现接口函数的补丁程序,通过运行补丁程序实现新增特殊测试功能或者新增业务功能。熟悉本领域的技术人员可以理解,本发明方案的构思类似于单板硬件运行中通过示波器的探针测试单板中预设的测试点的状态,预设“软探针”即预定的接口函数,通过“软示波器”即执行接口函数运行在线下载的补丁程序,实现对嵌入式系统软件的测试,并可以在出现故障时根据输出的测试结果进行故障定位。
本发明的有以下几个关键点1.在嵌入式系统软件中增加接口函数定义并在接口函数有效时调用接口函数;2.实现接口函数的补丁程序和嵌入式系统软件分别存储在内存的不同代码段,补丁程序可以单独在线下载;3.嵌入式系统软件和补丁程序约定补丁有效标志和补丁接口定义的存储地址,更新补丁程序的同时更新补丁有效标志和补丁接口定义。
下面结合本发明的一个具体实施例来说明本发明方案。
根据本发明的一个较佳实施例的对嵌入式系统软件进行在线测试和补丁的系统中各个软件模块在内存中存储分配的示意图如图2所示。其中,该较佳实施例中,嵌入式系统为一个单板系统,单板使用的CPU是MPC860,同时使用了16M SDRAM内存,开发工具使用PSOS。
对嵌入式系统软件进行在线测试和补丁的软件系统包含以下几个软件模块嵌入式系统软件,补丁有效标志,补丁接口定义和补丁程序。其中,这些软件模块各自独立存储在内存的不同区域。
嵌入式系统软件在嵌入式系统运行前加载,在被执行时运行嵌入式系统的各种处理程序,在运行过程中访问补丁有效标志,在补丁有效时根据补丁接口定义提供的接口函数入口访问外部的函数运行补丁程序。熟悉本领域的技术人员可以理解,这需要对现有的嵌入式系统软件进行少许改动,增加接口函数的定义和调用的代码。
补丁有效标志用于标识补丁程序中的接口函数是否有效,在线下载补丁运行程序时可以被改变。在本发明的一个较佳实施例中,当需要进行一项新的测试时,在线下载新的补丁程序,此时将该补丁程序中的接口函数对应的补丁有效标志修改为有效。
补丁接口定义用于向嵌入式系统软件提供接口函数的指针,指示补丁程序中接口函数的入口地址,每次在线下载补丁运行程序时,补丁接口定义被重新设定。在本发明的一个较佳实施例中,在补丁程序编译时已经预先设定了补丁程序在内存中的存储地址,当需要在线增加一项新的系统功能时,在线下载新的补丁程序时将补丁接口定义中的接口函数的指针设定为指向补丁程序中对应接口函数的入口地址。
补丁程序用于为嵌入式系统软件提供接口函数实现,在线下载到内存时修改补丁有效标志和补丁接口定义,在被执行时可以访问嵌入式系统软件的资源,包括嵌入式系统软件中的各个变量和函数,实现测试功能或新增系统功能。其中,补丁程序可以是测试程序也可以是用于增加系统功能的程序。
需要说明的是,补丁有效标志和补丁接口定义的形式和存储地址由嵌入式系统软件和补丁程序共同约定。
熟悉本领域的技术人员可以理解,补丁有效标志可以标识多个补丁是否有效。其中,这些补丁中的接口函数在嵌入式系统软件的不同程序段被调用,其对应的接口函数的定义和指针存储在补丁接口定义中。需要说明的是,多个接口函数的可以在一个补丁程序内实现。
根据本发明的一个较佳实施例的对嵌入式系统软件进行在线测试和补丁的方法的流程图如图3所示。
首先进入步骤100,根据需要在嵌入式系统软件中增加接口函数定义和调用。需要说明的是,在该步骤中,增加的接口函数定义和调用可以为多个,例如在本发明的一个较佳实施例中,在嵌入式系统软件的一个消息分发处理流程中,就增加了两个接口函数的调用,一个在消息分发处理流程开始之前进行调用,一个在消息分发处理流程进行缺省处理之前进行。需要说明的,增加的接口函数需要在嵌入式系统软件中进行预先的声明。关于依据本发明的一个较佳实施例的在嵌入式系统软件的一个消息分发处理中增加接口函数调用的流程,将在下文详细说明。熟悉本领域的技术人员可以理解,通过在嵌入式系统软件需要监测的位置增加相应接口函数的调用,在接口函数调用中执行一定的代码,就可以监测嵌入式系统软件的运行状态,并在出现故障时为技术人员提供参考信息以便于进行故障定位。
接着进入步骤200,编写补丁程序完成接口函数的实现,并编译生成可以在线下载的存储上独立于嵌入式系统软件的补丁程序。在本发明的一个较佳实施例中,补丁程序通过和嵌入式系统软件约定的存储在固定内存空间处的补丁有效标志,提供补丁程序校验标志供嵌入式系统软件判断补丁程序中的接口函数是否有效,以实现在线加载后嵌入式系统软件根据标志调用相应接口函数;同时,补丁程序通过和嵌入式系统软件约定的存储在固定内存地址处的补丁接口定义,为补丁程序提供接口函数的指针作为各接口的访问地址。需要说明的是,补丁程序在原有嵌入式系统软件基础上开发,与嵌入式系统软件的原始代码同时编译,在生成的目标代码中分离出补丁程序用于单独在线下载执行,补丁程序使用的代码段和数据段在内存空间上与嵌入式系统软件完全独立。熟悉本领域的技术人员可以理解,补丁程序的独立内存空间的实现可以使用编译器提供的为函数和变量指定代码段和运行段的方法进行实现,例如在单板CPU为MPC860,开发工具为PSOS的嵌入式系统的环境下,可以通过#pragma SECTION编译开关来实现补丁程序中的函数和变量使用特定代码段和数据段进行存放,并通过LNK文件将这些段存放到指定的内存位置。
接着进入步骤300,在线下载补丁程序。其中,可供嵌入式系统软件运行时调用的补丁程序有多种,在线下载何种补丁程序由测试的需要决定。例如,在本发明的一个较佳实施例中,需要测试嵌入式系统软件中的消息分发处理流程,则下载测试分发处理流程中调用的接口函数对应的补丁程序。需要说明的是,在下载补丁程序的时候,在补丁程序和嵌入式系统软件约定好的固定内存空间内的补丁有效标志和补丁接口定义也同时被更新。
接着进入步骤400,执行嵌入式系统软件。其中,嵌入式系统软件中包含查询补丁有效标志,并依据查询结果调用相应接口函数的指令。
接着进入步骤500,嵌入式系统软件调用接口函数,运行补丁程序。其中,调用接口函数时,通过补丁接口定义得到接口函数的入口地址。
至此,完成对嵌入式系统软件在线测试和补丁的处理流程。
其中,根据本发明的一个较佳实施例的对嵌入式系统软件的消息分发处理流程中增加接口函数调用的流程如图4所示。
首先进入步骤110,判断补丁1是否有效,如果是则进入步骤120,否则进入步骤130。该步骤中,补丁1是否有效通过检查嵌入式系统软件和补丁程序共同约定的存储在固定内存空间内的补丁有效标志确定。
在步骤120中,执行接口函数1,接着进入步骤130。其中,接口函数1的由补丁1对应的补丁程序实现,嵌入式系统软件通过补丁接口定义中的接口函数1的指针调用接口函数1。
在步骤130中,判断消息类型。其中,嵌入式系统的消息类型由系统的嵌入式系统软件定义。
接着进入步骤140,判断消息是否为系统定义的消息,如果是则进入步骤160,否则进入步骤150。熟悉本领域的技术人员理解,在现有的技术中,如果是系统定义的消息,则在嵌入式系统软件中会有对应的处理代码;如果不是则通常进行缺省处理。
在步骤150中,判断补丁2是否有效,如果是则进入步骤170,否则进入步骤180。该步骤中,补丁2是否有效通过检查嵌入式系统软件和补丁程序共同约定的存储在固定内存空间内的补丁有效标志确定。
在步骤160中,执行嵌入式系统软件中处理该消息的代码后结束。其中,该消息处理的代码和原有的嵌入式系统软件中的代码完全相同。
在步骤170中,执行接口函数2后结束。其中,接口函数2的由补丁2对应的补丁程序实现,嵌入式系统软件通过补丁接口定义中的接口函数2的指针调用接口函数2。在本发明的一个较佳实施例中,补丁1和补丁2在同一个补丁程序里实现,它们对应的接口函数的指针存储在嵌入式系统软件和补丁程序共同约定的固定地址的内存中,即存储在上文所述补丁接口定义中。
在步骤180中,进行缺省处理后结束。其中,缺省处理由嵌入式系统软件实现。
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
权利要求
1.一种对嵌入式系统进行在线监测的方法,其特征在于,包含以下步骤A在所述嵌入式系统的软件中增加接口函数定义,开发用于在线监测的实现所述接口函数的补丁程序;B在线下载所述补丁程序,存储于和所述嵌入式系统软件处于不同内存代码段的内存空间;C根据预先约定的存储补丁有效标志和补丁接口定义的内存空间地址,在线下载所述补丁程序时更新所述补丁有效标志和所述补丁接口定义;D在线运行所述嵌入式系统软件,当所述补丁有效标志为有效时,调用所述接口函数。
2.根据权利要求1所述的对嵌入式系统进行在线监测的方法,其特征在于,所述补丁程序包含所述补丁有效标志和所述补丁接口定义的更新信息,在线下载时在所述补丁接口定义中提供所述补丁程序中所述接口函数的指针。
3.根据权利要求1所述的对嵌入式系统进行在线监测的方法,其特征在于,使用编译器提供的为函数和变量指定代码段和运行段的方式实现所述补丁程序使用的代码段和数据段在内存空间上与所述单板软件完全独立。
4.根据权利要求1所述的对嵌入式系统进行在线监测的方法,其特征在于,所述方法还包含以下步骤将实现所述接口函数的补丁程序源代码和所述嵌入式系统软件源代码共同编译生成可以分离下载的补丁程序,所述补丁程序共享所述嵌入式系统软件的资源。
5.根据权利要求1所述的对嵌入式系统进行在线监测的方法,其特征在于,在所述嵌入式系统软件中可以增加多个不同的接口函数的定义,在所述补丁有效标志和所述补丁接口定义内存储所述多个接口函数的有效标志和指针。
6.一种对嵌入式系统进行在线监测的系统,其特征在于,包含用于实现所述嵌入式系统基本软件功能的嵌入式系统软件,用于实现监测功能的可以在线下载的补丁程序,用于标志所述补丁程序是否有效的补丁有效标志,用于提供访问所述补丁程序的指针的补丁接口定义;所述嵌入式系统软件在所述补丁有效标志为有效时,通过所述补丁接口定义中的所述指针调用所述补丁程序;其中,所述各个模块各自存储在独立的内存代码段内,所述补丁有效标志和所述补丁接口定义的存储地址由所述嵌入式系统软件和所述补丁程序共同约定。
7.根据权利要求6所述的对嵌入式系统进行在线监测的系统,其特征在于,所述补丁程序在线下载时更新所述补丁有效标志和所述补丁接口定义。
8.根据权利要求6所述的对嵌入式系统进行在线监测的系统,其特征在于,所述补丁程序和所述嵌入式系统软件共同编译,在生成的目标代码中分离出补丁程序用于单独在线下载执行,所述补丁程序可以访问所述嵌入式系统软件中的各个变量和函数。
全文摘要
本发明涉及嵌入式系统的监测技术,公开了一种对嵌入式系统进行在线监测的方法及其系统,使得嵌入式系统软件的运行状态得到监测,解决嵌入式系统运行中的故障定位困难以及无法在线进行补丁和测试程序升级运行的问题。这种对嵌入式系统进行在线监测的方法及其系统在嵌入式系统的软件中预先定义接口函数,在线下载用于实现接口函数以监测和测试的各种补丁程序,同时由补丁程序为嵌入式系统软件在约定的内存空间内提供接口函数是否有效的标志和函数指针,通过在嵌入式系统软件中需要进行监测和测试的地方增加依据标志是否有效调用接口函数的代码,运行接口函数实现嵌入式系统软件运行情况的监测和测试。
文档编号G06F11/36GK1737773SQ200410053779
公开日2006年2月22日 申请日期2004年8月16日 优先权日2004年8月16日
发明者沈同林, 李旭 申请人:上海华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1