自行修复嵌入式设备的主控应用程序的方法及设备的制作方法

文档序号:6649830阅读:187来源:国知局
专利名称:自行修复嵌入式设备的主控应用程序的方法及设备的制作方法
技术领域
本发明涉及一种自行修复嵌入式设备的主控应用程序的方法及设备,能够利用完全独立于嵌入式设备的主控应用程序存储部分的修复装置来修复主控应用程序存储部分的应用程序。
背景技术
目前的嵌入式电子设备涵盖范围广泛,包括消费电子设备、工业电子设备、网络和通信设备等等。目前这类设备基本都采用独立的嵌入式计算机系统方案,由设计者编写的软件进行独立控制。在嵌入式系统中,软件经常是和硬件紧密结合的,可称为固件。目前嵌入式系统用来存储程序代码的存储设备多采用非易失存储芯片,例如FLASH芯片(闪速存储器)。当然,也可以将程序代码部分或全部存储在其他类型的介质上,例如硬盘或光盘。
在这种设备中,如果出现异常故障,如程序运行故障导致固件内的部分代码被误改写;或者存储芯片发生硬件故障,则系统就会陷入崩溃,无法继续运行和使用。目前大量用来作为存储芯片的FLASH芯片,有较大概率出现区块损坏,如果这种损坏发生在主控应用程序存储区,就会导致系统运行出现故障。硬盘、光盘等存储介质同样可能出现类似故障。
在消费电子设备产品中,目前解决这种问题的方法是提供基于PC的修复软件,通过USB接口来修复设备的固件。这种方法使用起来比较不方便,并且需要用户比较了解修复软件的操作。
在消费电子设备,如手机、数码娱乐产品中,用户可能在各种环境中使用产品。如果由于软件或硬件的原因系统发生故障,无法正常工作,用户很可能无法及时将其连接到PC上,并通过专用工具软件进行系统修复。
因此,需要提供一种自行修复嵌入式设备的主控应用程序的方法及设备来解决上述缺陷。

发明内容
本发明的目的是提供一种自行修复嵌入式设备的主控应用程序的方法及设备,能够通过用户不可访问的专用存储区来存储修复程序,该修复程序的全部操作完全独立于嵌入式设备的主控应用程序,并且当主控应用程序软件和部分硬件发生故障时,可以利用该修复程序快速方便地修复系统的相应部分(例如,主控应用程序)。此外,基于本发明的方案,用户可以随时通过特殊的操作方法(如嵌入式设备上的特殊按键组合),或者当检测到加载主控程序失败的标志时,启动修复程序进行自动恢复,更为方便快捷。
根据本发明,提出了一种自行修复嵌入式设备的主控应用程序的方法,包括以下步骤判断是否存在来自用户的特定硬件输入,以及检测主控应用程序加载是否成功;在存在特定硬件输入的情况下或当所述嵌入式设备无法正常加载应用程序时,启动修复程序;在启动所述修复程序之后,所述修复程序读取用户不可访问的专用存储区中的主控应用程序代码备份并覆写到主控应用程序的存储区,并且屏蔽主控应用程序存储区中发生损坏的存储部分。
优选地,在不存在特定硬件输入的情况下,启动主控应用程序存储区中的主控应用程序以操作嵌入式设备。
优选地,所述特定硬件输入是嵌入式设备上的任意按键或按钮组合。
优选地,用户不可访问的专用存储区中的主控应用程序代码备份根据硬件和标志位变化执行更新。
根据本发明,还提出了一种自行修复嵌入式设备的主控应用程序的设备,包括主控应用程序存储装置,用于存储用于执行嵌入式设备的操作的主控应用程序;启动调用装置,判断是否存在来自用户的特定硬件输入,以及检测主控应用程序加载是否成功;在存在特定硬件输入的情况下,或者当所述嵌入式设备无法正常加载应用程序时,启动修复装置中所存储的修复程序;否则,启动主控应用程序存储装置中所存储的主控应用程序;以及修复装置,用于存储主控应用程序代码备份以及修复程序,并且当所述启动调用装置启动所述修复装置中所存储的修复程序时,所述修复程序读取用户不可访问的专用存储区中的主控应用程序代码备份并覆写到主控应用程序存储装置上,并且屏蔽主控应用程序存储区中发生损坏的存储部分。


