CN100492292C - 固件升级中的自动备份存储 - Google Patents
固件升级中的自动备份存储 Download PDFInfo
- Publication number
- CN100492292C CN100492292C CNB2005800078823A CN200580007882A CN100492292C CN 100492292 C CN100492292 C CN 100492292C CN B2005800078823 A CNB2005800078823 A CN B2005800078823A CN 200580007882 A CN200580007882 A CN 200580007882A CN 100492292 C CN100492292 C CN 100492292C
- Authority
- CN
- China
- Prior art keywords
- storage
- piece
- delta file
- address space
- software
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
更新在设备(40)中当前是第一版本(V1)的软件的方法,是通过接收并执行delta文件(D12)以升级该第一版本到第二版本(V2),软件被分割,并存储于多个定义于设备上物理存储器(48)的地址空间(211)上的存储块(201-204),包括步骤:定义与多个存储块相关联的额外存储块(212);擦除该额外存储块以定义额外存储块空间;将按delta文件确定的、用于所述多个存储块的第一存储块的被更新数据写入该额外存储块;擦除第一存储块,因此将该额外存储块空间移动一个块;并且将按delta文件确定的、用于所述多个存储块的第二存储块的被更新数据写入该第一存储块。
Description
技术领域
本发明涉及用于计算机以及微处理器系统中升级软件的方法,是通过接收并执行用于目标升级的delta(变化微量)文件而进行。特别地,本发明涉及用于应对目标升级时可能的电力丢失的改良的解决方案。
背景技术
有多种技术是通过仅发送当前软件版本与更新的软件版本之间的差别来允许升级软件二进制码。软件特定片断的新版本上的差别典型地是源二进制码的大约1-10%左右。使用通常表示为delta文件的差别文件的过程,在当更新通过类似GPRS(通用分组无线业务)这样的低带宽载体发送时尤其有利。这种技术称为空中(Over the Air)固件升级,目前在OMA中已被标准化。以下略述一个这种类型升级如何工作的实例:
一个移动电话,它是待升级的由微处理器控制的设备,当前拥有软件V1。目标是将软件更新到最新发布版本V2。实施以下过程以更新移动电话上的软件:
1.编译并链接目标软件,V2;
2.计算V1到V2的二进制码差别D12。D12包含从V1创建V2所需的所有信息;
3.传输D12至目标,例如,通过GPRS;
4.通过在目标上使用当前二进制码V1以及D12创建V2而使得目标设备重新闪入(re-flash),即,升级。
现在仅仅通过发送小的更新包D12到目标设备,目标设备就已更新到V2。
上述更新过程中关键的一步是目标升级。由于目标软件,例如,RTOS(实时操作系统)以及应用正在被重新闪入的事实,电力丢失对设备将是致命的。更新过程必须具有100%故障恢复安全性,这意味着更新过程必须在未预期的电力失败之后能够继续进行下去。现有技术中用于实施失效保险能力的方法被称为2阶段担保(commit),其早已在诸如数据库之类的多种应用之中被使用。该思路是在更新过程中保留一个旧信息的拷贝。直到更新完成旧信息才被移除。这种方式下,如果更新过程中更新失败,总是可能回到最近的状态。
对于使用NOR闪存的设备,存储器被分为相同大小的块,通常是64kB大小。写NOR设备时有一些特别的限制。一次只能擦除整个块,其中块中所有的位均被置为1。写可以在字节级进行,但仅可能将位状态从1变为0。NOR设备上的升级是一个块一个块进行的。为保证失败恢复,在更新块写入原始块之前每个块首先被拷贝到特定备份块。现在参考图1描述这个现有技术的过程。
特定的设备软件由存储在4个存储块101-104中的4个软件块1-4组成。存储块101-104是定义在设备的物理存储器上的存储空间111中。存储块101-104被纵向描述,呈现在更新过程中的特定状态106-110中。每一列代表更新过程中一个新的状态,如图中箭头所示从左至右进行。这一过程也和delta包、状态信息以及更新应用关联,但同样为了阐明整体过程,这些就不在此阐述了。更新过程中两个软件块1和2早已被更新,这是列106所述的状态。块3将被下一个更新。为了能从潜在的电力丢失中恢复,信息需要被持久地存储。状态信息用于跟踪哪个块正在被处理,以及你当前处于哪个更新状态。另外,在新块被生成前旧块必须被保留。更新块3的过程是首先在至状态107的步骤中擦除也是定义在存储空间111上的备份块105来实现的。然后块3的数据在至状态108的步骤中从块103拷贝到备份块105。接下来块103在至状态109的步骤中被擦除,留下空的块103。最后,写过程在至状态110的步骤中在块103上进行,升级上面的数据到新块3。可替换地,新块3在备份块105上创建,而不是拷贝旧块3到备份块105。
备份块105不被使用的话,块擦除之后以及新块被完全写入之前的电力丢失将是不可恢复的,原因是源块和目的块都将是不可用的。使用以上流程,通过重写上一块而总是可能从退出的地方开始着手更新并继续该更新。
现有技术流程的问题是由于每一块必须被写两次以便每一块支持电力丢失的恢复,因而闪存更新中写的时间加倍了。对于NOR闪存,典型的写速度大约是200kB/s。那么写16MB图像更新上的块的时间大约是16MB*2/0.2=160秒,如果所有块都需要被更新的话。更新期间设备完全不可用,因此确保这个时间尽可能地小是非常重要的。根据更新的大小以及代码变化在新二进制图像中分布的情况,需要更新的块的数量可以不同。经验显示多数更新需要更新所有可用块中的绝大多数。有些方法可通过以将更新集中到图像中较小部分这样的方式来组织二进制图像,去减少需要更新的块的数量。但是,这些技术都非常复杂。
发明内容
本发明的一般目的在于提供改良的解决方案来保证软件更新过程在中断(例如由于电力丢失导致)之后是可恢复的。特别地,有一个目的在于提供一种通过使用delta文件升级软件二进制码的解决方案,它最小化了目标升级时间。
依照本发明的第一方面,这一目的通过更新设备中当前在第一版本的软件的方法来实现,该方法接收并执行用于升级该第一版本到第二版本的delta文件,该软件被分割并存储于多个在该设备的物理存储器上的地址空间中定义的存储块,包括步骤有:
-定义与多个存储块相关联的额外存储块;
-擦除该额外存储块以定义额外存储块空间;
-将按delta文件确定的、用于所述多个存储块的第一存储块的被更新数据写入该额外存储块;
-擦除第一存储块,因此将该额外存储块空间移动一个块;并且
-将按delta文件确定的,用于所述多个存储块的第二存储块的被更新数据写入该第一存储块。
在一个优选实施方案中,该额外存储块定义为在地址空间上与第一存储块相邻放置的存储块。
有利地是,该方法包括自额外存储块起一个接一个处理该多个存储块的全部的步骤,这是通过在按delta文件确定的升级过程中,在地址空间中从下一存储块起写入数据到该多个存储块其中之一,直到该多个存储块全部都在地址空间上被移转一步而进行的。
在一个实施方案中,该方法包括反转在地址空间上写入存储块的顺序的步骤,从所述自第一版本至第二版本的升级,到自所述第二版本至第三版本的第二升级。
优选地,该方法包括步骤有:
·所述设备在接收并执行delta文件之前与一服务器相连接,并传达与当前地址空间状态有关的信息,取决于所述地址空间中该额外块的当前位置,该地址空间状态确定何种delta文件适用于升级所述软件,其中第一delta文件类型适合在地址空间中以一种顺序升级所述存储块上当前的软件,且第二delta文件适合在地址空间中以反转顺序升级所述存储块上当前的软件;
·从所述服务器上下载适用的delta文件类型的delta文件至所述设备;并且
·使用该适用的delta文件升级所述软件。
在一个实施方案中,该方法包括根据在按delta文件确定的写入过程中数据在存储块间的移动,在用于所述软件的引导代码(boot code)中修改该地址空间中的开始地址的步骤。
依照本发明的第二方面,所述目的由一个计算机程序产品解决,其用于在计算机控制的电子设备中更新设备上当前是第一版本的软件,该设备包括接收并执行用于升级第一版本到第二版本的delta文件的装置,该软件被分割并存储于定义在设备的物理存储器上的地址空间中的多个存储块,该计算机程序产品包括被设计用于使设备执行以下步骤的可执行计算机程序代码:
-对所述多个存储块定义一个额外存储块;
-擦除该额外存储块以定义额外存储块空间;
-将按delta文件确定的、用于所述多个存储块的第一存储块的被更新数据写入该额外存储块;
-擦除第一存储块,因此将该额外存储块空间移动一个块;并且
-将按delta文件确定的、用于所述多个存储块的第二存储块的被更新数据写入该第一存储块。
在一个实施方案中,计算机程序产品包括被设计用来使设备执行以上任何方法步骤中的步骤的可执行计算机程序代码。
依照本发明的第三方面,所述目的由无线电通信终端解决,该无线电通信终端包括一个带有用于更新该终端上当前是第一版本的软件的关联计算机代码的计算机系统,以及接收并执行用于升级第一版本至第二版本的delta文件的装置,该软件被分割并存储于定义在该终端的物理存储器上的地址空间中的多个存储块,其中与该多个存储块关联的额外存储块定义于该地址空间中,该终端还包括用于擦除额外存储块以定义额外存储块空间的装置;用于将按delta文件确定的、用于所述多个存储块的第一存储块的被更新数据写入该额外存储块的数据写入装置;用于擦除第一存储块以将该额外存储块空间移动一个块的数据擦除装置;其中数据写入装置被设计用来将按delta文件确定的、用于所述多个存储块的第二存储块的被更新数据写入该第一存储块。
在一个实施方案中,该额外存储块在地址空间上与第一存储块相邻放置。
优选地,该数据写入装置被设计用来自额外存储块起一个接一个处理该多个存储块的全部,这是通过在按delta文件确定的升级过程中,在地址空间中从下一存储块起写入数据到该多个存储块其中之一,直到该多个存储块全部都在地址空间上被移转一步而进行的。
有利地,无线电通信终端包括用于反转在地址空间上写存储块的顺序的装置,从所述自第一版本至第二版本的升级,到自所述第二版本至第三版本的第二升级。
在一个优选实施方案中,该设备被用来在接收并执行delta文件之前与服务器相连接,用于传达与当前地址空间状态有关的信息,取决于地址空间中该额外块的当前位置,该地址空间状态确定何种delta文件适用于升级所述软件,其中第一delta文件类型适合在地址空间中以一种顺序升级存储块上当前的软件,第二delta文件适合在地址空间中以反转顺序升级存储块上当前的软件,该终端包括从所述服务器上下载适用的delta文件类型的delta文件至所述设备的装置,以及使用该适用的delta文件升级所述软件的装置。
优选地,无线电通信终端包括根据按delta文件确定的写入过程中数据在存储块间的移动,修改地址空间中用于所述软件的引导代码中开始地址的装置。
本发明提供了以下的技术方案:
(一).用于更新在设备中以第一版本存在的软件的方法,通过接收并执行用于升级所述第一版本到第二版本的增量文件,所述软件被分割并存储于多个存储块中,所述多个存储块在所述设备中的物理存储器的地址空间中定义,所述方法包括步骤:
-定义与所述多个存储块相关联的额外存储块,最初是被放置于位于所述存储空间一端的第一存储块之前;
-擦除所述额外存储块;
-将用于第一存储块的被更新的数据写在所述额外存储块上;
-将所述额外存储块向前移动一个块;以及
-通过以下步骤一个接一个地处理所述多个存储块的全部,
擦除所述额外存储块,
将用于与所述额外存储块相邻并在其之后的存储块的被更新的数据写在所述额外存储块上,
一次将所述额外存储块向前移动一个块,
直到所述多个存储块的全部都已在所述地址空间中被移动了一步,
其特征在于,所述方法还包括反转从自第一版本至第二版本的所述升级到自所述第二版本至第三版本的第二升级在地址空间中写入存储块的次序的步骤,并且其中所述方法还包括步骤:
-所述设备在接收并执行增量文件之前与服务器相连接,并传送与当前地址空间状态有关的信息,所述地址空间状态根据所述地址空间中所述额外块的当前位置确定哪种类型的增量文件适用于升级所述软件,其中第一增量文件类型适于在地址空间中以一种次序升级所述存储块中存在的软件,并且第二增量文件适于在所述地址空间中以反转的次序升级所述存储块中存在的软件;
-从所述服务器下载适用的增量文件类型的增量文件至所述设备;并且
-使用所述适用的增量文件升级所述软件,并且还包括步骤:根据数据在所述存储块之间的移动,在用于所述软件的引导代码中修改所述地址空间中的开始地址。
(二).一种用于更新在其中以第一版本存在的软件的设备,所述设备包括用于接收并执行用于升级所述第一版本到第二版本的增量文件的装置,所述软件被分割并存储于多个存储块中,所述多个存储块在所述设备中的物理存储器的地址空间中定义,所述设备包括:
-用于定义与所述多个存储块相关联的额外存储块的装置,所述额外存储块最初被放置于位于所述存储空间一端的第一存储块之前;
-用于擦除所述额外存储块的装置;
-用于将用于所述第一存储块的被更新的数据写在所述额外存储块上的装置;
-用于将所述额外存储块向前移动一个块的装置;以及
-用于通过以下一个接一个地处理所述多个存储块的全部的装置,
擦除所述额外存储块,
将用于与所述额外存储块相邻并在其之后的存储块的被更新的数据写在所述额外存储块上,
一次将所述额外存储块向前移动一个块,
直到所述多个存储块的全部都已在所述地址空间中被移动了一步,
其特征在于所述设备包括用于反转从自第一版本至第二版本的所述升级到自所述第二版本至第三版本的第二升级在地址空间中写入存储块的次序的装置,并且
-用于接收并执行增量文件,与服务器相连接,并传送与当前地址空间状态有关的信息的装置,所述地址空间状态根据所述地址空间中所述额外块的当前位置确定哪种类型增量文件适用于升级所述软件,其中第一增量文件类型适于在地址空间中以一种次序升级所述存储块中存在的软件,并且第二增量文件适于在所述地址空间中以反转的次序升级所述存储块中存在的软件;
-用于从所述服务器下载适用的增量文件类型的增量文件至所述设备的装置;并且
-用于使用所述适用的增量文件升级所述软件的装置,并且
-用于根据数据在所述存储块之间的移动在用于所述软件的引导代码中修改所述地址空间中的开始地址的装置。
(三).无线电通信终端,所述终端包括计算机系统,所述计算机系统具有用于更新所述终端中以第一版本存在的软件的关联计算机代码,以及用于接收并执行用于将所述第一版本升级至第二版本的增量文件的装置,所述软件被分割并存储于多个存储块中,所述多个存储块在所述终端的物理存储器的地址空间中定义,其特征在于,与所述多个存储块相关联的额外存储块在所述地址空间中定义,最初是被放置于位于存储空间一端的第一存储块之前,所述终端还包括用于擦除所述额外存储块的装置;用于将用于第一存储块的被更新的数据写在所述额外存储块上的数据写入装置;用于将所述额外存储块向前移动一个块的装置;以及用于通过以下一个接一个地处理所述多个存储块的全部的装置,
擦除所述额外存储块,
将用于与所述额外存储块相邻并在其之后的存储块的被更新的数据写在所述额外存储块上,
一次将所述额外存储块向前移动一个块,
直到所述多个存储块的全部都已在所述地址空间中被移动了一步;其特征在于
它还包括用于反转从自第一版本至第二版本的所述升级到自所述第二版本至第三版本的第二升级在所述地址空间中写入存储块的次序的装置,并且其中所述设备被安排来在接收并执行增量文件之前与服务器相连接,用来传送与当前地址空间状态有关的信息,所述地址空间状态根据所述地址空间中所述额外块的当前位置确定哪种类型增量文件适用于升级所述软件,其中第一增量文件类型适于在所述地址空间中以一种次序升级所述存储块中存在的软件,并且第二增量文件适于在所述地址空间中以反转的次序升级在所述存储块中存在的软件,所述终端包括用于从所述服务器下载适用的增量文件类型的增量文件至所述设备的装置,以及使用所述适用的增量文件来升级所述软件的装置,并且还包括根据在由所述增量文件确定的写入过程中数据在所述存储块间的移动,在用于所述软件的引导代码中修改所述地址空间中的开始地址的装置。
附图说明
由以下参考附图的、优选实施方案的描述,本发明的特征以及优点会更加明显,其中
图1示意性地阐述了通过目标升级来更新软件的现有技术过程;
图2示意性地阐述了依照本发明的实施方案,来通过目标升级更新软件的过程。
图3示意性地阐述了图2中整体过程的两个不同版本;
图4示意性地阐述了一个示范性的无线电通信终端,其实施计算机程序产品来执行本发明的处理过程;并且
图5示意性地阐述了图4中的带有内置计算机系统的终端,是处在与基站通信以接收用于该终端上的目标升级的更新delta文件的过程中。
优选实施方案详述
本描述涉及使用delta文件以及目标升级的、用在软件的固件升级中的装置以及方法。本发明对用在有相对较低的传输带宽的系统中是特别有利的,但并不局限于这样的领域。以下描述的优选实施方案涉及移动电话领域,特别是在无线电通信终端上的实施。术语无线电通信终端包括所有的被设计用来与无线电站进行无线电通信的移动通信设备,该无线电站也可以是移动终端,或者例如是固定的基站。因此,术语无线电终端包括移动电话、通信器、电子组织器、智能电话、PDA(个人数字助手)、车载无线电通信设备,或者相类似的,以及被设计用来在诸如WLAN(无线局域网)上进行无线通信的便携式膝上型计算机。此外,必须强调地是,用在此说明书以及附加权利要求中以指示包括的特征、要素或步骤的术语‘包括’,决不应被解释为是排斥了那些未在此明确陈述的其他特征、要素或步骤的存在。
接下来的描述涉及本发明的优选实施方案,其中一个地址空间包括4个存储块。但必须指出,本发明适用于包括任意数目存储块的地址空间。
图2阐述了用于固件升级中自动备份存储的本发明方法的策略的优选实施方案。通过采用这个更新策略可去除在更新每一块之前对其备份的需要。在图2的示范性实施方案中,一个设备包括一个存储器,其定义了包括4个存储块201-204的存储或地址空间211,每个存储块分别拥有1个软件块1-4。正如在列206中阐述的状态,尚未有块被更新,并且该软件当前是第一版本。对于前面叙述的现有技术方法,存储空间211包括多于该4个块201-204的至少一个块。但是,不是使用一个特定的备份块,而是使用一个在由块201-204表示的二进制图像之前的一个额外块来将该软件的整个图像在地址空间211中向前或向后移动一个块。在可替换的实施方案中,多于一个,例如,2个额外块可被使用。
当软件将被更新时,拥有一个涉及地址空间211的物理存储器的设备接收delta或者差别文件,该文件包括将软件从第一版本更新至第二版本所需的所有信息。在从状态206到207的步骤,额外块212被擦除。软件块1然后依照与当前软件关联的delta文件被更新。通过采用此策略就没有必要备份每一块,因为被更新块总是恰恰写于该旧块之前。在被更新块的写入完成前旧块不会被盖写。代替两次擦除/写操作,仅需要1次擦除/写操作。
推荐的解决方案有明显的优点,但也引发需要克服的问题。当已有一个更新时,在图像的开始就不再有一个额外块存在,因为整个图像已经在地址空间中移转了。然而,本发明的一个优选实施方案提供了对这一问题的解决方案。在第一次更新操作之后,在图像的尾部会改而有一个额外块,而不是图2的实施方案中的块204。但是通过反转更新过程,即通过以反向顺序写该块,可在下一次更新时采用同样的算法。另一个问题是实际的二进制代码是对于特定的基地址而链接的。如果基地址被移动,代码就不能运行了,因为二进制图像中位置的绝对地址将指向错误地址。无论如何,用在图像中的绝对地址必须在更新后移动一个块。依照一个实施方案,这个问题通过如在图3中所示意性地阐述的,通过针对每一更新生成两个delta文件而解决。
图3中,D12(向上)代表用以自如列306所阐述的软件版本V1类型A转换至如列307所阐述的V2类型B的第一delta文件。因此类型A图像是有位于块1-4之后的额外块的所定义的地址空间,而类型B图像是有位于块1-4之前的额外块的所定义的地址空间。D12(向下)代表用以自如列308所阐述的软件版本V1类型B转换至如列309所阐述的V2类型A的第二delta文件。优选地,这两个delta文件通过在生成实际delta文件之前修改链接过程以产生类型A和B图像而生成。最终,位于引导代码中的开始地址需要被修改以指向正确的开始地址,这样软件的执行将按预定地进行。它可以作为更新程序的最后一步完成。
采用本发明提供的新的备份策略,该更新时间在最好的情况下被减半。这是在所有块都被更新的情况下。采用推荐的解决方案,所有的块均需被重新写一次。采用当前的解决方案,只有变化的块需要被更新,但它们需要被写两次。对于有超过半数的块发生改变的更新,新的解决方案更快。一般地,在更新过程中很多块需要被改变。
在一个优选实施方案中,本发明被用于空中的固件升级,并且特别适用于将无线电通信终端作为目标设备的移动无线电通信领域。作为可能采用本发明的设备的实例,图4以蜂窝移动电话40的实施例阐述了一个无线电通信终端。终端40包括机框或机壳45,携带麦克风41形式的用户音频输入以及扬声器42或通向耳机(未显示)的连接器形式的用户音频输出。依照已确立的技术,一组键、按钮或类似物组成一个可用于例如拨号的数据输入接口43。还包括一个包含显示器44的数据输出接口,其被设计用来以一种为本领域技术人员所熟知的方式显示通信信息、地址列表等。该无线电通信终端40包括无线电传输以及接收电子设备(未显示),并被设计为带有在机壳45中的内置天线46,该天线在图中被以虚线指示为实际上平坦的物体。图5以简化的形式阐述了图4中的终端40。终端40以一种已知方式、通过其天线46与包含在一个无线电通信网络中的基站50是通信上可连接的。终端40还包括一个计算机系统,该系统包括一个带有关联的物理存储器48的微处理器控制器47。通过与基站50的通信,依照本发明,终端40能够接收用于升级当前在存储器48中的软件,特别是软件二进制码的delta文件。而且,包括处理器47的计算机系统被设计用来使用定义于图2和图3中的地址空间,存储并访问存储在存储器48中的软件,并且执行与以上图2和图3关联地定义的处理步骤。特别地,由处理器47控制的计算机系统包括按delta文件的内容所确定的去擦除以及写存储块的装置,以便更新所述软件,继而在地址空间上无论更新与否,都移转存储块内容一个块步幅。
前述已经叙述了本发明的原则、优选实施方案以及操作模式。但是应该理解的是:本领域的技术人员可在不脱离由附加权利要求定义的本发明的范围的情况下,对那些实施方案做出各种变化。
Claims (3)
1.用于更新在设备(40)中以第一版本(V1)存在的软件的方法,通过接收并执行用于升级所述第一版本到第二版本(V2)的增量文件(D12),所述软件被分割并存储于多个存储块(201-204)中,所述多个存储块在所述设备中的物理存储器(48)的地址空间(211)中定义,所述方法包括步骤:
-定义与所述多个存储块相关联的额外存储块(212),最初是被放置于位于所述存储空间一端的第一存储块之前;
-擦除所述额外存储块;
-将用于第一存储块的被更新的数据写在所述额外存储块上;
-将所述额外存储块向前移动一个块;以及
-通过以下步骤一个接一个地处理所述多个存储块的全部,
擦除所述额外存储块,
将用于与所述额外存储块相邻并在其之后的存储块的被更新的数据写在所述额外存储块上,
一次将所述额外存储块向前移动一个块,
直到所述多个存储块的全部都已在所述地址空间中被移动了一步,
其特征在于,所述方法还包括反转从自第一版本至第二版本的所述升级到自所述第二版本至第三版本的第二升级在地址空间中写入存储块的次序的步骤,并且其中所述方法还包括步骤:
-所述设备在接收并执行增量文件之前与服务器相连接,并传送与当前地址空间状态有关的信息,所述地址空间状态根据所述地址空间中所述额外块的当前位置确定哪种类型的增量文件适用于升级所述软件,其中第一增量文件类型适于在地址空间中以一种次序升级所述存储块中存在的软件,并且第二增量文件适于在所述地址空间中以反转的次序升级所述存储块中存在的软件;
-从所述服务器下载适用的增量文件类型的增量文件至所述设备;并且
-使用所述适用的增量文件升级所述软件,并且还包括步骤:根据数据在所述存储块之间的移动,在用于所述软件的引导代码中修改所述地址空间中的开始地址。
2.一种用于更新在其中以第一版本(V1)存在的软件的设备,所述设备包括用于接收并执行用于升级所述第一版本到第二版本(V2)的增量文件(D12)的装置,所述软件被分割并存储于多个存储块(201-204)中,所述多个存储块在所述设备中的物理存储器(48)的地址空间(211)中定义,所述设备包括:
-用于定义与所述多个存储块相关联的额外存储块(212)的装置,所述额外存储块最初被放置于位于所述存储空间一端的第一存储块之前;
-用于擦除所述额外存储块的装置;
-用于将用于所述第一存储块的被更新的数据写在所述额外存储块上的装置;
-用于将所述额外存储块向前移动一个块的装置;以及
-用于通过以下一个接一个地处理所述多个存储块的全部的装置,
擦除所述额外存储块,
将用于与所述额外存储块相邻并在其之后的存储块的被更新的数据写在所述额外存储块上,
一次将所述额外存储块向前移动一个块,
直到所述多个存储块的全部都已在所述地址空间中被移动了一步,
其特征在于所述设备包括用于反转从自第一版本至第二版本的所述升级到自所述第二版本至第三版本的第二升级在地址空间中写入存储块的次序的装置,并且
-用于接收并执行增量文件,与服务器相连接,并传送与当前地址空间状态有关的信息的装置,所述地址空间状态根据所述地址空间中所述额外块的当前位置确定哪种类型增量文件适用于升级所述软件,其中第一增量文件类型适于在地址空间中以一种次序升级所述存储块中存在的软件,并且第二增量文件适于在所述地址空间中以反转的次序升级所述存储块中存在的软件;
-用于从所述服务器下载适用的增量文件类型的增量文件至所述设备的装置;并且
-用于使用所述适用的增量文件升级所述软件的装置,并且
-用于根据数据在所述存储块之间的移动在用于所述软件的引导代码中修改所述地址空间中的开始地址的装置。
3.无线电通信终端(40),所述终端包括计算机系统(47),所述计算机系统具有用于更新所述终端中以第一版本(V1)存在的软件的关联计算机代码,以及用于接收并执行用于将所述第一版本升级至第二版本
(V2)的增量文件(D12)的装置(46),所述软件被分割并存储于多个存储块(201-204)中,所述多个存储块在所述终端的物理存储器(48)的地址空间(211)中定义,其特征在于,与所述多个存储块相关联的额外存储块(212)在所述地址空间中定义,最初是被放置于位于存储空间一端的第一存储块之前,所述终端还包括用于擦除所述额外存储块的装置;用于将用于第一存储块的被更新的数据写在所述额外存储块上的数据写入装置;用于将所述额外存储块向前移动一个块的装置;以及用于通过以下一个接一个地处理所述多个存储块的全部的装置,
擦除所述额外存储块,
将用于与所述额外存储块相邻并在其之后的存储块的被更新的数据写在所述额外存储块上,
一次将所述额外存储块向前移动一个块,
直到所述多个存储块的全部都已在所述地址空间中被移动了一步;其特征在于
它还包括用于反转从自第一版本至第二版本的所述升级到自所述第二版本至第三版本的第二升级在所述地址空间中写入存储块的次序的装置,并且其中所述设备被安排来在接收并执行增量文件之前与服务器相连接,用来传送与当前地址空间状态有关的信息,所述地址空间状态根据所述地址空间中所述额外块的当前位置确定哪种类型增量文件适用于升级所述软件,其中第一增量文件类型适于在所述地址空间中以一种次序升级所述存储块中存在的软件,并且第二增量文件适于在所述地址空间中以反转的次序升级在所述存储块中存在的软件,所述终端包括用于从所述服务器下载适用的增量文件类型的增量文件至所述设备的装置,以及使用所述适用的增量文件来升级所述软件的装置,并且还包括根据在由所述增量文件确定的写入过程中数据在所述存储块间的移动,在用于所述软件的引导代码中修改所述地址空间中的开始地址的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04005700A EP1574952B1 (en) | 2004-03-10 | 2004-03-10 | Automatic backup store in firmware upgrades |
EP04005700.2 | 2004-03-10 | ||
US60/553,687 | 2004-03-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1930551A CN1930551A (zh) | 2007-03-14 |
CN100492292C true CN100492292C (zh) | 2009-05-27 |
Family
ID=34814286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800078823A Expired - Fee Related CN100492292C (zh) | 2004-03-10 | 2005-02-17 | 固件升级中的自动备份存储 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7502813B2 (zh) |
EP (1) | EP1574952B1 (zh) |
JP (1) | JP4801041B2 (zh) |
CN (1) | CN100492292C (zh) |
AT (1) | ATE392661T1 (zh) |
DE (1) | DE602004013120T2 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4417123B2 (ja) * | 2003-02-19 | 2010-02-17 | パナソニック株式会社 | ソフトウェア更新方法及び無線通信装置 |
DE102006057977A1 (de) * | 2006-12-08 | 2008-06-12 | Siemens Ag | Verfahren und Vorrichtung zum Aktualisieren einer Datenbank und Computerprogrammprodukt |
CN101159610B (zh) * | 2007-11-09 | 2010-06-09 | 中兴通讯股份有限公司 | 一种远程擦除传输设备单板软件的方法及其装置 |
US8327101B2 (en) | 2008-02-01 | 2012-12-04 | International Business Machines Corporation | Cache management during asynchronous memory move operations |
US8356151B2 (en) | 2008-02-01 | 2013-01-15 | International Business Machines Corporation | Reporting of partially performed memory move |
US8136108B2 (en) * | 2008-09-03 | 2012-03-13 | Computime, Ltd | Updating firmware with multiple processors |
US8386757B1 (en) * | 2009-02-13 | 2013-02-26 | Unidesk Corporation | Managed desktop system |
CN101610499A (zh) * | 2009-07-13 | 2009-12-23 | 中兴通讯股份有限公司 | 无线数据卡的升级方法和系统 |
JP5346253B2 (ja) | 2009-08-24 | 2013-11-20 | 株式会社日立ソリューションズ | ファームウェア更新システム、及び情報機器、並びにプログラム |
US20120047223A1 (en) * | 2010-08-20 | 2012-02-23 | Nokia Corporation | Method and apparatus for distributed storage |
US9552201B2 (en) * | 2011-08-31 | 2017-01-24 | Avaya Inc. | System and method for incremental software installation |
CN102508713B (zh) | 2011-10-12 | 2015-01-28 | 杭州华三通信技术有限公司 | 进程启动方法及装置 |
WO2014018256A1 (en) | 2012-07-26 | 2014-01-30 | Utc Fire And Security Americas Corporation, Inc. | Wireless firmware upgrades to an alarm security panel |
CN102945179B (zh) * | 2012-11-28 | 2016-06-29 | 青岛海信宽带多媒体技术有限公司 | 基于mtd分区的软件升级方法和装置 |
CN103605552B (zh) * | 2013-11-29 | 2017-12-29 | Tcl通力电子(惠州)有限公司 | Mcu的升级方法和装置 |
CN105718246A (zh) * | 2014-07-31 | 2016-06-29 | 格马尔托股份有限公司 | 在电子设备中管理应用程序包的方法 |
US10430176B2 (en) | 2014-11-17 | 2019-10-01 | Hitachi Automotive Systems, Ltd. | In-vehicle control device, program update system, and program update software |
JP6434994B2 (ja) * | 2015-01-26 | 2018-12-05 | 日立オートモティブシステムズ株式会社 | 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム |
CN104810055B (zh) * | 2015-05-08 | 2018-09-07 | 京东方科技集团股份有限公司 | Flash芯片读写控制电路和方法、AMOLED应用电路 |
DE102017205274A1 (de) * | 2017-03-29 | 2018-10-04 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Aktualisieren eines Programmes |
CN109284123A (zh) * | 2017-07-21 | 2019-01-29 | 深圳市中兴微电子技术有限公司 | 一种采用版本分割实现压缩版本升级的方法及系统 |
WO2019021064A1 (en) * | 2017-07-25 | 2019-01-31 | Aurora Labs Ltd | CONSTRUCTION OF SOFTWARE DELTA UPDATES FOR VEHICLE ECU SOFTWARE AND TOOL-BASED ANOMALY DETECTION |
CN111124475B (zh) * | 2018-10-31 | 2023-12-08 | 伊姆西Ip控股有限责任公司 | 存储管理的方法、电子设备和计算机可读存储介质 |
CN111240722B (zh) * | 2020-01-07 | 2021-05-04 | 翱捷科技股份有限公司 | 空中升级固件的方法及其所应用的终端、服务器及系统 |
CN113225729B (zh) * | 2020-01-21 | 2022-07-12 | 荣耀终端有限公司 | 空中下载技术ota升级的方法、设备及可读存储介质 |
CN113472884B (zh) * | 2021-06-30 | 2024-07-19 | 潍柴动力股份有限公司 | Ota升级方法和装置 |
CN113986312B (zh) * | 2021-12-09 | 2024-03-26 | 北京奕斯伟计算技术股份有限公司 | 软件升级方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2574051B1 (fr) * | 1984-12-03 | 1990-01-19 | Asahi Chemical Ind | Emballage hermetique en matiere plastique, procede de fabrication et outil correspondant |
EP0398545A1 (en) * | 1989-05-19 | 1990-11-22 | Delco Electronics Corporation | Method and apparatus for storing data in a non-volatile memory |
US5522076A (en) * | 1993-05-13 | 1996-05-28 | Kabushiki Kaisha Toshiba | Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function |
DE19520030C1 (de) * | 1995-05-31 | 1996-05-15 | Siemens Ag | Verfahren zur Aktualisierung der Programmstruktur einer modularen Kommunikationsanlage |
US5960445A (en) * | 1996-04-24 | 1999-09-28 | Sony Corporation | Information processor, method of updating a program and information processing system |
JP3497066B2 (ja) * | 1996-10-16 | 2004-02-16 | 富士通株式会社 | フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置 |
DE19652628A1 (de) * | 1996-12-18 | 1998-06-25 | Philips Patentverwaltung | Kommunikationssystem |
JPH113223A (ja) * | 1997-06-10 | 1999-01-06 | Canon Inc | 情報処理装置及び情報格納方法 |
JP2000293366A (ja) * | 1999-04-06 | 2000-10-20 | Mitsubishi Electric Corp | セットトップボックス用モジュールのアップデート方法 |
JP2001209543A (ja) * | 2000-01-28 | 2001-08-03 | Nec Ic Microcomput Syst Ltd | フラッシュ・マイコンにおけるプログラム書き換え方法 |
JP4772214B2 (ja) * | 2001-06-08 | 2011-09-14 | ルネサスエレクトロニクス株式会社 | 不揮発性記憶装置及びその書き換え制御方法 |
US7100011B2 (en) * | 2002-03-01 | 2006-08-29 | Arris International, Inc. | Method and system for reducing storage requirements for program code in a communication device |
JP3830867B2 (ja) * | 2002-07-10 | 2006-10-11 | Necエレクトロニクス株式会社 | シングルチップマイクロコンピュータおよびそのブート領域切り替え方法 |
US7340736B2 (en) * | 2002-08-22 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Electronic device with an update agent that employs preprocessing techniques for update |
US6938140B2 (en) * | 2002-08-29 | 2005-08-30 | Micron Technology, Inc. | System and method for linear object reallocation in place |
-
2004
- 2004-03-10 EP EP04005700A patent/EP1574952B1/en not_active Expired - Lifetime
- 2004-03-10 AT AT04005700T patent/ATE392661T1/de not_active IP Right Cessation
- 2004-03-10 DE DE602004013120T patent/DE602004013120T2/de not_active Expired - Lifetime
-
2005
- 2005-02-17 CN CNB2005800078823A patent/CN100492292C/zh not_active Expired - Fee Related
- 2005-02-17 US US10/598,683 patent/US7502813B2/en not_active Expired - Fee Related
- 2005-02-17 JP JP2007502324A patent/JP4801041B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ATE392661T1 (de) | 2008-05-15 |
CN1930551A (zh) | 2007-03-14 |
EP1574952A1 (en) | 2005-09-14 |
US20080126672A1 (en) | 2008-05-29 |
JP2007528071A (ja) | 2007-10-04 |
DE602004013120T2 (de) | 2009-05-14 |
DE602004013120D1 (de) | 2008-05-29 |
US7502813B2 (en) | 2009-03-10 |
EP1574952B1 (en) | 2008-04-16 |
JP4801041B2 (ja) | 2011-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100492292C (zh) | 固件升级中的自动备份存储 | |
EP2229625B1 (en) | Updating firmware of an electronic device | |
US7971199B1 (en) | Mobile device with a self-updating update agent in a wireless network | |
JP4865835B2 (ja) | アクションリストとバージョニングとを用いて、無線デバイス上でアクションを実行する方法、ソフトウェア、及び装置 | |
US20080059959A1 (en) | Firmware Update Network And Process Employing Preprocessing Techniques | |
KR20040093745A (ko) | 통신단말의 소프트웨어 갱신 방법, 통신단말 및소프트웨어 갱신 시스템 | |
KR20110082585A (ko) | 디바이스상의 컴포넌트들을 자동으로 처리하기 위한 시스템 | |
CN105930197A (zh) | 一种软件升级的方法及电子设备 | |
CN101904105A (zh) | 在更新期间使用高效的块备份和块恢复的移动手持送受话器 | |
CN101211265A (zh) | 一种终端嵌入式系统的软件更新方法和装置 | |
KR101130875B1 (ko) | 펌웨어 업그레이드 경우의 자동 백업 저장 | |
CN103164232A (zh) | 更新智能终端操作系统的方法、系统以及计算机 | |
CN104978204A (zh) | 基于移动终端的应用安装更新方法及装置 | |
JP2005215841A (ja) | ソフトウエア修正機能付き携帯電話端末装置 | |
JP2614361B2 (ja) | ファイル内容変更方法 | |
CN110221908B (zh) | 用于嵌入式装置的进程管理方法及嵌入式装置 | |
KR100622816B1 (ko) | 이동 단말장치의 시스템 소프트웨어 업데이트 방법 및시스템 | |
US20220413838A1 (en) | Vehicle data communication device, center device, data communication method, and computer-readable non-transitory tangible storage medium | |
KR101094622B1 (ko) | 단말기의 시스템 소프트웨어 업데이트 시스템 및 방법 | |
KR20100073236A (ko) | 복수 모델의 네비게이션 기기의 통합 업그레이드 방법 및 장치 그리고 이를 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체 | |
JP6641158B2 (ja) | ファイルサイズチェック | |
KR101175825B1 (ko) | 휴대용 운영체제를 설치하는 방법 및 그를 이용하는휴대용정보기기 | |
CN116243960A (zh) | 用于回滚的差分数据生成方法以及车辆控制器的回滚方法 | |
CN116048548A (zh) | 一种缩小安装包体积的方法、装置、介质和电子设备 | |
CN113419756A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090527 Termination date: 20170217 |