CN1959635A - 一种软件版本更新的方法 - Google Patents

一种软件版本更新的方法 Download PDF

Info

Publication number
CN1959635A
CN1959635A CN 200510115560 CN200510115560A CN1959635A CN 1959635 A CN1959635 A CN 1959635A CN 200510115560 CN200510115560 CN 200510115560 CN 200510115560 A CN200510115560 A CN 200510115560A CN 1959635 A CN1959635 A CN 1959635A
Authority
CN
China
Prior art keywords
version
program
dsp
district
0xffff
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200510115560
Other languages
English (en)
Other versions
CN100416503C (zh
Inventor
王文焕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2005101155602A priority Critical patent/CN100416503C/zh
Publication of CN1959635A publication Critical patent/CN1959635A/zh
Application granted granted Critical
Publication of CN100416503C publication Critical patent/CN100416503C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件版本更新的方法,包括:将启动的程序区域分A区,B区,在A区开辟一段版本切换程序;系统加电复位后DSP的程序指针自动指向内部ROM中的Bootloader程序;从A区的0xFFFF读出的数据作为加载程序的有效地址;Boot程序将FLASH中的Boot表的首地址,进行Bootloader过程:正常版本在A区,则FLASH 0x0000-0x8000映射为DSP的0x8000-0xffff空间,FLASH的0x8000即为DSP的0xFFFF,其首址内容为A版本加载内容的首址。本方法可以保护软件在下载过程突发的意外情况,保护系统可以重新启动。

Description

一种软件版本更新的方法
技术领域
本发明涉及数字信号处理领域,尤其是软件版本更新领域,具体地涉及DSP软件的版本更新方法。
背景技术
随着微电子技术,计算机技术和通讯技术的迅猛发展,数字化技术已广泛深入到现代国防、科技以及国民经济等各个领域,在社会活动和个人生活中随处可见,数字化技术的基础和核心是通用数字信号处理,及相应的程序软件,尤其是DSP的应用程序在科技、国防、国民经济、社会和个人生活中具有突出的地位。
DSP芯片最大的优越性在于其可重复编程的能力,并将不同的应用软件下载到DSP芯片中,实现通讯和控制功能。
通常将DSP程序放在专用的EEPROM中,但是DSP为了增加软件下载的灵活性,将EEPROM等存储器放置在片外,由一片或几片FLASH来替代,DSP的内部ROM固化了一个称为Boot的程序,在DSP上电硬件复位后,DSP自动执行Boot程序,将外部FLASH的程序读入DSP内部的高速RAM程序区中。
软件版本更新时,通常是直接刷新FLASH,但是若此时意外掉电可使数据丢失,系统无法启动。
第一、目前室外单元在无线系统中有广泛的应用,通过通讯的方式传达监控信息,在作版本升级及更新时,通常存在意外风险。通常采用的远程升级通过业已存在的数据通信链路,将新程序先下载到缓存空间,下载完成并校验无误后,将程序自举存储空间用新的升级程序覆盖,重新启动后,即可执行升级后的新程序。
但是若在覆盖过程中发生如系统断电,或意外复位等因素,就可使系统发生彻底崩溃的危险。
第二、在批量生产时,通常直接将有下载软件的FLASH焊接PCB板上,这时要进行软件版本更新要通过通讯接口等方法是带电直接刷新本版软件。
若这时发生突然断电,板子将无法启动,必须将片子从板上焊接下来重新烧录后再焊接。这就要求在版本下载过程中有必要的保护机制,才能降低维护成本。
公开号为CN1259813,公开日期为2000年7月12日的专利“可远程下载运行软件的智能数据监控通讯设备及方法”,涉及计算机网络系统中的通讯技术和监控技术,针对远端地点的软件更新和调试需要较多的时间和工程量并且系统可靠性不高的问题,提出了由中央处理器及外围逻辑、只读存储器、闪烁存储器、随机读写存储器、串行电可擦写存储器、通讯接口组成的智能数据监控通讯设备,以及包括下载操作和运行软件中的下载处理的方法。
虽然本专利节约了时间和工程量,提高了系统的可靠性,适于远程通讯或监控系统中远端软件的更新和调试。但是该专利还是采用传统的直接刷新存储区的方法,只能保证下载过程中不出现意外复位的情况,存在出现意外复位,系统会发生崩溃的危险。
发明内容
本发明为了克服现有技术中存在的上述问题,提出一种软件版本更新的方法。
采用本发明可以保护软件在下载过程中突发意外情况,保护系统仍可以正确重启。
本发明是这样具体实现的:
将启动的程序区域分A区,B区,在A区开辟一段版本切换程序;
系统加电复位后DSP的程序指针自动指向内部ROM中的Bootloader程序;
从A区的0xFFFF读出的数据作为加载程序的有效地址;
Boot程序将FLASH中的Boot表的首地址,进行Bootloader过程;
如果正常版本在A区,则FLASH 0x0000-0x8000映射为DSP的0x8000-0xffff空间,FLASH的0x8000即为DSP的0xFFFF,其首址内容为A版本加载内容的首址,这时冷启、热启均不影响系统正常工作;
如果正常版本在B区,冷启时FLASH 0x0000-0x8000映射为DSP的0x8000-0xffff空间,这时DSP的0xFFFF加载版本的首地址为版本切换程序,版本切换程序将FLASH的空间切换为0x8000-0xFFFF映射为DSP的0x8000-0xffff空间,复位系统即热启系统,其首址内容为B版本加载内容的首址。
如果下载过程中出错重启,则此时尚未对版本信息A和B改写,重启后仍旧执行A老版本;
如果改写版本信息B时出错,则版本信息A仍有效,重启后仍旧执行老版本;
如果改写版本信息A时出错,由于此时版本信息B已经成功写入,重启后,由于系统读版本信息为B,重启B。
本发明采用A,B切换的方法克服了意外出现对系统造成的损失,利用巧妙的保护机制使系统在下载过程中出现意外仍可以重启,提高了系统的可靠性,还可以应用于广泛的下载更新的程序中,在常规设计中的DSP+FPGA的结构中可不改变原有系统硬件基础上即可作性能提升,有非常好的市场前。
附图说明
图1是本发明提出的单板版本更新及热启流程图。
具体实施方式
下面结合附图对本发明所述方法作进一步的详细说明:
将FLASH区域化为两块:一块叫A区,一块叫B区,系统重启分为冷启动(即系统上电),系统热启(带电复位);
如系统目前运行的程序在A区:
当系统需版本更新时,软件查询当前运行的软件版本信息是A(0x55)软件还是B(0xAA)软件:
如是A软件,则通过指令由外围硬件(如FPGA)却换A15为高,这时FLASH空间为0x8000-0xffff即工作在B区,先进行B区擦除,数据校验正确后写入B区,如图1所示;
在程序正确写完之后,写B区版本信息(0xAA)、Boot首址信息(0xA000)。
切换到A区,写A区版本信息(0xAA)、Boot首址信息(0x8000)。
再次切换到B区,复位系统(热启)由B区启动程序,如掉电重启则先加载版本切换程序,切换到B区后热启。
如目前运行的是B软件,则通过指令由外围硬件(如FPGA)却换A15为低,这时FLASH空间为0x0000-0x7fff即工作在A区,先进行A区擦除,数据校验正确后写入A区,如图1所示,
在程序正确写完之后,写A区版本信息(0x55)、Boot首址信息(0xA000)。
复位系统(热启)由A区启动程序,如掉电重启则仍由A区启动。不受版本切换影响。
正常工作过程如下:
1、将切换版本程序烧写到0x0000,A版本程序烧写到0x2000处,版本信息写0x55,Boot首址写0xa000,正常运行A版本;
2、如果下载过程中出错重启,则此时尚未对版本信息A和B改写,重启后仍旧执行A老版本;
3、如果改写版本信息B时出错,则版本信息A仍有效,重启后仍旧执行老版本;
4、如果改写版本信息A时出错,由于此时版本信息B已经成功写入,重启后,由于系统读版本信息为B,重启B。
各版本在FLASH中的地址分配:
  内容   起始地址(FLASH)   映射DSP空间
  切换版本   0x0000   0x8000
  A版本   0x2000(版本长度)   0xA000
  版本信息   0x7ff0   0xfff0
  Boot首址内容   0x7fff   0xffff
  B版本   0xa000   0xa000
  版本信息   0xfff0   0xfff0
  Boot首址内容   0xffff   0xffff

Claims (3)

1、一种软件版本更新的方法,其特征在于,包括如下步骤:
步骤1、将启动的程序区域分A区,B区,在A区开辟一段版本切换程序;
步骤2、系统加电复位后DSP的程序指针自动指向内部ROM中的Bootloader程序;
步骤3、从A区的0xFFFF读出的数据作为加载程序的有效地址;
步骤4、Boot程序将FLASH中的Boot表的首地址,进行Bootloader过程:
正常版本在A区,则FLASH 0x0000-0x8000映射为DSP的0x8000-0xffff空间,FLASH的0x8000即为DSP的0xFFFF,其首址内容为A版本加载内容的首址。
2、如权利要求1所述的软件版本更新的方法,其特征在于,所述步骤4中进行Bootloader过程:
如果正常版本在B区,冷启时FLASH 0x0000-0x8000映射为DSP的0x8000-0xffff空间,这时DSP的0xFFFF加载版本的首地址为版本切换程序,版本切换程序将FLASH的空间切换为0x8000-0xFFFF映射为DSP的0x8000-0xffff空间;复位系统即热启系统,其首址内容为B版本加载内容的首址。
3、如权利要求1或2所述的软件版本更新的方法,其特征在于:
如果下载过程中出错重启,则此时尚未对版本信息A和B改写,重启后仍旧执行A老版本;
如果改写版本信息B时出错,则版本信息A仍有效,重启后仍旧执行老版本;
如果改写版本信息A时出错,由于此时版本信息B已经成功写入,重启后,由于系统读版本信息为B,重启B。
CNB2005101155602A 2005-11-04 2005-11-04 一种软件版本更新的方法 Expired - Fee Related CN100416503C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101155602A CN100416503C (zh) 2005-11-04 2005-11-04 一种软件版本更新的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101155602A CN100416503C (zh) 2005-11-04 2005-11-04 一种软件版本更新的方法

Publications (2)

Publication Number Publication Date
CN1959635A true CN1959635A (zh) 2007-05-09
CN100416503C CN100416503C (zh) 2008-09-03

Family

ID=38071344

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101155602A Expired - Fee Related CN100416503C (zh) 2005-11-04 2005-11-04 一种软件版本更新的方法

Country Status (1)

Country Link
CN (1) CN100416503C (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100533380C (zh) * 2007-11-30 2009-08-26 上海广电(集团)有限公司中央研究院 基于dsp的升级系统以及升级方法
CN102081537A (zh) * 2010-12-31 2011-06-01 青岛海信宽带多媒体技术有限公司 一种软件升级方法
CN101414264B (zh) * 2008-11-24 2012-05-30 杭州师范大学 一种软件版本的更新方法
CN101546267B (zh) * 2008-03-24 2012-08-22 大唐移动通信设备有限公司 向数字信号处理器的外存加载程序的方法、系统及装置
CN102654839A (zh) * 2012-04-18 2012-09-05 华为技术有限公司 一种实现现场可编程门阵列可靠升级的方法及装置
CN103345456A (zh) * 2013-06-21 2013-10-09 烽火通信科技股份有限公司 调节BootLoader启动地址的电路及方法
CN104281463A (zh) * 2013-07-12 2015-01-14 中国航天科工集团第三研究院第八三五八研究所 一种可选择版本的dsp处理器程序加载方法
CN106569817A (zh) * 2016-11-03 2017-04-19 威海优微科技有限公司 一种isp在线式系统软件升级方法
CN110750405A (zh) * 2019-10-28 2020-02-04 天津津航计算技术研究所 一种基于硬件板卡识别的软件兼容性方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19810784B4 (de) * 1998-03-12 2006-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem
US6760908B2 (en) * 2001-07-16 2004-07-06 Namodigit Corporation Embedded software update system
CA2357382A1 (en) * 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
JP2003271409A (ja) * 2002-03-14 2003-09-26 Toshiba Corp 無線通信端末およびサーバ
WO2005048075A2 (en) * 2003-11-12 2005-05-26 Yuqing Ren Embedded software update methods and systems for digital devices

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100533380C (zh) * 2007-11-30 2009-08-26 上海广电(集团)有限公司中央研究院 基于dsp的升级系统以及升级方法
CN101546267B (zh) * 2008-03-24 2012-08-22 大唐移动通信设备有限公司 向数字信号处理器的外存加载程序的方法、系统及装置
CN101414264B (zh) * 2008-11-24 2012-05-30 杭州师范大学 一种软件版本的更新方法
CN102081537A (zh) * 2010-12-31 2011-06-01 青岛海信宽带多媒体技术有限公司 一种软件升级方法
CN102081537B (zh) * 2010-12-31 2014-12-17 青岛海信宽带多媒体技术有限公司 一种软件升级方法
CN102654839A (zh) * 2012-04-18 2012-09-05 华为技术有限公司 一种实现现场可编程门阵列可靠升级的方法及装置
CN103345456A (zh) * 2013-06-21 2013-10-09 烽火通信科技股份有限公司 调节BootLoader启动地址的电路及方法
CN103345456B (zh) * 2013-06-21 2015-12-02 烽火通信科技股份有限公司 调节BootLoader启动地址的电路及方法
CN104281463A (zh) * 2013-07-12 2015-01-14 中国航天科工集团第三研究院第八三五八研究所 一种可选择版本的dsp处理器程序加载方法
CN106569817A (zh) * 2016-11-03 2017-04-19 威海优微科技有限公司 一种isp在线式系统软件升级方法
CN110750405A (zh) * 2019-10-28 2020-02-04 天津津航计算技术研究所 一种基于硬件板卡识别的软件兼容性方法

Also Published As

Publication number Publication date
CN100416503C (zh) 2008-09-03

Similar Documents

Publication Publication Date Title
CN1959635A (zh) 一种软件版本更新的方法
CN101324850B (zh) Linux内核动态加载方法
CN102214113B (zh) 一种操作系统升级方法、装置及终端
US9195452B2 (en) Upgrade of software images based on streaming technique
CN104360877A (zh) 基于Bootloader自更新的ECU固件更新方法
CN102207879B (zh) Lua脚本热更新方法及系统
CN109478135A (zh) 优化的uefi重新引导过程
CN100511166C (zh) 一种快速存储装置及快速更新数据的方法
CN1398371A (zh) 在操作系统装载之前更改操作系统启动顺序的系统和方法
CN102165418A (zh) 涡轮引导系统和方法
CN100504782C (zh) 避免基本输出入系统程序更新失败的计算机系统
TW201502764A (zh) 用以從睡眠狀態加速回復之專用啟動路徑
CN112035294B (zh) 安全日志文件系统及其实现方法和介质
US20110161298A1 (en) System and method for opportunistic re-imaging using cannibalistic storage techniques on sparse storage devices
CN100426220C (zh) 在通信系统中利用单片机实现软件下载的装置及其方法
WO2006063270A1 (en) Utilizing paging to support dynamic code updates
US20020095619A1 (en) Fault tolerant/redundant boot ROM reprogramming
US7546596B2 (en) Non-disruptive method, system and program product for overlaying a first software module with a second software module
CN109358865A (zh) 一种具有远程升级功能的工业车辆车联网仪表及升级方法
CN111562932B (zh) 一种高可靠嵌入式软件升级方法及系统
CN101140537A (zh) 嵌入式操作系统的备份与恢复操作方法
US20080109612A1 (en) Dynamic Code Relocation for Low Endurance Memories
JP5166211B2 (ja) 不揮発性メモリを主記憶に用いた装置
CN100351797C (zh) 一种单片机在线升级方法和装置
CN105335166A (zh) 嵌入式设备的系统及嵌入式设备远程升级的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080903

Termination date: 20151104

EXPY Termination of patent right or utility model