通过参考以下结合附图对所采用的优选实施例的详细描述,本发明的上述目的、优点和特征将变得显而易见,其中图1是示出了根据本发明实施例的自行修复嵌入式设备的主控应用程序的设备的功能方框图;图2是示出了根据本发明实施例的自行修复嵌入式设备的主控应用程序的方法的修复功能激活过程的流程图;以及图3是示出了根据本发明实施例的自行修复嵌入式设备的主控应用程序的方法的修复过程的流程图。
具体实施例方式
图1是示出了根据本发明实施例的自行修复嵌入式设备的主控应用程序的设备的功能方框图。
如图1所示,根据本发明实施例的自行修复嵌入式设备的主控应用程序的设备包括主控应用程序存储装置10、启动调度装置20、以及修复装置30。
启动调度装置20为可存储程序的ROM和微处理器(中央处理器,在图中未示出)的上电和复位入口,包含以下两种功能读取特定硬件的输入信息和检测主控程序加载失败标志位,例如特定管脚的数字电平值(0或者1);以及根据读取到的值来判断是进入主控应用程序存储装置10还是进入修复装置30。
主控应用程序存储装置10存储用于实现嵌入式设备的全部应用功能的主控应用程序代码。需要注意的是,主控应用程序为控制嵌入式设备的功能操作的所有应用程序。在正常情况下,当在启动调度装置20的引导下进入该主控应用程序存储装置10时,微处理器执行该主控应用程序存储装置10所存储的主控应用程序代码,以实现所需功能。
修复装置30存储了主控应用程序备份文件和修复程序,当发生故障时,在特定硬件输入下,启动调度装置20被引导到该修复装置30。此时,修复装置30的修复程序将所存储的主控应用程序备份文件写入主控应用程序存储装置10,覆盖主控应用程序存储装置10原有的主控应用程序、以及屏蔽发生损坏的存储区域,以实现对嵌入式设备的自行修复。
对本领域的人员显而易见,以上所述的主控应用程序存储装置10、启动调度装置20、修复装置30能够以软件、硬件或其组合的形式来实现。
下面将结合图2和图3对根据本发明实施例的自行修复嵌入式设备的主控应用程序的方法进行描述。
图2是示出了根据本发明实施例的自行修复嵌入式设备的主控应用程序的方法的修复功能激活过程的流程图。
所有用于嵌入式系统的微处理器,都具有一个固定的入口地址。每当处理器上电或收到复位中断信号,就会从这个地址开始执行程序代码。
在本发明中,如图2所示,启动调度装置20的起始指令就存放在入口地址处,根据该入口地址,该启动调度装置20被激活(步骤201)。然后,在步骤203,启动调度装置20读取指定管脚的电平和指定标志位。例如,在管脚电平为高的状态下,跳转到修复装置30执行根据本发明的修复过程(步骤207)。而在管脚电平为低的状态下,跳转到主控应用程序存储装置10以启动主控应用程序(步骤205)。
需要注意的是,管脚电平的高低电平分别代表存在特定的硬件输入和嵌入式设备处于默认状态。通常,嵌入式设备处于默认状态表示嵌入式设备操作正常,而在嵌入式设备出现故障和异常的情况下,则可以由用户输入特定的按键组合(硬件输入)来激活修复装置30。
当然,本发明并不局限于此。例如,也可以在嵌入式设备正常操作情况下通过用户的硬件输入来激活修复装置30,以使主控应用程序进入复位状态。亦可以通过检测相应的标志位、寄存器等激活修复装置30。
图3是示出了根据本发明实施例的自行修复嵌入式设备的主控应用程序的方法的修复过程的流程图。
如图3所示,在步骤301,进入修复过程。在步骤303,修复装置30读取其中所存储的主控应用程序代码备份。在步骤305,将主控应用程序代码备份覆写到主控应用程序存储装置10上,并且屏蔽发生损坏的存储区域。在步骤307,在上述覆写和屏蔽操作结束之后,由启动调度装置20引导到初始复位状态。
在实际中,主控应用程序代码为最复杂、运行最频繁的代码区域,主控应用程序存储装置则是读写操作最频繁、存储空间最大的区域。因此这一部分出现故障的可能性也最大,一旦出现故障,就可以用硬件输入操作或者自我检测标志位,通过调度程序进入修复程序以修复主控应用程序。
此外,在通常情况下,可能会在主控应用程序中添加功能。此时,可以更新修复装置30中的主控应用程序代码备份,从而避免这一部分出现故障导致修复装置30不再可用。用户不可访问专用存储区中的主控应用程序代码备份,并根据硬件和标志位变化执行更新。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
权利要求
1.一种自行修复嵌入式设备的主控应用程序的方法,包括以下步骤判断是否存在来自用户的特定硬件输入,以及检测主控应用程序加载是否成功;在存在特定硬件输入的情况下或当所述嵌入式设备无法正常加载应用程序时,启动修复程序;在启动所述修复程序之后,所述修复程序读取用户不可访问的专用存储区中的主控应用程序代码备份并覆写到主控应用程序的存储区,并且屏蔽主控应用程序存储区中发生损坏的存储部分。
2.根据权利要求1所述的方法,其特征在于在不存在特定硬件输入的情况下,启动主控应用程序存储区中的主控应用程序以操作嵌入式设备。
3.根据权利要求1所述的方法,其特征在于所述特定硬件输入是嵌入式设备上的任意按键或按钮组合。
4.根据权利要求1所述的方法,其特征在于用户不可访问的专用存储区中的主控应用程序代码备份根据硬件和标志位变化执行更新。
5.一种自行修复嵌入式设备的主控应用程序的设备,包括主控应用程序存储装置,用于存储用于执行嵌入式设备的操作的主控应用程序;启动调用装置,判断是否存在来自用户的特定硬件输入,以及检测主控应用程序加载是否成功;在存在特定硬件输入的情况下,或者当所述嵌入式设备无法正常加载应用程序时,启动修复装置中所存储的修复程序;否则,启动主控应用程序存储装置中所存储的主控应用程序;以及修复装置,用于存储主控应用程序代码备份以及修复程序,并且当所述启动调用装置启动所述修复装置中所存储的修复程序时,所述修复程序读取用户不可访问的专用存储区中的主控应用程序代码备份并覆写到主控应用程序存储装置上,并且屏蔽主控应用程序存储区中发生损坏的存储部分。
6.根据权利要求5所述的设备,其特征在于所述特定硬件输入是嵌入式设备上的任意按键或按钮组合。
7.根据权利要求5所述的设备,其特征在于所述用户不可访问的专用存储区中的主控应用程序代码备份根据硬件和标志位变化执行更新。
全文摘要
根据本发明,提出了一种自行修复嵌入式设备的主控应用程序的方法,包括以下步骤判断是否存在来自用户的特定硬件输入;在存在特定硬件输入的情况下,启动修复过程;在启动所述修复过程之后,所述修复过程读取用户不可访问的专用存储区中的主控应用程序代码备份并覆写到主控应用程序的存储区,并且屏蔽主控应用程序存储区中发生损坏的存储部分。
文档编号G06F11/14GK1940887SQ20051011334
公开日2007年4月4日 申请日期2005年9月28日 优先权日2005年9月28日
发明者徐琳 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1