CN101329631B - 一种嵌入式***自动检测和恢复启动的方法及装置 - Google Patents
一种嵌入式***自动检测和恢复启动的方法及装置 Download PDFInfo
- Publication number
- CN101329631B CN101329631B CN2007101177028A CN200710117702A CN101329631B CN 101329631 B CN101329631 B CN 101329631B CN 2007101177028 A CN2007101177028 A CN 2007101177028A CN 200710117702 A CN200710117702 A CN 200710117702A CN 101329631 B CN101329631 B CN 101329631B
- Authority
- CN
- China
- Prior art keywords
- bsp
- file
- new
- bsp file
- program area
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000001514 detection method Methods 0.000 claims abstract description 67
- 230000006835 compression Effects 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims description 29
- 230000002159 abnormal effect Effects 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000011084 recovery Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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压缩程序区;
其中,所述步骤B包括:
判断以新BSP文件的启动是否成功,如果成功,则确定新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.启动版本回退流程,进入步骤B8;
B6.判断新BSP文件是否完整,如果是,进入步骤B7;否则,进入步骤B5。
B7.判断新BSP文件启动是否成功,如果是,进入步骤B8;否则,进入步骤B1。
B8.启动用户程序。
该方法所述步骤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文件是否出现不完整或被破坏的方式,做到事先发现问题,而不用等到程序执行异常之后才发现问题,避免了在下次启动时进行繁琐的异常判断。在事先发现问题的基础上,选择可用的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文件替换模块101,用于根据BSP文件计算第二校验信息,判断新BSP文件是否带有第一校验信息,如果带有第一校验信息,则进一步判断第一校验信息与第二校验信息是否匹配,如果匹配,则将新BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件;如果不匹配,则确定新BSP文件替换失败,上报告警信息。
BSP文件有效性检测模块102,用于对替换后的新BSP文件进行有效性检测;其中,判断以新BSP文件的启动是否成功,如果成功,则确定新BSP文件有效;否则,确定新BSP文件无效;其中,
BSP文件有效性检测模块102,用于设置硬件复位相关资源标志,进行硬件无关重启,如果硬件复位相关资源标志类型为BSP文件有效性检测标志,则进行新BSP文件有效性检测,监控新BSP文件的启动过程,启动用户程序,上报告警信息;如果硬件复位相关资源标志类型为请求版本回退标志,则启动版本回退流程。
BSP压缩程序区BSP文件替换模块103,用于将通过有效性检测的新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文件。
在本发明的具体实施例中,用于升级的新BSP文件的存放方式既可以是二进制目标程序,也可以是文件方式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种嵌入式***自动检测和恢复启动的方法,其特征在于,该嵌入式***的存储区包括:应用程序区、BSP板级支持包压缩程序区、BSP主程序区和***初始化程序区,该方法包括以下步骤:
A.替换BSP主程序区中的原BSP文件;
B.对替换后的新BSP文件进行有效性检测;
C.将通过有效性检测的新BSP文件替换到BSP压缩程序区;
其中,所述步骤B包括:
判断以新BSP文件的启动是否成功,如果成功,则确定新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.启动版本回退流程,进入步骤B8;
B6.判断新BSP文件是否完整,如果是,进入步骤B7;否则,进入步骤B5;
B7.判断新BSP文件启动是否成功,如果是,进入步骤B8;否则,进入步骤B1;
B8.启动用户程序。
5.根据权利要求1所述的方法,其特征在于,所述步骤C包括:
C1.判断BSP主程序区中的新BSP文件是否完整,如果是,进入步骤C2;否则,进入步骤C5;
C2.启动监控机制,并运行该新BSP文件;
C3.判断该新BSP文件启动运行是否正常,如果是,进入步骤C4;否则,进入步骤C5;
C4.记录正常启动该新BSP文件的结果,将该新BSP文件进行压缩,将压缩后的新BSP压缩文件写入BSP压缩程序区;
C5.确定该新BSP文件出现异常,上报告警信息。
6.根据权利要求5所述的方法,其特征在于,所述步骤C5后进一步包括:
D1.判断BSP压缩程序区是否存在新BSP压缩文件,如果是,进入步骤D2;否则,进入步骤D5;
D2.对新BSP压缩文件解压缩,启动运行解压缩后的新BSP文件;
D3.判断该新BSP文件启动运行是否正常,如果是,进入步骤D4;否则,进入步骤D5;
D4.将解压缩后的新BSP文件写入到BSP主程序区;
D5.上报告警信息。
7.根据权利要求1所述的方法,其特征在于,该方法用于多处理器***。
8.根据权利要求2、5或6所述的方法,其特征在于,所述上报告警信息方式为分离式传递信息的启动阶段异常告警上报方式,包括以下步骤:
将异常情况的信息通过全局变量或者内存,以预定格式记录,在用户程序启动运行后,根据异常情况的信息,以预定形式上报告警信息。
9.一种嵌入式***自动检测和恢复启动的装置,其特征在于,包括:
BSP主程序区BSP文件替换模块,用于替换BSP主程序区中的原BSP文件;
BSP文件有效性检测模块,用于对替换后的新BSP文件进行有效性检测;其中,判断以新BSP文件的启动是否成功,如果成功,则确定新BSP文件有效;否则,确定新BSP文件无效;和
BSP压缩程序区BSP文件替换模块,用于将通过有效性检测的新BSP文件替换到BSP压缩程序区。
10.根据权利要求9所述的装置,其特征在于,
所述BSP主程序区BSP文件替换模块,进一步用于根据新BSP文件计算第二校验信息,判断新BSP文件是否带有第一校验信息,如果带有第一校验信息,则进一步判断第一校验信息与第二校验信息是否匹配,如果匹配,则将新BSP文件写入BSP主程序区,替换BSP主程序区中的原BSP文件;如果不匹配,则确定新BSP文件替换失败,上报告警信息;如果不带有第一校验信息,则确定新BSP文件替换失败,上报告警信息。
11.根据权利要求9所述的装置,其特征在于,
所述BSP文件有效性检测模块,进一步用于设置硬件复位相关资源标志,进行硬件无关重启,如果硬件复位相关资源标志类型为BSP文件有效性检测标志,则进行新BSP文件有效性检测,监控新BSP文件的启动过程,启动用户程序;如果硬件复位相关资源标志类型为请求版本回退标志,则启动版本回退流程;其中,
所述硬件复位相关资源标志包括两种类型:BSP文件有效性检测标志和请求版本回退标志。
12.根据权利要求9所述的装置,其特征在于,
所述BSP压缩程序区BSP文件替换模块,进一步用于判断BSP主程序区中的新BSP文件是否完整,如果完整,则启动监控机制,并运行该新BSP文件;如果不完整,则确定该新BSP文件出现异常,上报告警信息;在运行该新BSP文件时,判断该新BSP文件启动运行是否正常,如果正常,记录正常启动该新BSP文件的结果,将该新BSP文件进行压缩,将压缩后的新BSP压缩文件写入BSP压缩程序区;如果不正常,则确定BSP主程序区中的新BSP文件出现异常,上报告警信息。
13.根据权利要求9所述的装置,其特征在于,该装置用于多处理器***。
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 CN101329631A (zh) | 2008-12-24 |
CN101329631B true 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) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243593B (zh) * | 2011-07-18 | 2017-12-01 | 深圳市科陆电子科技股份有限公司 | 一种基于VxWorks操作***下RTP应用程序启动的方法 |
CN104035833A (zh) * | 2013-03-07 | 2014-09-10 | 联发科技股份有限公司 | 校验机器可读代码完整性的方法及*** |
CN103176864B (zh) * | 2013-03-11 | 2016-03-23 | 广东欧珀移动通信有限公司 | 一种基于安卓***的备份方法、装置以及移动终端 |
CN103176876B (zh) * | 2013-03-19 | 2016-09-28 | 卡斯柯信号有限公司 | 一种高效安全的计算机在线自检方法及自检装置 |
CN105045146B (zh) * | 2015-07-03 | 2018-06-26 | 深圳市普博科技有限公司 | 一种具有复位功能的***及其重启控制方法 |
CN105589766B (zh) * | 2015-12-21 | 2018-07-13 | 南京国电南自电网自动化有限公司 | 一种VxWorks启动过程任务异常检测方法 |
CN105808296B (zh) * | 2016-03-08 | 2019-06-25 | 江苏万帮德和新能源科技股份有限公司 | 一种用于充电桩安全升级自身程序的客户端软件启动方法 |
CN106021002B (zh) * | 2016-04-29 | 2020-11-06 | 上海庆科信息技术有限公司 | 一种嵌入式设备数据读写方法及装置 |
CN108804247A (zh) * | 2017-05-03 | 2018-11-13 | 大唐移动通信设备有限公司 | 一种处理器的启动判断方法和装置 |
CN108121627B (zh) * | 2017-12-13 | 2021-03-09 | 苏州长风航空电子有限公司 | 一种VxWorks操作***调试方法 |
CN109213727A (zh) * | 2018-07-05 | 2019-01-15 | 北京众达精电科技有限公司 | 嵌入式soc处理器双板一体化***及实现方法 |
TWI733399B (zh) * | 2019-04-07 | 2021-07-11 | 新唐科技股份有限公司 | 安全裝置、安全方法、安全系統以及安全設備 |
US11385902B2 (en) * | 2019-11-17 | 2022-07-12 | Nuvoton Technology Corporation | Secure firmware management with hierarchical boot sequence using last known good firmware |
CN112817619B (zh) * | 2019-11-17 | 2023-07-28 | 新唐科技股份有限公司 | 电脑***及其安全管理方法以及电脑软件产品 |
CN110908722B (zh) * | 2019-11-29 | 2021-01-12 | 北京嘀嘀无限科技发展有限公司 | 应用于操作***启动的方法、装置、电子设备及存储介质 |
Citations (5)
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 |
US20040250167A1 (en) * | 2003-03-27 | 2004-12-09 | Masahiko Sato | Information processing apparatus and method, program, and recording medium |
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 |
CN1764080A (zh) * | 2005-11-15 | 2006-04-26 | 中兴通讯股份有限公司 | 一种实现主备倒换的装置和方法 |
WO2006045217A1 (en) * | 2004-10-28 | 2006-05-04 | Intel Corporation | Incremental provisioning of software |
-
2007
- 2007-06-21 CN CN2007101177028A patent/CN101329631B/zh active Active
Patent Citations (5)
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 |
US20040250167A1 (en) * | 2003-03-27 | 2004-12-09 | Masahiko Sato | Information processing apparatus and method, program, and recording medium |
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 |
CN1764080A (zh) * | 2005-11-15 | 2006-04-26 | 中兴通讯股份有限公司 | 一种实现主备倒换的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101329631A (zh) | 2008-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101329631B (zh) | 一种嵌入式***自动检测和恢复启动的方法及装置 | |
CN106020865B (zh) | 一种***升级方法和装置 | |
US8930931B2 (en) | Information processing apparatus using updated firmware and system setting method | |
EP1639468B1 (en) | Network equipment and a method for monitoring the start up of a such an equipment | |
JP4482029B2 (ja) | 無線基地局および無線基地局の運用方法 | |
US20160132420A1 (en) | Backup method, pre-testing method for environment updating and system thereof | |
US7941658B2 (en) | Computer system and method for updating program code | |
US20200250313A1 (en) | Bios recovery and update | |
WO2012071945A1 (zh) | 一种引导程序备份和升级的方法及装置 | |
CN113254048B (zh) | 引导程序更新方法、装置、设备及计算机可读介质 | |
CN111552592A (zh) | 一种双备份启动方法及*** | |
CN101807152A (zh) | 自我验证选择只读存储器的基本输出入***及其验证方法 | |
EP2733612B1 (en) | Information processing device, method, and program | |
CN117130672A (zh) | 服务器启动流程控制方法、***、终端及存储介质 | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
JP2004054616A (ja) | ファームウェア自動修復機能を有する情報処理装置 | |
CN114398087B (zh) | 一种提高单片机更新程序后运行稳定性的方法及单片机 | |
CN104834574B (zh) | 一种解决***分区损坏的方法及装置 | |
CN114356658A (zh) | 固件升级异常的处理方法、计算机设备以及可读存储介质 | |
CN114035813A (zh) | 一种升级方法、装置、设备及存储介质 | |
US20040236932A1 (en) | Apparatus and method for firmware upgrade in microprocessor-based processing units | |
CN111897583A (zh) | 一种设备启动方法及嵌入式设备 | |
KR20140032071A (ko) | 컴퓨팅 디바이스의 파일 시스템 관리 장치 및 방법 | |
CN114911648B (zh) | Xip flash程序驱动方法及*** | |
CN116089153A (zh) | Bmc异常因素确认方法、***、终端及存储介质 |
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 |