一种嵌入式系统中的应用程序自恢复运行方法及装置的制造方法

文档序号:9750657阅读:600来源:国知局
一种嵌入式系统中的应用程序自恢复运行方法及装置的制造方法
【技术领域】
[0001]本发明涉及一种嵌入式系统中的应用程序自恢复运行方法及装置。
【背景技术】
[0002]随着电子技术、通信技术以及计算机技术的快速发展,嵌入式系统已经广泛应用于各领域,各种行业对嵌入式设备的系统功能、性能以及规模的要求在日益提高,开发者必须能够针对客户的需求及时对系统进行维护和升级,以延长系统的使用周期,改善系统的性能。
[0003]采用现有的嵌入式系统启动流程,在使用过程中极易导致系统死机,难以保证启动和程序(系统)升级的成功率。
[0004]采用现有的嵌入式系统启动流程,如图1所示,在数据错误,掉电及死机等异常情况下需要人工干预才能恢复正常工作。
[0005]现有技术方案存在以下几个缺点:
[0006]1、在嵌入式系统中接收应用程序数据过程中由于外界原因导致数据出现错误时,该方案无法再次运行应用程序,需要进行人工干预才能恢复正常。
[0007]2、在应用程序数据进行写入时也可能出现异常,导致数据出现错误时,该方案无法再次运行应用程序,需要进行人工干预才能恢复正常。
[0008]3、在应用程序数据接收及写入过程中,可能出现掉电或死机等异常时,该方案无法再次运行应用程序,需要进行人工干预才能恢复正常。
[0009]另外,公开号为101201764的发明专利公开了一种嵌入式系统恢复方法【申请号为200610157544.4】,其核心是备份该嵌入式系统的系统配置文件,在系统出错时,通过硬件中断的方式重新加载系统配置文件后重启系统,实现系统的恢复;该方法需要增加新的硬件,而且要保障备份的系统配置文件本身不出错,而且灵活性较差,无法随时在线更新程序。
[0010]因此,有必要设计一种嵌入式系统中的应用程序自恢复运行方法及装置。

【发明内容】

[0011]本发明所要解决的技术问题是提供一种嵌入式系统中的应用程序自恢复运行方法及装置,该嵌入式系统中的应用程序自恢复运行方法及装置易于实施,能有效完成系统的恢复运行。
[0012]发明的技术解决方案如下:
[0013]—种嵌入式系统中的应用程序自恢复运行方法,其特征在于,在存储器中设置2个存储空间:区域A和区域B;分别用于存储应用程序数据A和应用程序数据B,初始化异常启动次数为O;初始化程序启动位置标志S,S为SI和S2中的某一个值,SI在S2;
[0014]所述的应用程序自恢复方法包括以下步骤:
[0015]步骤1:启动嵌入式系统,检查本次开机后查看系统启动来源寄存器判断是否由看门狗复位引起;若启动由看门狗复位引起,则判定本次启动为异常重启,并将异常启动次数增加I;否则,若启动并非由看门狗复位引起,则异常启动次数清零【连续由看门狗引起重启才自动恢复,防止外界因素偶然因素出现一次看门狗引起重启的误判情况)】;
[0016]步骤2:
[0017](I)若异常启动次数大于阈值N,则更改程序启动位置标志,确保下次从另一应用程序区域启动,并使得异常启动次数清零,然后返回步骤I重启嵌入式系统;所述的更改是指SI改变为S2,或S2改变为SI;(此时当前应用区域数据异常,需要从另一区域恢复)
[0018](2)若异常启动次数小于或等于阈值N;读取程序启动位置标志S并判断;
[0019 ]若S = SI则从区获取数据启动应用程序;
[0020]SS = S2则从区域B获取数据启动应用程序。
[0021]在步骤2的“读取程序启动位置标志S并判断”前提示嵌入式系统是否需要下载(或接收)应用程序数据;若是,则进入步骤3,否则继续步骤2中的“读取程序启动位置标志S并判断”;步骤3:先读取程序启动位置标志S并判断:
[0022]若S= Sl则将接收的应用程序数据写到区域A;
[0023]若S= S2则将接收的应用程序数据写到区域B;
[0024]数据接收完成后更改程序启动位置标志,确保下次启动从另一应用程序区域启动,并返回步骤I重启嵌入式系统;所述的更改是指SI改变为S2,或S2改变为SI。(此时另一应用区域数据已经更新,需要从另一区域启动新的应用程序)
[0025]所述的应用程序数据通过CAN总线、LAN或串行总线从外部设备获取。(目前采用有CAN,串口,网口三种)
[0026]所述的SI为0x55,S2为Oxaa;阈值N为5。
[0027]一种嵌入式系统中的应用程序自恢复运行装置,嵌入式系统包括处理器和与处理器相连的看门狗电路和存储器;存储器中具有2个存储空间:区域A和区域B,分别用于存储应用程序数据A和应用程序数据B;采用前述的嵌入式系统中的应用程序自恢复运行方法实现应用程序自恢复运行。
[0028]所述的SI为0x55,S2为Oxaa;阈值N为5。
[0029]在打开硬件看门狗的情况下,通过检查是否由看门狗导致的重启可以确定应用程序是否工作正常。
[0030]本发明通过使用两个完全独立的区域存放应用程序,能保证由于在线编程的各类异常导致某一区域的应用程序出错的情况下,能在另一区域存放有一正常的应用程序备份。
[0031]有益效果:
[0032]本发明的嵌入式系统中的应用程序自恢复运行方法及装置,能有效解决现有在线应用编程技术的死机等异常问题。本发明利用芯片看门狗功能能有效判断系统是否处于异常状态,如果处于异常状态,利用备份区域中的应用程序直接启动应用程序,保证系统的正常运行。
[0033]采用新方案即使出现异常情况,导致应用程序数据出现错误,应用程序无法正常启动,系统异常,此时必定引起看门狗动作,但在异常重启超过N次后系统能判断出此时启动区域中的应用程序出现异常不能使用,此时会自动更改程序启动位置标志,并清除异常重启次数,所以在下一次重启时能从另一区域启动正常应用,从而不影响应用程序的正常工作,有效的提高了应用程序的启动和升级效率,有利保障系统的正常运行。
[0034]本发明能有效解决由于各种问题造成的系统死机问题,能极大地提升系统的可靠性。
【附图说明】
[0035]图1为现有的应用程序恢复运行的流程图;
[0036]图2为嵌入式系统中的应用程序自恢复运行的流程图。
【具体实施方式】
[0037]以下将结合附图和具体实施例对本发明做进一步详细说明:
[0038]实施例1:
[0039]如图1-2,一种嵌入式系统中的应用程序自恢复运行方法,其特征在于,在存储器中设置2个存储空间:区域A和区域B;分别用于存储应用程序数据A和应用程序数据B,初始化异常启动次数为O;初始化程序启动位置标志S,S为SI和S2中的某一个值,SI在S2;
[0040]所述的应用程序自恢复方法包括以下步骤:
[0041]步骤1:启动嵌入式系统,检查本次开机后查看系统启动来源寄存器判断是否由看门狗复位引起;若启动由看门狗复位引起,则判定本次启动为异常重启,并将异常启动次数增加I;否则,若启动并非由看门狗复位引起,则异常启动次数清零【连续由看门狗引起重启才自动恢复,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1