CN101329631A - 一种嵌入式系统自动检测和恢复启动的方法及装置 - Google Patents

一种嵌入式系统自动检测和恢复启动的方法及装置 Download PDF

Info

Publication number
CN101329631A
CN101329631A CNA2007101177028A CN200710117702A CN101329631A CN 101329631 A CN101329631 A CN 101329631A CN A2007101177028 A CNA2007101177028 A CN A2007101177028A CN 200710117702 A CN200710117702 A CN 200710117702A CN 101329631 A CN101329631 A CN 101329631A
Authority
CN
China
Prior art keywords
bsp
file
bsp file
program area
main program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101177028A
Other languages
English (en)
Other versions
CN101329631B (zh
Inventor
李文
笪禹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN2007101177028A priority Critical patent/CN101329631B/zh
Publication of CN101329631A publication Critical patent/CN101329631A/zh
Application granted granted Critical
Publication of CN101329631B publication Critical patent/CN101329631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式系统自动检测和恢复启动的方法:将存储区划分为应用程序区、BSP压缩程序区、BSP主程序区和系统初始化程序区;替换BSP主程序区中的BSP文件;对替换后的BSP文件进行有效性检测;将通过有效性检测的BSP文件替换到BSP压缩程序区。同时还公开了一种嵌入式系统自动检测和恢复启动的装置,包括BSP主程序区BSP文件替换模块、BSP文件有效性检测模块和BSP压缩程序区BSP文件替换模块。通过本发明提供的方法和装置,提高了BSP文件升级的可靠性和系统的可维护性,减少了对系统资源的占用。

Description

一种嵌入式系统自动检测和恢复启动的方法及装置
技术领域
本发明主要涉及嵌入式系统,尤其涉及一种嵌入式系统自动检测和恢复启动的方法及装置。
背景技术
板级支持包(BSP,Board Support Package)文件在嵌入式系统初始化启动过程中扮演着重要的角色,BSP文件存在专门的只读存储器(ROM)中,并且要求它具有很高的可靠性。随着系统初始化(BOOT)程序功能的不断增强,BSP文件的大小也将不断增加。
目前,BSP文件升级的方法为:在ROM中设置主存储区和备存储区,升级过程中,先在备存储区中完成BSP文件的升级,然后以备存储区的BSP文件进行启动,如果备存储区的BSP文件启动失败,设置标志,再次重新启动,以恢复主存储区启动;如果备存储区的BSP文件启动成功,则将备存储区的BSP文件更新到主存储区中。
由于ROM器件的访问速度存在限制,在对BSP文件进行升级的过程中,如果出现复位、掉电等故障,或者BSP文件所在的ROM空间位发生翻转等错误,将会使BSP文件受到破坏,为了恢复被破坏的BSP文件,往往需要采用专门的烧写工具重新对ROM进行烧写,完成对BSP文件的恢复。这种现有的BSP文件自恢复技术除了具有成本高和不利于大批量产品维护的缺点外,还存在以下不足:
仅仅依靠定时器或者设置标志来被动地判断BSP文件启动是否失败,容易导致误判。比如,依靠在BSP文件启动之后设置某种标志,通过判断该标志是否置位来确定板卡是否启动正常,然而在实际使用嵌入式系统设备过程中,用户有时会在启动阶段就对设备进行复位,这种复位将直接造成BSP文件启动异常的误判,引起在主存储区和备存储区间不断倒换选择主、备存储区内的BSP文件,从而导致设备的多次频繁复位。
被动地依靠各种标志或定时器来判断BSP文件启动是否正常,由于这种判断过程中可能出现异常情况,因而容易导致BSP文件的误升级。例如,当出现异常时,为了使系统能够切换到主存储区启动其内部的BSP文件,就需要在备存储区的BSP文件中先设置标志;然后再次重启,复位以后,根据该标志决定是否启动主存储区的BSP文件。这种方式存在问题包括:当BSP文件不能启动时,BSP文件将不能自动触发重启,从而需要手工对设备进行重启,难于维护;另外,当借助外部定时器通过定时检查来触发复位,这样虽然解决了重启的触发条件,但由于每次启动定时器都需要做定时检查,加大了定时器工作异常的概率,同时定时器的定时检查会增加对系统资源的长期占用。
无法判断BSP文件是否因某种原因而损坏,更不能主动发现BSP文件本身是否被破坏。例如文件在传输过程中被修改,或者存放在ROM中的BSP文件由于ROM存储介质的损坏而被破坏。
BSP文件占用了很大的存储区空间,限制了BSP文件的可移植性,由于BSP文件需要分别存储在主存储区和备存储区中,因此占用了较大的ROM存储空间。如,嵌入式系统对于ROM的存储空间非常敏感,总是期望尽可能少的占用ROM的存储空间。但是,随着BSP文件的功能越来越强大,BSP文件所占空间也相应越来越大。不同的操作系统,BSP文件的大小也有区别,例如,在嵌入式实时多任务操作系统(VxWorks)下,BSP文件的大小为1M左右,而在Linux操作系统下,BSP文件的大小往往更大,使得对存储区的空间需求就大,从而在一定意义上限制了BSP文件的可移植性。
最后,缺少相应的系统告警措施,它没有考虑对于在主存储区和备存储区之间进行切换的后续告警处理,当发生版本回退等问题时,用户无法及时发现。
发明内容
有鉴于此,本发明的目的在于提供一种嵌入式系统自动检测和恢复启动的方法及装置,该方法及装置达到了提高BSP文件升级的可靠性、减少对系统资源的占用、以及提高系统的可维护性的目的。
本发明提供了一种嵌入式系统自动检测和恢复启动的方法,其特征在于,该嵌入式系统的存储区包括:应用程序区、BSP板级支持包压缩程序区、BSP主程序区和系统初始化程序区,该方法包括以下步骤:
A.替换BSP主程序区中的BSP文件;
B.对替换后的BSP文件进行有效性检测;
C.将通过有效性检测的BSP文件替换到BSP压缩程序区。
该方法所述步骤A包括:
A1.根据BSP文件计算出第二校验信息;
A2.判断该BSP文件是否带有第一校验信息,如果是,进入步骤A3,否则,进入步骤A4;
A3.判断第一校验信息与第二校验信息是否匹配,如果是,进入步骤A4,否则,进入步骤A5;
A4.将BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件;
A5.确定BSP文件替换失败,上报告警信息。
该方法所述步骤A4与A5之间进一步包括:
根据写入BSP主程序区的BSP文件计算出第三校验信息,判断该第三校验信息与第二校验信息是否匹配,如果是,确定BSP文件替换成功;否则,进入步骤A5。
该方法所述步骤B包括:
B1.设置硬件复位相关资源标志,该标志包括BSP文件有效性检测标志和请求版本回退标志;
B2.进行硬件无关重启;
B3.判断硬件复位相关资源标志类型是否为BSP文件有效性检测标志;如果是,则进入步骤B4;否则,进入步骤B5;
B4.进行BSP文件有效性检测,监控BSP文件的启动过程,进入步骤B6;
B5.启动版本回退流程;
B6.启动用户程序。
该方法所述步骤B5与B6之间进一步包括:
判断BSP文件启动是否成功,如果是,进入步骤B6;否则,进入步骤B1。
该方法所述判断BSP文件启动是否成功前进一步包括:
判断BSP文件是否完整,如果是,判断BSP文件启动是否成功;否则,进入步骤B5。
该方法所述步骤C包括:
C1.判断BSP主程序区中的BSP文件是否完整,如果是,进入步骤C2;否则,进入步骤C5;
C2.启动监控机制,并运行该BSP文件;
C3.判断该BSP文件启动运行是否正常,如果是,进入步骤C4;否则,进入步骤C5;
C4.记录正常启动该BSP文件的结果,将该BSP文件进行压缩,将压缩后的BSP文件写入BSP压缩程序区;
C5.确定该BSP文件出现异常,上报告警信息。
该方法所述步骤C5后进一步包括:
D1.判断BSP压缩程序区是否存在BSP压缩文件,如果是,进入步骤D2;否则,进入步骤D5;
D2.对BSP压缩文件解压缩,启动运行解压缩后的BSP文件;
D3.判断该BSP文件启动运行是否正常,如果是,进入步骤D4;否则,进入步骤D5;
D4.将解压缩后的BSP文件写入到BSP主程序区;
D5.上报告警信息。
该方法用于多处理器系统。
该方法所述上报告警信息方式为分离式传递信息的启动阶段异常告警上报方式,包括以下步骤:
将异常情况的信息通过全局变量或者内存,以预定格式记录,在用户程序启动运行后,根据这些信息,以预定形式上报告警信息。
本发明还提供了一种嵌入式系统自动检测和恢复启动的装置,其特征在于,包括:
BSP主程序区BSP文件替换模块、BSP文件有效性检测模块和BSP压缩程序区BSP文件替换模块。
该装置所述BSP主程序区BSP文件替换模块,用于根据BSP文件计算第二校验信息,判断BSP文件是否带有第一校验信息,如果带有第一校验信息,则进一步判断第一校验信息与第二校验信息是否匹配,如果匹配,则将BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件;如果不匹配,则确定BSP文件替换失败,上报告警信息;
该装置所述BSP文件有效性检测模块,用于设置硬件复位相关资源标志,进行硬件无关重启,如果硬件复位相关资源标志类型为BSP文件有效性检测标志,则进行BSP文件有效性检测,监控BSP文件的启动过程,启动用户程序,上报告警信息;如果硬件复位相关资源标志类型为请求版本回退标志,则启动版本回退流程;
该装置所述BSP压缩程序区BSP文件替换模块,用于判断BSP主程序区中的BSP文件是否完整,如果完整,则启动监控机制,并运行该BSP文件;如果不完整,则确定该BSP文件出现异常,上报告警信息;在运行该BSP文件时,判断该BSP文件启动运行是否正常,如果正常,记录正常启动该BSP文件的结果,将该BSP文件进行压缩,将压缩后的BSP文件写入BSP压缩程序区;如果不正常,则确定BSP主程序区中的BSP文件出现异常,上报告警信息。
该装置用于多处理器系统。
本发明所述的一种嵌入式系统自动检测和恢复启动的方法及装置,达到的有益效果如下:
采用主动检测BSP文件是否出现不完整或被破坏的方式,做到事先发现问题,而不用等到程序执行异常之后才发现问题,避免了在下次启动时进行繁琐的异常判断。在事先发现问题的基础上,选择可用的BSP文件,避免出现误判。从而较大地提高了BSP文件的自我恢复能力,有效防止了升级失败导致系统无法启动的问题,大大降低了使用专门工具烧写BSP文件的需求,提高了BSP文件升级的可靠性。
采用主动检测和被动触发相结合的版本回退机制,只需在升级完成之后的第一次启动进行版本有效性检测,大大降低了对各种标志、定时器等检测手段的依赖。由于BSP文件功能相对简单,如果BSP文件完成了一次正常启动,则只要该BSP文件内容没发生变化,其以后的每次执行都应该正常。因此,在确认升级完成之后的第一次启动测试过程中,BSP升级文件能够正常启动,则以后只要保证每次启动时检测文件未被破坏,就可以保证程序的有效性。在本发明中,在完成升级后的第一次启动过程中,先进行BSP文件完整性校验,然后进行BSP文件的有效性检测。如果通过检查,则以后的每次启动只需进行BSP文件完整性校验即可,而用于有效性检测的系统资源在以后的每次启动中将不再使用,从而可以释放给其他程序使用,进而提高了BSP的可移植性,使该方法能够广泛用于数字信号处理器(DSP)或者一些外部资源较少的系统。
采用压缩方式存储备份BSP文件,降低了对ROM存储容量的要求。
采用分离式传递信息的启动阶段异常告警上报方式,向用户提供统一的告警上报接口,从而不用关心用户的告警处理方式,提高了BSP文件的可移植性;该告警上报方式能够在启动执行过程中的任何阶段进行分离式告警上报,如在版本回退或版本升级之后向用户上报告警,从而打破了原来不能在启动过程中上报告警的限制,提高了系统的可维护性,同时为用户主动发起版本回退提供了条件。
采用硬件复位相关资源作为是否为有效性检测的标志,利用不同的复位方式控制检测步骤的方法。避免了现有技术中BSP文件启动时因为人工复位或断电引起的错误的版本回退操作,使操作更加简单可靠。
附图说明
图1为本发明中嵌入式系统自动检测和恢复启动装置的结构框图;
图2为本发明具体实施例中ROM存储区域划分示意图;
图3为本发明具体实施例中BSP主程序区文件替换流程图;
图4为本发明具体实施例中BSP文件有效性检测流程图;
图5为本发明具体实施例中BSP主程序区与BSP压缩程序区互为冗余的BSP文件替换流程图。
具体实施方式
本发明所述的嵌入式系统自动检测和恢复启动的方法,通过程序完整性校验验证BSP文件是否遭到破坏,通过程序有效性检测验证BSP文件是否存在重大问题,利用分离式启动阶段告警方式将BSP文件的缺陷即启动过程中的各种异常上报用户,并支持由用户主动触发的BSP文件版本回退。其中,导致BSP文件版本回退的原因包括:BSP文件存在重大缺陷;BSP文件本身因为传输或存储介质的原因被破坏;BSP文件能正常启动,但对应于实现某些功能的部分BSP文件存在缺陷。
下面结合附图来说明本发明的具体实施方式。
图1为本发明中嵌入式系统自动检测和恢复启动装置的结构框图,图中嵌入式系统自动检测和恢复启动装置1包括:
BSP主程序区BSP文件替换模块101,用于根据BSP文件计算第二校验信息,判断BSP文件是否带有第一校验信息,如果带有第一校验信息,则进一步判断第一校验信息与第二校验信息是否匹配,如果匹配,则将BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件;如果不匹配,则确定BSP文件替换失败,上报告警信息;
BSP文件有效性检测模块102,用于设置硬件复位相关资源标志,进行硬件无关重启,如果硬件复位相关资源标志类型为BSP文件有效性检测标志,则进行BSP文件有效性检测,监控BSP文件的启动过程,启动用户程序,上报告警信息;如果硬件复位相关资源标志类型为请求版本回退标志,则启动版本回退流程;
BSP压缩程序区BSP文件替换模块103,用于判断BSP主程序区中的BSP文件是否完整,如果完整,则启动监控机制,并运行该BSP文件;如果不完整,则确定该BSP文件出现异常,上报告警信息;在运行该BSP文件时,判断该BSP文件启动运行是否正常,如果正常,记录正常启动该BSP文件的结果,将该BSP文件进行压缩,将压缩后的BSP文件写入BSP压缩程序区;如果不正常,则确定BSP主程序区中的BSP文件出现异常,上报告警信息。
图2为本发明中ROM存储区划分示意图,图中ROM存储区2包括应用程序区201、BSP压缩程序区202、BSP主程序区203和系统初始化(BOOT)程序区204。其中,
应用程序区201用于存放高层用户程序。
BSP压缩程序区202用于存放经过压缩的BSP主程序。
BSP主程序区203用于存放BSP主程序。
BOOT程序区204用于存放BOOT程序。
BOOT程序和BSP主程序具体描述如下:
完整的BSP文件包括BOOT程序和BSP主程序两部分,其中,BOOT程序负责最小硬件环境的初始化,以及启动BSP主程序。BSP主程序包含的内容一般来说是和嵌入式系统有关的驱动和程序,如与系统中网络协议有关的网络驱动,与系统下载调试有关的串口驱动等。
BOOT程序相对BSP主程序而言,更为简单,其所需的存储空间也较小,大约在10Kb到200Kb范围内。另外,BOOT程序与高层用户程序无关,只与硬件基本配置相关,这就意味着BOOT程序几乎是不会因为软件需求或者大多数BSP功能而被升级的,因此可以将BOOT程序和BSP主程序分别存储在ROM存储区的不同位置中。为了描述方便,下文所述BSP文件特指BSP主程序。
BSP自动检测和恢复启动过程包括BSP主程序区文件替换、BSP文件有效性检测和BSP压缩程序区文件替换。
图3为本发明具体实施例中BSP主程序区文件替换流程图,具体步骤如下:
步骤301,根据BSP文件计算出第二校验信息。
该第二校验信息用于BSP文件启动过程中的完整性校验,其计算方法可以采用CRC校验等方法,以便通过校验信息验证文件的完整性。无论采用何种算法,其所使用的校验方法都需要和第一校验信息、第三校验信息的校验方法一致。
步骤302,判断该BSP文件是否带有第一校验信息,如果是,进入步骤303;否则,进入步骤304。
步骤303,判断第一校验信息与第二校验信息是否匹配,如果是,则进入步骤304,否则,进入步骤308。
步骤304,将BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件。
步骤305,根据写入的BSP文件计算出第三校验信息。
步骤306,判断第二校验信息与第三校验信息是否匹配,如果是,则进入步骤307;否则,进入步骤308。
步骤307,确定BSP主程序区文件替换成功。
步骤308,确定BSP主程序区文件替换失败,上报告警。
该步骤中,将BSP主程序区文件替换过程中出现的异常情况以告警方式上报给用户,用户收到告警之后,可以根据不同的告警原因进行相应的处理,如检查BSP升级文件,主动触发版本回退或再次升级BSP文件等。
上述步骤通过对升级的BSP文件在其写入BSP主程序区之前以及写入BSP主程序区之后的两次文件完整性校验,从而更加全面的确保BSP文件升级的正确性。
在BSP主程序区文件替换完成之后,对BSP文件进行有效性检测,该检测通过对BSP文件进行一次启动测试来实现,需要强调的是仅仅通过一次启动测试就可完成有效性检测。图4为本发明具体实施例中BSP文件有效性检测流程图,具体步骤如下:
步骤401,设置硬件复位相关资源标志。
硬件复位相关资源标志包括两种类型:一种为BSP文件有效性检测标志,另一种为请求版本回退标志。
为了防止因为人工复位或断电引起的错误的版本回退操作,在复位前,采用硬件复位相关资源记录复位参数。硬件复位相关资源指的是受到硬件复位影响的资源,例如寄存器。
步骤402,进行硬件无关重启。
硬件无关重启是指不会对硬件复位相关资源产生影响的复位,相对于硬件相关重启,硬件无关重启能够向下次启动传递是否需要进行有效性检测的信息。具体的说,可以通过寄存器记录复位参数,指针跳转来实现本操作。通过硬件无关重启,在下一次启动运行BSP文件时,通过硬件无关重启获得的信息判断是否需要进行有效性测试。
步骤403,判断硬件复位相关资源标志类型是否为BSP文件有效性检测标志;如果是,则进入步骤404;否则,进入步骤405。
步骤404,进行BSP文件有效性检测,监控BSP文件的启动过程,进入步骤406。
步骤405,启动版本回退流程,进入步骤408。
如果程序文件在进行有效性检测时,没有成功启动,则触发一次版本回退,并上报告警。版本回退流程为:将BSP压缩程序区中的BSP压缩文件解压后,通过BOOT程序启动解压后的BSP文件,启动成功后,将该解压后的BSP文件写入BSP主程序区,替换BSP主程序区的原BSP文件。
步骤406,判断BSP文件是否完整,如果是,进入步骤407;否则,进入步骤405。
BOOT程序首先要进行BSP文件完整性的,即对BSP文件计算校验信息,然后与原先记录的校验信息进行匹配比较。如果匹配,说明BSP文件没有被破坏。
步骤407,判断BSP文件启动是否成功,如果是,进入步骤408;否则,进入步骤401。
通过启动标志或者定时检测功能对文件启动过程进行监控,如果本次启动正常,则表明该BSP文件通过有效性检测;如果本次启动异常,则表明该BSP文件的有效性检测失败。
步骤408,启动用户程序,上报告警信息。
在整个有效性检测过程中可能会出现异常情况,因此需要上报告警信息通知用户。对于不同系统,用户程序对告警的处理接口和处理方法有所不同。在本发明中,采用分离方式的告警方式,即在BSP文件自动检测和恢复启动过程中,将各个阶段出现的异常情况的各种信息通过全局变量或者内存,以特定的格式记录,待用户软件运行起来之后,获取这些信息,组织各自的告警形式进行告警。这种告警方式,扩展了告警阶段,并且不会影响用户程序。
上述过程中,本发明仅仅使用一个硬件复位相关资源作为是否为有效性检测的标志,利用不同的复位方式控制有效性检测,避免了现有技术中启动时因为人工复位或断电引起的错误的版本回退操作,而且更加简单可靠。
在BSP文件有效性检测过程完成后,进行BSP压缩程序区文件替换,具体过程为:
在确认BSP主程序区的新BSP文件能够正常启动后,检查BSP压缩程序区中BSP文件的版本是否与BSP主程序区的BSP文件版本相同,如果是,则不动作;否则,将BSP主程序区的BSP文件进行压缩后,写入BSP压缩程序区,替换BSP压缩程序区中原有的BSP文件,以使得BSP压缩程序区的BSP文件版本与BSP主程序区的BSP文件版本始终保持一致。其中,BSP压缩程序区的BSP文件可以在板卡端动态生成,另外,在替换过程中还可加入校验机制,以确保BSP压缩程序区的文件的替换可靠。
对于上述的BSP主程序区和BSP压缩程序区,在实际的BSP自启动检测过程中互为冗余,当其中一者存储的BSP文件出现异常时,将自动选择其中另一者存储的BSP文件来完成嵌入式系统的启动。图5为本发明具体实施例中BSP主程序区与BSP压缩程序区互为冗余的BSP文件替换流程图,具体步骤如下:
步骤501和502,对BSP主程序区中的BSP文件进行完整性校验,判断BSP文件是否完整,如果是,进入步骤503;否则,进入步骤506。
步骤503,启动监控机制,并运行BSP主程序区中的BSP文件。
步骤504,判断该BSP文件启动运行是否正常,如果是,进入步骤505;否则,进入步骤506。
步骤505,记录正常启动该文件的结果,并将该文件进行压缩后,将压缩后的BSP文件写入BSP压缩程序区,替换BSP压缩程序区中原有的BSP压缩文件。
步骤506,确定BSP主程序区中的BSP文件出现异常,上报告警信息,并判断BSP压缩程序区是否存在BSP压缩文件,如果是,进入步骤507;否则,进入步骤410。
步骤507,对BSP压缩文件解压缩,启动运行解压缩后的BSP文件。
步骤508,判断该BSP文件启动运行是否正常,如果是,进入步骤509;否则进入步骤510。
步骤509,将解压缩后的BSP文件写入到BSP主程序区。
步骤510,上报告警信息。
上述步骤506至510主要针对当BSP主程序区的BSP文件出现异常时,将备份在BSP压缩区的BSP压缩文件解压缩后,在确定该解压缩后的BSP文件启动运行正常后,将该BSP文件写入BSP主程序区,替代出现异常的原BSP文件。
由于本发明降低了对标识或定时器等启动检测手段的依赖,因此,还可将本发明移植到多处理器系统中,如对于一个有主处理器和协处理器的系统,协处理器的启动程序每次由主处理器对其进行加载,通过本发明提供的方法能较好地保证启动的可靠性。下述为本发明在分布式处理器系统中的一个具体实施例。
多处理器系统包括一个主处理器和一个协处理器,其中,主处理器为计算机,协处理器为数字信号处理器(DSP,Digital Signal Processor),作为协处理器的DSP在功能上比较单一,无法提供富余的启动检测机制资源,如定时器等,这些资源往往被专用程序使用;另外,也无法提供足够的空间存放两份启动程序。采用本发明提供的嵌入式系统自动检测和恢复启动的方法,由主处理器管理协处理器DSP的BSP文件,在进行BSP文件版本更新时,由主处理器对BSP文件进行完整性校验,即在主处理器上完成替换BSP文件的过程,通过专门的链路将用于启动DSP的BSP文件发送给协处理器DSP。另外,对BSP文件只作一次有效性检测,在有效性检测完成后,以后的BSP文件启动将不再使用这些资源,从而可以将这些资源归还给协处理器,从而减少对协处理器资源的占用。对BSP文件启动运行状况进行监控,如果升级后的BSP文件启动运行不正常,则将BSP压缩程序区的文件解压缩后恢复到协处理器中;如果升级后的BSP文件启动运行正常,将BSP主程序区的文件进行压缩后,写入到BSP压缩程序区,替换BSP压缩程序区中原有的文件。
在本发明的具体实施例中,用于升级的BSP文件的存放方式既可以是二进制目标程序,也可以是文件方式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种嵌入式系统自动检测和恢复启动的方法,其特征在于,该嵌入式系统的存储区包括:应用程序区、BSP板级支持包压缩程序区、BSP主程序区和系统初始化程序区,该方法包括以下步骤:
A.替换BSP主程序区中的BSP文件;
B.对替换后的BSP文件进行有效性检测;
C.将通过有效性检测的BSP文件替换到BSP压缩程序区。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括:
A1.根据BSP文件计算出第二校验信息;
A2.判断该BSP文件是否带有第一校验信息,如果是,进入步骤A3,否则,进入步骤A4;
A3.判断第一校验信息与第二校验信息是否匹配,如果是,进入步骤A4,否则,进入步骤A5;
A4.将BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件;
A5.确定BSP文件替换失败,上报告警信息。
3.根据权利要求2所述的方法,其特征在于,所述步骤A4与A5之间进一步包括:
根据写入BSP主程序区的BSP文件计算出第三校验信息,判断该第三校验信息与第二校验信息是否匹配,如果是,确定BSP文件替换成功;否则,进入步骤A5。
4.根据权利要求1所述的方法,其特征在于,所述步骤B包括:
B1.设置硬件复位相关资源标志,该标志包括BSP文件有效性检测标志和请求版本回退标志;
B2.进行硬件无关重启;
B3.判断硬件复位相关资源标志类型是否为BSP文件有效性检测标志;如果是,则进入步骤B4;否则,进入步骤B5;
B4.进行BSP文件有效性检测,监控BSP文件的启动过程,进入步骤B6;
B5.启动版本回退流程;
B6.启动用户程序。
5.根据权利要求4所述的方法,其特征在于,所述步骤B5与B6之间进一步包括:
判断BSP文件启动是否成功,如果是,进入步骤B6;否则,进入步骤B1。
6.根据权利要求5所述的方法,其特征在于,所述判断BSP文件启动是否成功前进一步包括:
判断BSP文件是否完整,如果是,判断BSP文件启动是否成功;否则,进入步骤B5。
7.根据权利要求1所述的方法,其特征在于,所述步骤C包括:
C1.判断BSP主程序区中的BSP文件是否完整,如果是,进入步骤C2;否则,进入步骤C5;
C2.启动监控机制,并运行该BSP文件;
C3.判断该BSP文件启动运行是否正常,如果是,进入步骤C4;否则,进入步骤C5;
C4.记录正常启动该BSP文件的结果,将该BSP文件进行压缩,将压缩后的BSP文件写入BSP压缩程序区;
C5.确定该BSP文件出现异常,上报告警信息。
8.根据权利要求7所述的方法,其特征在于,所述步骤C5后进一步包括:
D1.判断BSP压缩程序区是否存在BSP压缩文件,如果是,进入步骤D2;否则,进入步骤D5;
D2.对BSP压缩文件解压缩,启动运行解压缩后的BSP文件;
D3.判断该BSP文件启动运行是否正常,如果是,进入步骤D4;否则,进入步骤D5;
D4.将解压缩后的BSP文件写入到BSP主程序区;
D5.上报告警信息。
9.根据权利要求1所述的方法,其特征在于,该方法用于多处理器系统。
10.根据权利要求2、7或8所述的方法,其特征在于,所述上报告警信息方式为分离式传递信息的启动阶段异常告警上报方式,包括以下步骤:
将异常情况的信息通过全局变量或者内存,以预定格式记录,在用户程序启动运行后,根据这些信息,以预定形式上报告警信息。
11.一种嵌入式系统自动检测和恢复启动的装置,其特征在于,包括:
BSP主程序区BSP文件替换模块、BSP文件有效性检测模块和BSP压缩程序区BSP文件替换模块。
12.根据权利要求11所述的装置,其特征在于,
所述BSP主程序区BSP文件替换模块,用于根据BSP文件计算第二校验信息,判断BSP文件是否带有第一校验信息,如果带有第一校验信息,则进一步判断第一校验信息与第二校验信息是否匹配,如果匹配,则将BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件;如果不匹配,则确定BSP文件替换失败,上报告警信息;
所述BSP文件有效性检测模块,用于设置硬件复位相关资源标志,进行硬件无关重启,如果硬件复位相关资源标志类型为BSP文件有效性检测标志,则进行BSP文件有效性检测,监控BSP文件的启动过程,启动用户程序,上报告警信息;如果硬件复位相关资源标志类型为请求版本回退标志,则启动版本回退流程;
所述BSP压缩程序区BSP文件替换模块,用于判断BSP主程序区中的BSP文件是否完整,如果完整,则启动监控机制,并运行该BSP文件;如果不完整,则确定该BSP文件出现异常,上报告警信息;在运行该BSP文件时,判断该BSP文件启动运行是否正常,如果正常,记录正常启动该BSP文件的结果,将该BSP文件进行压缩,将压缩后的BSP文件写入BSP压缩程序区;如果不正常,则确定BSP主程序区中的BSP文件出现异常,上报告警信息。
13.根据权利要求11所述的装置,其特征在于,该装置用于多处理器系统。
CN2007101177028A 2007-06-21 2007-06-21 一种嵌入式系统自动检测和恢复启动的方法及装置 Active CN101329631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101177028A CN101329631B (zh) 2007-06-21 2007-06-21 一种嵌入式系统自动检测和恢复启动的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101177028A CN101329631B (zh) 2007-06-21 2007-06-21 一种嵌入式系统自动检测和恢复启动的方法及装置

Publications (2)

Publication Number Publication Date
CN101329631A true CN101329631A (zh) 2008-12-24
CN101329631B CN101329631B (zh) 2011-03-16

Family

ID=40205450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101177028A Active CN101329631B (zh) 2007-06-21 2007-06-21 一种嵌入式系统自动检测和恢复启动的方法及装置

Country Status (1)

Country Link
CN (1) CN101329631B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102243593A (zh) * 2011-07-18 2011-11-16 深圳市科陆电子科技股份有限公司 一种基于VxWorks操作系统下RTP应用程序启动的方法
CN103176864A (zh) * 2013-03-11 2013-06-26 广东欧珀移动通信有限公司 一种基于安卓系统的备份方法、装置以及移动终端
CN103176876A (zh) * 2013-03-19 2013-06-26 卡斯柯信号有限公司 一种高效安全的计算机在线自检方法及自检装置
CN104035833A (zh) * 2013-03-07 2014-09-10 联发科技股份有限公司 校验机器可读代码完整性的方法及系统
CN105045146A (zh) * 2015-07-03 2015-11-11 深圳市普博科技有限公司 一种具有复位功能的系统及其重启控制方法
CN105589766A (zh) * 2015-12-21 2016-05-18 南京国电南自电网自动化有限公司 一种VxWorks启动过程任务异常检测方法
CN105808296A (zh) * 2016-03-08 2016-07-27 江苏万帮德和新能源科技有限公司 一种用于充电桩安全升级自身程序的客户端软件启动方法
CN106021002A (zh) * 2016-04-29 2016-10-12 上海庆科信息技术有限公司 一种嵌入式设备数据读写方法及装置
CN108121627A (zh) * 2017-12-13 2018-06-05 苏州长风航空电子有限公司 一种VxWorks操作系统调试方法
CN108804247A (zh) * 2017-05-03 2018-11-13 大唐移动通信设备有限公司 一种处理器的启动判断方法和装置
CN109213727A (zh) * 2018-07-05 2019-01-15 北京众达精电科技有限公司 嵌入式soc处理器双板一体化系统及实现方法
CN110908722A (zh) * 2019-11-29 2020-03-24 北京嘀嘀无限科技发展有限公司 应用于操作系统启动的方法、装置、电子设备及存储介质
CN111797440A (zh) * 2019-04-07 2020-10-20 新唐科技股份有限公司 安全装置、方法及其系统
CN112817619A (zh) * 2019-11-17 2021-05-18 新唐科技股份有限公司 电脑系统及其安全管理方法以及电脑软件产品
TWI768544B (zh) * 2019-11-17 2022-06-21 新唐科技股份有限公司 電腦系統及其安全管理方法以及電腦軟體產品

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095619A1 (en) * 2001-01-17 2002-07-18 Marsh Edward Thomas Fault tolerant/redundant boot ROM reprogramming
JP4399704B2 (ja) * 2003-03-27 2010-01-20 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
EP1494119A1 (en) * 2003-06-30 2005-01-05 Thomson Multimedia Broadband Belgium Network equipment and a method for monitoring the start up of a such an equipment
WO2006045217A1 (en) * 2004-10-28 2006-05-04 Intel Corporation Incremental provisioning of software
CN100382452C (zh) * 2005-11-15 2008-04-16 中兴通讯股份有限公司 一种实现主备倒换的装置和方法

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102243593B (zh) * 2011-07-18 2017-12-01 深圳市科陆电子科技股份有限公司 一种基于VxWorks操作系统下RTP应用程序启动的方法
CN102243593A (zh) * 2011-07-18 2011-11-16 深圳市科陆电子科技股份有限公司 一种基于VxWorks操作系统下RTP应用程序启动的方法
CN104035833A (zh) * 2013-03-07 2014-09-10 联发科技股份有限公司 校验机器可读代码完整性的方法及系统
CN103176864A (zh) * 2013-03-11 2013-06-26 广东欧珀移动通信有限公司 一种基于安卓系统的备份方法、装置以及移动终端
CN103176876B (zh) * 2013-03-19 2016-09-28 卡斯柯信号有限公司 一种高效安全的计算机在线自检方法及自检装置
CN103176876A (zh) * 2013-03-19 2013-06-26 卡斯柯信号有限公司 一种高效安全的计算机在线自检方法及自检装置
CN105045146A (zh) * 2015-07-03 2015-11-11 深圳市普博科技有限公司 一种具有复位功能的系统及其重启控制方法
CN105589766A (zh) * 2015-12-21 2016-05-18 南京国电南自电网自动化有限公司 一种VxWorks启动过程任务异常检测方法
CN105589766B (zh) * 2015-12-21 2018-07-13 南京国电南自电网自动化有限公司 一种VxWorks启动过程任务异常检测方法
CN105808296B (zh) * 2016-03-08 2019-06-25 江苏万帮德和新能源科技股份有限公司 一种用于充电桩安全升级自身程序的客户端软件启动方法
CN105808296A (zh) * 2016-03-08 2016-07-27 江苏万帮德和新能源科技有限公司 一种用于充电桩安全升级自身程序的客户端软件启动方法
CN106021002A (zh) * 2016-04-29 2016-10-12 上海庆科信息技术有限公司 一种嵌入式设备数据读写方法及装置
CN108804247A (zh) * 2017-05-03 2018-11-13 大唐移动通信设备有限公司 一种处理器的启动判断方法和装置
CN108121627A (zh) * 2017-12-13 2018-06-05 苏州长风航空电子有限公司 一种VxWorks操作系统调试方法
CN108121627B (zh) * 2017-12-13 2021-03-09 苏州长风航空电子有限公司 一种VxWorks操作系统调试方法
CN109213727A (zh) * 2018-07-05 2019-01-15 北京众达精电科技有限公司 嵌入式soc处理器双板一体化系统及实现方法
CN111797440A (zh) * 2019-04-07 2020-10-20 新唐科技股份有限公司 安全装置、方法及其系统
CN111797440B (zh) * 2019-04-07 2023-05-19 新唐科技股份有限公司 安全装置、方法及其系统
CN112817619A (zh) * 2019-11-17 2021-05-18 新唐科技股份有限公司 电脑系统及其安全管理方法以及电脑软件产品
TWI768544B (zh) * 2019-11-17 2022-06-21 新唐科技股份有限公司 電腦系統及其安全管理方法以及電腦軟體產品
CN112817619B (zh) * 2019-11-17 2023-07-28 新唐科技股份有限公司 电脑系统及其安全管理方法以及电脑软件产品
CN110908722A (zh) * 2019-11-29 2020-03-24 北京嘀嘀无限科技发展有限公司 应用于操作系统启动的方法、装置、电子设备及存储介质
CN110908722B (zh) * 2019-11-29 2021-01-12 北京嘀嘀无限科技发展有限公司 应用于操作系统启动的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN101329631B (zh) 2011-03-16

Similar Documents

Publication Publication Date Title
CN101329631B (zh) 一种嵌入式系统自动检测和恢复启动的方法及装置
US5948112A (en) Method and apparatus for recovering from software faults
US6502208B1 (en) Method and system for check stop error handling
WO2022198972A1 (zh) 一种服务器启动过程中的故障定位方法、系统及装置
US7716520B2 (en) Multi-CPU computer and method of restarting system
EP0505706B1 (en) Alternate processor continuation of the task of a failed processor
US7627781B2 (en) System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
US7941658B2 (en) Computer system and method for updating program code
US20040158702A1 (en) Redundancy architecture of computer system using a plurality of BIOS programs
US7882388B2 (en) Dual independent non volatile memory systems
JP5183542B2 (ja) 計算機システム及び設定管理方法
KR20060058770A (ko) 네트워크 장비 및 이러한 장비의 시작을 모니터링하기 위한방법
JP3481737B2 (ja) ダンプ採取装置およびダンプ採取方法
US7366948B2 (en) System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
US7502958B2 (en) System and method for providing firmware recoverable lockstep protection
JPH09251443A (ja) 情報処理システムのプロセッサ障害回復処理方法
JP2010067115A (ja) データ記憶システム、データ記憶方法
JP2006065440A (ja) プロセス管理システム
JP4269362B2 (ja) コンピュータシステム
CN115509815A (zh) 一种服务器中数据保护的方法和装置
CN114217925A (zh) 一种实现异常自动重启的业务程序运行监控方法及系统
KR101461650B1 (ko) 컴퓨팅 디바이스의 파일 시스템 관리 장치 및 방법
JPH07183891A (ja) 計算機システム
JP3357777B2 (ja) プログラム制御システム
JP7275922B2 (ja) 情報処理装置、異常検出方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant