发明名称 一种软件版本更新的方法
摘要 本发明公开了一种软件版本更新的方法,包括:将启动的程序区域分A区,B区,在A区开辟一段版本切换程序;系统加电复位后DSP的程序指针自动指向内部ROM中的Bootloader程序;从A区的0xFFFF读出的数据作为加载程序的有效地址;Boot程序将FLASH中的Boot表的首地址,进行Bootloader过程:正常版本在A区,则FLASH 0x0000-0x8000映射为DSP的0x8000-0xffff空间,FLASH的0x8000即为DSP的0xFFFF,其首址内容为A版本加载内容的首址。本方法可以保护软件在下载过程突发的意外情况,保护系统可以重新启动。
申请公布号 CN100416503C 申请公布日期 2008.09.03
申请号 CN200510115560.2 申请日期 2005.11.04
申请人 中兴通讯股份有限公司 发明人 王文焕
分类号 G06F9/445(2006.01) 主分类号 G06F9/445(2006.01)
代理机构 北京安信方达知识产权代理有限公司 代理人 王漪;王继长
主权项 1. 一种软件版本更新的方法,其特征在于,包括如下步骤:步骤1、将启动的程序区域分A区,空间为0x0000-0x7fff,B区,空间为0xa000-0xffff,在A区开辟一段版本切换程序,空间为0x0000-0x1fff;A区保存和运行的软件称为A软件,B区保存和运行的软件称为B软件,A软件版本长度大小为0x2000-0x7fff;步骤2、系统加电复位后DSP的程序指针自动指向内部ROM中的Bootloader程序;步骤3、从A区的0x7fff读出的数据作为加载程序的有效地址;步骤4、Boot程序将FLASH中的Boot表的首地址,进行Bootloader过程,完成程序加载运行过程;当系统需版本更新时,软件查询当前运行的软件版本信息是A软件还是B软件:如果运行的版本是在A区的A软件,FLASH 0x0000-0x7fff映射为DSP的0x8000-0xffff空间,FLASH的0x7fff即为DSP的0xffff,其首址内容为A版本加载内容的首址,进行版本更新时包括如下步骤:步骤11:通过指令由外围硬件切换使FLASH空间工作在B区;步骤12:进行B区擦除,数据校验正确后将B软件写入B区:如B软件写入B区时出错,则原版本信息仍有效,重启后仍旧执行A的老版本,结束;如B软件写入B区正确,在B区写入B软件的版本信息,继续下一步;步骤13:切换到A区,将B软件版本信息写入A区的版本切换程序;步骤14:再次切换到B区:在复位系统时由B区启动;在冷启时,先加载A区的版本切换程序,由版本切换程序保存的版本信息确定切换到B区启动;如果运行的正常版本是在B区的B软件,冷启时FLASH 0x0000-0x7fff映射为DSP的0x8000-0xffff空间,这时DSP的0xffff加载版本的首地址为版本切换程序,版本切换程序将FLASH的空间切换为0x8000-0xFFFF映射为DSP的0x8000-0xffff空间;复位系统时,其首址内容为B版本加载内容的首址;进行版本更新时包括如下步骤:步骤21:通过指令由外围硬件切换使FLASH空间工作在A区;步骤22:进行A区擦除,数据校验正确后,将A软件写入A区:如果A软件写入A区时出错,重启时系统读版本信息为B软件,由B区重启;如果A软件写入A区正确,写入A软件版本信息,复位系统后由A区启动程序。
地址 518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部