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

文档序号:6559448阅读:180来源:国知局
专利名称:一种保证设备软件在线下载可靠性的方法
技术领域
本发明提供一种适用于信息与通讯技术领域的方法,尤其涉及保证设备单板软件在线更新的数据正确性以及故障的自动恢复的方法。
背景技术
现网运行的通讯设备中各个硬件单元的设备,一方面考虑到功能的增加,另一方面要消除原先存在的故障存在软件下载的必要,而在设备运行中或程序下载过程中可能发生以下情况通信中断导致下载失败;网管使用中的误操作导致下载信息错误;下位机在运行时发生硬件故障导致程序丢失。
一般的解决方法是在升级程序的时候通过一定的功能验证方式来确认下载是否成功,不成功时需要重新下载数据/程序。而如果在运行期间程序丢失后,则只能通过运维人员再次升级程序来解决问题了。

发明内容
本发明提出一种用于解决设备软件下载过程中因为外界干扰或传输出错而造成下载不成功或数据/程序丢失,以及即使下载出错,可以保证硬件单元自动切换到故障前的程序的方法。
为了解决上述问题,本发明提出一种保证设备软件在线下载可靠性的方法,在应用程序内部设立成熟度点,并根据成熟度值决定是否加载新下载程序。所述方法包括以下步骤(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字节的位置开始重新计算应用程序的循环冗余校验和,然后把重新计算得到的循环冗余校验和与文件头部信息结构中记录的循环冗余校验和作比较,如果二者不相等,则认为主程序区的程序存在缺陷,放弃加载主程序区的程序,转而加载备份程序区的应用程序。通过核对循环冗余校验和,防止设备软件下载过程中传输错误。
步骤140,如果经过上述判断,得知主程序区的程序不可用,则将主程序区设置为备用程序区,将备用程序区设为主程序区。并加载当前主程序区的程序,结束,否则,执行步骤150;步骤150,如果程序区的程序可用,则分析程序的成熟度,对于引导程序首次加载和非首次加载应用程序分别执行步骤160和步骤170;本实施例假定应用程序有两个关键点,第一个关键点执行是否成功,作为第一个成熟度点,第二个关键点执行是否成功,作为第二个成熟度点。把一个软件的运行成熟度分为5个等级成熟度为5表示可以长时间成功运行;成熟度为4表示第一次加载后可以成功运行;成熟度为3表示下载完毕,尚未开始运行;成熟度为2表示第一次运行,失败;成熟度为1表示第二次运行,失败;成熟度为0表示不可运行,废弃。因此,应用程序成熟度初始值设为3;成熟度最大值设为5,成熟度最小值设为0。
步骤160,当引导程序首次加载新下载的应用程序时,不需要判断其成熟度。应用程序执行过程中,若通过第一个成熟度点,其成熟度将达到4,若通过第二个成熟度点,其成熟度将达到5。此时达到成熟度最大值,认为是可以运行的程序,加载并允许程序;若通过第一个成熟度点,而没有通过第二个成熟度点,此时成熟度为4;若没有通过第一个成熟度点,则不再判断第二个成熟度,此时成熟度为2。成熟度更新后,要记录成熟度值到相应的程序文件存储区。
引导程序可以根据相关进程是否启动来把判断是否通过成熟度点。
步骤170,当引导程序非首次加载新下载的应用程序时,对新下载的程序的成熟度进行判断,先判断是不是等于0,如果其成熟度达到0,则表明此程序不成熟,将主程序区设置为备用程序区,将备用程序区设为主程序区,并加载当前主程序区程序。如果其成熟度小于3,且在加载成功后没有正常运行,即成熟度没有发生变化,则应用程序的成熟度减1,并将成熟度记录到相应的程序文件存储区。通过判断程序的成熟度值,可以实现对存在较大缺陷应用程序的自动判别,保证硬件单元可以自动切换到故障前的程序。
对于非首次加载时,如果成熟度为4,并且通过第一个成熟度点,成熟度仍为4,则继续判断直到成熟度为5或0;如果没有通过第一个成熟度点,成熟度为2。则根据170步骤继续执行。
权利要求
1.一种保证设备软件在线下载可靠性的方法,所述方法包括以下步骤(1)在单板上为应用程序分配两个存储区,一个是主程序区和一个是备用程序区;(2)对被下载的程序文件进行编译、连接生成应用程序之后,计算该应用程序的循环冗余校验和,将应用程序的长度和该循环冗余校验和添加到该应用程序的头部;(3)将该应用程序从网络侧下载到单板的备用程序区,下载完毕后,将备用程序区变成主程序区,而将当前正在运行的程序区变成备用程序区;(4)上电对单板进行初始化,启动程序重新计算下载的该应用程序除头部外其它数据的循环冗余校验和,并与该应用程序头部中记录的循环冗余校验和作比较,如果二者不相等,则加载原来的可正常运行的应用程序,结束;否则,执行步骤(5);(5)加载该应用程序,结束。
2.如权利要求1所述的方法,其特征在于所述应用程序的文件名中包含单板信息,在所述步骤(3)下载该应用程序时,先判断文件名中包含的单板信息是否与要下载到的单板一致,如果一致,再执行下载,否则,拒绝下载操作,并提示所选择的程序文件错误,结束。
3.如权利要求2所述的方法,其特征在于所述文件名中包含的单板信息是指单板的名称。
4.如权利要求1所述的方法,其特征在于所述单板上还记录有每个下载的应用程序的成熟度信息,所述步骤(5)中,新下载的应用程序首次加载时,其成熟度为一大于0的初始值,如果加载失败,成熟度点就减1。
5.如权利要求1所述方法,其特征在于所述步骤(4)中,启动程序如发现重新计算下载的循环冗余校验和与该应用程序头部记录的循环冗余校验和不相等,先将备用程序区改为主程序区,将主程序区改成备用程序区,再加载当前主程序区中的原应用程序。
6.如权利要求1所述方法,其特征在于所述步骤(4)中,应用程序头部的字节数是固定的,引导程序根据已经读出的应用程序长度,在应用程序文件头偏移该固定字节数的位置开始重新计算应用程序的循环冗余校验和。
7.如权利要求1所述方法,其特征在于所述步骤(5)中,本实施例假定应用程序有两个关键点,第一个关键点执行是否成功,作为第一个成熟度点,第二个关键点执行是否成功,作为第二个成熟度点。
8.如权利要求5所述方法,进一步包括把一个软件的运行成熟度分为5个等级成熟度为5表示可以长时间成功运行;成熟度为4表示第一次加载后可以成功运行;成熟度为3表示下载完毕,尚未开始运行;成熟度为2表示第一次运行,失败;成熟度为1表示第二次运行,失败;成熟度为0表示不可运行,废弃。
9.如权利要求1所述方法,其特征在于所述步骤(5)中,当引导程序首次加载新下载的应用程序时,不需要判断其成熟度。应用程序执行过程中,若通过第一个成熟度点,其成熟度将达到4,若通过第二个成熟度点,其成熟度将达到5。此时达到成熟度最大值,认为是可以运行的程序,加载并允许程序;若通过第一个成熟度点,而没有通过第二个成熟度点,此时成熟度为4;若没有通过第一个成熟度点,则不再判断第二个成熟度,此时成熟度为2。成熟度更新后,要记录成熟度值到相应的程序文件存储区。
10.如权利要求1所述方法,其特征在于所述步骤(5)中,当引导程序非首次加载新下载的应用程序时,对新下载的程序的成熟度进行判断,先判断是不是等于0,如果其成熟度达到0,则表明此程序不成熟,将主程序区设置为备用程序区,将备用程序区设为主程序区,并加载当前主程序区程序;如果其成熟度小于3,且在加载成功后没有正常运行,即成熟度没有发生变化,则应用程序的成熟度减1,并将成熟度记录到相应的程序文件存储区;对于非首次加载时,如果成熟度为4,并且通过第一个成熟度点,成熟度仍为4,则继续判断直到成熟度为5或0;如果没有通过第一个成熟度点,成熟度为2,则继续判断直到成熟度为0。
全文摘要
本发明提出一种在应用程序内部设立成熟度点,保证设备软件在线下载可靠性的方法。首先对被下载的程序计算其循环冗余校验和,下载完毕后,上电初始化,启动程序重新计算下载的该应用程序的循环冗余校验和,并与该应用程序头部中记录的值作比较,如果二者不相等,则加载原来的可正常运行的应用程序;否则,加载该应用程序。本发明可以保证程序不会因为选择和传输出现错误,也不会出现下载错误程序后不能执行而无法恢复到出错前状态。
文档编号G06F9/445GK1897515SQ20061009035
公开日2007年1月17日 申请日期2006年6月29日 优先权日2006年6月29日
发明者许鹍, 王光辉, 何漪 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1