一种保证设备软件在线下载可靠性的方法技术

技术编号:3507196 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种在应用程序内部设立成熟度点,保证设备软件在线下载可靠性的方法。首先对被下载的程序计算其循环冗余校验和,下载完毕后,上电初始化,启动程序重新计算下载的该应用程序的循环冗余校验和,并与该应用程序头部中记录的值作比较,如果二者不相等,则加载原来的可正常运行的应用程序;否则,加载该应用程序。本发明专利技术可以保证程序不会因为选择和传输出现错误,也不会出现下载错误程序后不能执行而无法恢复到出错前状态。

【技术实现步骤摘要】

本专利技术提供一种适用于信息与通讯
的方法,尤其涉及保证设备单板软件在线更新的数据正确性以及故障的自动恢复的方法。
技术介绍
现网运行的通讯设备中各个硬件单元的设备,一方面考虑到功能的增加,另一方面要消除原先存在的故障存在软件下载的必要,而在设备运行中或程序下载过程中可能发生以下情况通信中断导致下载失败;网管使用中的误操作导致下载信息错误;下位机在运行时发生硬件故障导致程序丢失。一般的解决方法是在升级程序的时候通过一定的功能验证方式来确认下载是否成功,不成功时需要重新下载数据/程序。而如果在运行期间程序丢失后,则只能通过运维人员再次升级程序来解决问题了。
技术实现思路
本专利技术提出一种用于解决设备软件下载过程中因为外界干扰或传输出错而造成下载不成功或数据/程序丢失,以及即使下载出错,可以保证硬件单元自动切换到故障前的程序的方法。为了解决上述问题,本专利技术提出,在应用程序内部设立成熟度点,并根据成熟度值决定是否加载新下载程序。所述方法包括以下步骤(1)在单板上为应用程序分配两个存储区,一个是主程序区和一个是备用程序区; (2)对被下载的程序文件进行编译、连接生成应用程序之后,计算该应用程序的循环冗余校验和,将应用程序的长度和该循环冗余校验和添加到该应用程序的头部;(3)将该应用程序从网络侧下载到单板的备用程序区,下载完毕后,将备用程序区变成主程序区,而将当前正在运行的程序区变成备用程序区;(4)上电对单板进行初始化,启动程序重新计算下载的该应用程序除头部外其它数据的循环冗余校验和,并与该应用程序头部中记录的循环冗余校验和作比较,如果二者不相等,则加载原来的可正常运行的应用程序,结束;否则,执行步骤(5);(5)加载该应用程序,结束。进一步,上述方法还可以具有以下特点所述应用程序的文件名中包含单板信息,在所述步骤(3)下载该应用程序时,先判断文件名中包含的单板信息是否与要下载到的单板一致,如果一致,再执行下载,否则,拒绝下载操作,并提示所选择的程序文件错误,结束。进一步,上述方法还可以具有以下特点所述文件名中包含的单板信息是指单板的名称。进一步,上述方法还可以具有以下特点所述单板上还记录有每个下载的应用程序的成熟度信息,所述步骤(5)中,新下载的应用程序首次加载时,其成熟度为一大于0的初始值,如果加载失败,成熟度点就减1。进一步,上述方法还可以具有以下特点所述步骤(4)中,启动程序如发现重新计算下载的循环冗余校验和与该应用程序头部记录的循环冗余校验和不相等,先将备用程序区改为主程序区,将主程序区改成备用程序区,再加载当前主程序区中的原应用程序。进一步,上述方法还可以具有以下特点所述步骤(4)中,应用程序头部的字节数是固定的,引导程序根据已经读出的应用程序长度,在应用程序文件头偏移该固定字节数的位置开始重新计算应用程序的循环冗余校验和。进一步,上述方法还可以具有以下特点所述步骤(5)中,本实施例假定应用程序有两个关键点,第一个关键点执行是否成功,作为第一个成熟度点,第二个关键点执行是否成功,作为第二个成熟度点。进一步,上述方法还可以具有以下特点把一个软件的运行成熟度分为5个等级成熟度为5表示可以长时间成功运行;成熟度为4表示第一次加载后可以成功运行;成熟度为3表示下载完毕,尚未开始运行;成熟度为2表示第一次运行,失败;成熟度为1表示第二次运行,失败;成熟度为0表示不可运行,废弃。进一步,上述方法还可以具有以下特点所述步骤(5)中,当引导程序首次加载新下载的应用程序时,不需要判断其成熟度。应用程序执行过程中,若通过第一个成熟度点,其成熟度将达到4,若通过第二个成熟度点,其成熟度将达到5。此时达到成熟度最大值,认为是可以运行的程序,加载并允许程序;若通过第一个成熟度点,而没有通过第二个成熟度点,此时成熟度为4;若没有通过第一个成熟度点,则不再判断第二个成熟度,此时成熟度为2。成熟度更新后,要记录成熟度值到相应的程序文件存储区。进一步,上述方法还可以具有以下特点所述步骤(5)中,当引导程序非首次加载新下载的应用程序时,对新下载的程序的成熟度进行判断,先判断是不是等于0,如果其成熟度达到0,则表明此程序不成熟,将主程序区设置为备用程序区,将备用程序区设为主程序区,并加载当前主程序区程序;如果其成熟度小于3,且在加载成功后没有正常运行,即成熟度没有发生变化,则应用程序的成熟度减1,并将成熟度记录到相应的程序文件存储区;对于非首次加载时,如果成熟度为4,并且通过第一个成熟度点,成熟度仍为4,则继续判断直到成熟度为5或0;如果没有通过第一个成熟度点,成熟度为2,则继续判断直到成熟度为0。与现有技术相比,本专利技术使用在应用程序内部设立成熟度点,并根据成熟度值决定是否加载新下载程序的方法。可以保证程序不会因为选择和传输出现错误,也不会出现下载错误程序后不能执行而无法恢复到出错前状态。附图说明图1是各个组件的结构图;图2是程序加载流程图。具体实施例方式图1所示为本专利技术的系统,包括网络管理设备和单板,两者通过通讯接口相互通信,单板的存储单元划分为程序运行区、程序存储区A、程序存储区B、程序信息区和引导程序存储区。程序存储区A也称为主程序区,程序存储区B也称为备用程序区,两个存储区的程序互为备份。程序信息区主要负责存储程序存储区A和程序存储区B两区程序的长度、校验值和运行成熟度信息。引导程序则根据程序信息区内容,决定执行哪个程序存储区的程序。图2所示为程序下载过程的流程和加载过程的流程图。其具体步骤如下步骤110,对被下载的程序文件进行编译、连接生成应用程序之后,通过工具软件计算应用程序的循环冗余校验和,并在应用程序头部添加一个32字节长的描述信息结构,在此结构中记录应用程序的长度和循环冗余校验和。也就是说,应用程序将由原来的N字节长度变成N+32字节,并且在应用程序文件开始偏移32字节的位置才是真正的可运行程序。步骤120,网络侧对被下载的文件名进行校验,根据该文件名中包含的单板信息是否与要下载到的单板一致,如果一致,执行步骤130,否则,拒绝下载操作,并提示所选择的程序文件错误,结束;本实施例对单板命名的规则是单板名称+程序烧结位号+版本信息。如表一所示,程序文件OPAD5V100.bin是OPA单板1.00版本的程序,其烧结位号是D5;程序文件OMUD6V120.bin是OMU单板1.20版本的程序,其烧结位号是D6。对OPA单板进行软件的在线下载时,如果选择的程序文件是OMUD6V120.bin,网管认为用户选择的程序文件和目标单板不一致而拒绝下载操作,并提示所选择的程序文件错误。 表一文件命名举例步骤130,将应用程序从网络侧下载到单板的主程序区,下载完毕后,备用程序区将变成主程序区,而当前正在运行的程序区变成备用程序区。上电对单板进行初始化,在加载应用程序之前,引导程序首先定位到主程序区的应用程序文件,读取32字节长的描述信息结构,获知应用程序的长度和循环冗余校验和;接着引导程序根据已经读出的应用程序长度,在应用程序文件头偏移32字节的位置开始重新计算应用程序的循环冗余校验和,然后把重新计算得到的循环冗余校验和与文件头部信息结构中记录的循环冗余校验和作比较,如果二者不相等,则认为主程序区的程序存在缺本文档来自技高网...

【技术保护点】
一种保证设备软件在线下载可靠性的方法,所述方法包括以下步骤:(1)在单板上为应用程序分配两个存储区,一个是主程序区和一个是备用程序区;(2)对被下载的程序文件进行编译、连接生成应用程序之后,计算该应用程序的循环冗余校验和,将 应用程序的长度和该循环冗余校验和添加到该应用程序的头部;(3)将该应用程序从网络侧下载到单板的备用程序区,下载完毕后,将备用程序区变成主程序区,而将当前正在运行的程序区变成备用程序区;(4)上电对单板进行初始化,启动程序重新 计算下载的该应用程序除头部外其它数据的循环冗余校验和,并与该应用程序头部中记录的循环冗余校验和作比较,如果二者不相等,则加载原来的可正常运行的应用程序,结束;否则,执行步骤(5);(5)加载该应用程序,结束。

【技术特征摘要】

【专利技术属性】
技术研发人员:许鹍王光辉何漪
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利