CN101002406A - 高效生成用于无线网络中的空中下载升级的增量文件的装置和方法 - Google Patents

高效生成用于无线网络中的空中下载升级的增量文件的装置和方法 Download PDF

Info

Publication number
CN101002406A
CN101002406A CN 200580027212 CN200580027212A CN101002406A CN 101002406 A CN101002406 A CN 101002406A CN 200580027212 CN200580027212 CN 200580027212 CN 200580027212 A CN200580027212 A CN 200580027212A CN 101002406 A CN101002406 A CN 101002406A
Authority
CN
China
Prior art keywords
file
delta
binary file
delta file
upgraded
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.)
Pending
Application number
CN 200580027212
Other languages
English (en)
Inventor
萨德欣德拉·P·赫勒
瓦尼·巴德哈蒂
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101002406A publication Critical patent/CN101002406A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于原始文件和升级的文件之间的差别来生成合成增量文件的方法,该方法包括步骤:1)将原始二进制文件分成尺寸为N的段;2)将升级的二进制文件分成尺寸为N的段;3)检测来自原始二进制文件的第一段和来自升级的二进制文件的第一段之间的第一组差别;以及4)根据检测到的第一组差别生成第一增量文件。该方法还包括步骤:4)检测来自原始二进制文件的第二段和来自升级的二进制文件的第二段之间的第二组差别;以及5)根据检测到的第二组差别生成第二增量文件。将所述第一和第二增量文件组合以形成合成增量文件。

Description

高效生成用于无线网络中的空中下载升级的增量文件的装置和方法
技术领域
本发明一般涉及无线通信,更具体涉及高效生成用于无线移动站的空中下载(over-the-air)升级的增量文件(delta file)的技术。
背景技术
无线服务提供商和无线设备制造商不断地寻求新的方式来提供尽可能方便、用户好用和经济上负担得起的无线设备和服务。这些努力的一个重要方面涉及无线移动站以及固定无线终端的空中下载(OTA)升级,所述无线移动站例如蜂窝电话、无线个人数字助理(PDA)、无线手提计算机、双向寻呼机等。空中下载(OTA)升级(有时称作固件空中下载升级)是一种相对比较新的方法,其使移动站用户能够下载和安装更新的软件,所述更新的软件包括补丁、缺陷修复(bug fix)和软件的更新的版本,包括存储在无线移动站中的操作系统。
通常以增量文件的形式将软件升级传送到移动站。移动站包含原始(或旧的)文件的副本(copy),并且期望用升级的(或新的)文件来替换原始文件。然而,许多软件程序和其它文件非常大,因此,一般来说以空中下载方式传送整个升级的文件(upgraded file)即使不是不可能的也是不切实际的。为了克服此问题,OTA升级操作往往使用增量文件。通过检测原始文件和升级的文件之间的差别来生成增量文件。然后将检测到的差别用来创建增量文件,其包含能够用来将原始文件转换成升级的文件的数据和指令。当增量文件被传送到无线移动站时,执行增量文件中的指令并且使用来自增量文件中的数据来修改(或修补)原始文件,由此在移动站中将原始文件转换成升级的文件。此方法的优点在于:增量文件一般比原始文件或升级的文件小得多。
存在许多用于生成增量文件的方法。然而,这些方法中的每个都存在一个或多个明显的缺点。由Reichenberger提出的一种普遍的增量生成算法(也称为“贪婪(greedy)”算法)非常善于生成在理论上最小可能尺寸(size)的增量文件。然而,由于生成增量文件所需的时间的原因,贪婪算法实际上不能用于尺寸大于4兆字节(4Mb)的任何文件。贪婪算法需要O(n2)型存储器和运行时间(runtime),其中n是旧文件和新文件的组合长度。对于较大的n值,生成增量文件可能需要许多小时甚至数天来完成。
另一种普遍的增量生成算法是由Josh MacDonald引入的x增量(xdelta)。该x增量算法以线性时间运行,但是该增量文件的尺寸比贪婪增量算法大得多。这对于无线应用来说是个问题,因为许多无线服务提供商对增量文件尺寸加以限制。而且,在移动站上运行的增量应用(delta-apply)软件(即,“修补客户端(patch client)”)将具有无规则(erratic)的快闪存储器扇区-写模式。这导致增加的修补应用时间(times)。一般来说无线服务提供商也对修补应用时间加以严格限制(例如,少于10分钟)。无规则快闪存储器扇区-写操作的另外的问题是由此引起的对物理快闪存储器部分的磨损(wear-and-tear)。众所周知,快闪存储器具有有限的擦写周期(例如,大约10000)。
最后,x增量指令假设没有在现场(in place)进行根据原始文件重建升级的文件。假设升级的文件是与旧文件分离和有区别的。在重建的最后,删除旧文件,只剩下升级的文件。因此,在生成升级的文件期间,需要两倍于图像文件尺寸的快闪存储器尺寸。
由Kiem Phong Vo提出的vcdiff算法是与x增量算法类似的另一种线性时间算法。结果,vcdiff算法存在与影响x增量算法的缺点类似的缺点。最后,由Andrew引入的rsync算法被设计用来使在客户端和服务器之间交换的业务量(traffic)最小化。然而,其没有最优化任何其它的内容。因此,其在固件空中下载(FOTA)应用中的使用非常有限。
用于生成增量文件的现有技术算法也受传统链接器(linker)程序生成原始二进制文件和升级的二进制文件所采用的方式的妨碍,其中增量文件是根据原始二进制文件和升级的二进制文件生成的。链接器取得(takes)对象文件并且生成可执行文件。更具体来说,链接器取得从存储器映像(memory map)输入文件输入的一个或多个对象文件、库(library)和地址详细资料,并且生成适于执行的输出文件。然而,在传统链接器中,输出的可执行文件(outputexecutable)实质上是单块的(monolithic in nature)。所述输出的可执行程序不具有函数、变量等的确定的排序。这些细节完全留给链接器负责。
目前的链接器在选择对象文件时不具有任何顺序。而且,也没有规定收集读-写数据(“RW数据”)的顺序(即,顺序是随机的)。由于指令集(例如ARM微处理器指令集)的唯一性(unique nature)而导致:当这些指令的地址参考改变时,分支指令编码、转移指令编码以及函数调用指令编码也改变。当(由于缺陷修复等原因)对文件增加或删除新软件模块时,输出的可执行文件将具有对转移、分支和函数调用指令的变化。
由于模块内的参考,这些变化又级联(cascade)进其它模块。该级联的变化导致极为不同的两个二进制文件(原始二进制文件和升级的二进制文件)。这导致在原始二进制文件和升级的二进制文件之间生成的增量文件尺寸上的巨大增加。因此,现有的链接器不仅没有在软件代码中保留参考的空间局部性(spatial locality),而且现有的链接器实际上级联了变化。因此,软件中相对较小的变化造成了输出的可执行文件的较大的变化。这些性质对于FOTA应用的增量文件的生成非常不利。
因此,本领域需要一种改进的装置和方法,用来生成用于执行无线移动站的空中下载升级的增量文件。具体来说,需要一种增量文件生成方法,其提供增量文件的尺寸和生成该增量文件所需的时间之间的最佳平衡。更具体来说,需要一种改进的链接器,其防止软件文件中的较小变化级联成最终的输出的可执行文件中的较大变化。
发明内容
本发明提供一种改进的算法,其根据升级的文件和原始文件的段(segments)以几乎线性的时间来生成增量文件。因此,本发明的算法对于大输入文件定标(scale)得非常好。该算法也利用了二进制代码(对象代码(objectcode))中存在的参考(reference)的空间局部性。本发明可以基于贪婪算法(或另一增量算法)并且以线性时间和空间运行。本发明也生成这样的增量文件,其与其它现有技术算法相比而言减少了快闪存储器写操作的次数。
本发明也提供改进的链接器,其利用对象代码中的参考的空间局部性来生成更好的输出可执行文件。改进的链接器自动保留对象代码(即,模块、函数)间的空间以便容纳将来的软件扩展。改进的链接器也分析先前的输出可执行文件(即,原始二进制文件)以便保留函数和变量的地址分配,从而使两个连续的可执行文件之间的变化最小化。
为了解决以上讨论的现有技术的不足,本发明的主要目的是提供一种基于原始文件和升级的文件之间的差别来生成合成(composite)增量文件的方法。根据本发明的有利实施例,该方法包括步骤:1)将原始二进制文件分成第一多个尺寸为N的段;2)将升级的二进制文件分成第二多个尺寸为N的段;3)检测来自原始二进制文件的第一段和来自升级的二进制文件的第一段之间的第一组差别;以及4)根据检测到的第一组差别生成第一增量文件。
根据本发明的一个实施例,该方法还包括步骤:4)检测来自原始二进制文件的第二段和来自升级的二进制文件的第二段之间的第二组差别;以及5)根据检测到的第二组差别生成第二增量文件。
根据本发明的另一个实施例,该方法还包括步骤:将第一增量文件和第二增量文件组合以便形成合成增量文件。
根据本发明的另一个实施例,该方法还包括步骤:将该合成增量文件发送至包含原始文件的副本的目标(target)设备。
根据本发明的再一个实施例,该方法还包括步骤:根据第一增量文件和第二增量文件生成数据验证值并将该数据验证值添加到合成增量文件中。
根据本发明的另一个实施例,数据验证值包括循环冗余校验(CRC)值。
根据本发明的另一个实施例,生成第一增量文件和生成第二增量文件的步骤使用贪婪算法来生成增量文件。
根据本发明的另一个实施例,分割原始二进制文件的步骤包括基于与目标设备相关联的存储器映像输入文件来分割原始二进制文件的子步骤。
在本发明的一个实施例中,分割升级的二进制文件的步骤包括基于与目标设备相关联的存储器映像输入文件来分割升级的二进制文件的步骤。
为了解决以上讨论的现有技术的不足,本发明的主要目的在于提供分段链接器(segmented linker),其根据原始二进制文件生成用于替换安装在目标设备中的原始二进制文件的副本的升级的二进制文件。根据本发明的有利实施例,分段链接器作为输入接收多个对象、原始二进制文件和与目标设备相关联的存储器映像输入文件,并且其中分段链接器在升级的二进制文件中保留至少一些原始二进制文件中的代码的参考的空间局部性。
根据本发明的一个实施例,分段链接器作为输入还接收链接器指导(guideline)文件,其定义具有参考的空间局部性的对象在原始二进制文件中的布局(layout)。
根据本发明的另一个实施例,分段链接器使用链接器指导文件来限制级联地址参考在升级的二进制文件中的传播。
根据本发明的另一个实施例,分段链接器使用链接器指导文件在升级的二进制文件中保留具有参考的空间局部性的对象在原始二进制文件中的顺序。
根据本发明的另一个实施例,分段链接器使用链接器指导文件在升级的二进制文件中的对象和模块之间保留空间。
根据本发明的另一个实施例,分段链接器基于模块和对象的地址空间以外的外部函数和变量的数目在升级的二进制文件中的对象和模块之间保留空间。
根据本发明的另一个实施例,分段链接器基于程序员提供的试探值(heuristic value)在升级的二进制文件中的对象和模块之间保留空间。
在本发明的一个实施例中,分段链接器使用来自原始二进制文件的信息在升级的二进制文件中保留变量和函数的地址分配。
在描述下面的“具体实施方式”之前,对在此专利文件中通篇使用的某些词和词组的定义进行说明可能是有利的:术语“包括”和“包含”以及其派生词的含义是包括而不是限制;术语“或者”是指包括的,意思是和/或;术语“与...相关联的”和“与其相关联的”以及其派生词可以指包括、被包括在...之中、与...相互连接、包含、被包含在...之中、连接至或与...相连、耦合至或与...耦合、可与...通信的、与...互操作、交织、并置、与...接近、被绑定到...或与...绑定在一起、具有、具有...属性等;以及术语“控制器”指任何设备、系统及其控制至少一个操作的部分,这样的设备可以是硬件、固件或软件、或者它们中的至少两个的某种组合。应当注意与特定控制器相关联的功能可以是集中式的或分布式的,无论在本地还是在远端都是如此。遍及此专利文件提供一定词和短语的定义,本领域普通技术人员应当理解许多(如果不是大多数实例)这样的定义适于如此定义的词和短语的现在以及将来的使用。
附图说明
为了更全面地理解本发明和其优点,现在对下面结合附图的描述进行介绍,其中,相似的附图标记表示相似的部分:
图1图示根据本发明的原理的示范性无线网络,其中空间高效增量生成算法可以被用来升级移动站;
图2图示根据本发明的原理的升级服务器的所选择的部分;
图3图示根据本发明的示范性实施例的合成增量文件;以及
图4是图示根据本发明的原理用于生成增量文件的新算法的流程图。
具体实施方式
以下讨论的图1到4以及用来描述在此专利文件中的本发明的原理的各种实施例仅仅是作为说明而无论如何不应当被解释为是为了限制本发明的范围。本领域的技术人员将理解:本发明的原理可以在任何适当地布置的无线网络中实现。
图1图示根据本发明的原理的示范性无线网络100,其中空间高效增量生成算法可以被用来升级移动站。在借助因特网或类似的广域IP网络耦接到无线网络100的升级服务器(未示出)中实施本发明。可替换地,升级服务器可以借助公共交换电话网络(PSTN)来耦接至无线网络100。
无线网络100包括多个小区站点(cell site)121-123,每个包含基站BS 101、BS 102或BS 103中的一个。基站101-103通过根据例如IS-2000标准(即,CDMA2000)的码分多址(CDMA)信道与多个移动站(MS)111-114通信。在本发明的有利实施例中,移动站111-114能够同时在两个或多个CDMA信道中接收数据业务(traffic)和/或语音业务。移动站111-114可以是能够经由无线链路与基站101-103通信的任何适合的无线设备(例如,传统的蜂窝电话、PCS手持设备、个人数字助理(PDA)手持设备、便携式计算机、遥测设备)。
本发明不限于移动设备。本发明也涵盖其它类型的无线接入终端,包括固定的无线终端。为了简洁起见,以下仅示出和讨论移动站。然而,应当理解,在以下描述和权利要求书中的术语“移动站”的使用旨在涵盖真正的移动设备(例如,蜂窝电话、无线膝上型电脑)和固定不动的(stationary)无线终端(例如,具有无线能力的机器监控器)这二者。
虚线示出基站101-103所在的小区站点121-123的大致边界。仅出于说明和解释的目的而将所述小区站点示出为接近圆形。应当清楚,根据所选择的小区配置以及自然和人工的障碍,所述小区站点可以具有其它不规则的形状。
正如本领域所公知的那样,小区站点121-123中的每个包括多个扇区,其中耦接至基站的定向天线辐照(illuminate)每个扇区。图1的实施例图示小区中心的基站。替换实施例可以将定向天线定位在扇区的角落中。本发明的系统不限于任何特定的小区站点配置。
在本发明的一个实施例中,BS 101、BS 102和BS 103中的每个包括基站控制器(BSC)和一个或多个基站收发机子系统(BTS)。基站控制器和基站收发机子系统对于本领域的技术人员来说是公知的。
基站控制器是为无线通信网络中的指定蜂窝管理包括基站收发机子系统的无线通信资源的设备。基站收发机子系统包括RF收发机、天线以及其它位于每个小区站点内的电子装备。此装备可以包括空调单元、加热单元、电源、电话线接口和RF发射机和RF接收机。出于在解释本发明的操作时简洁和清楚的目的,小区121、122和123的每一个中的基站收发机子系统和与每个基站收发机子系统相关联的基站控制器分别由BS 101、BS 102和BS 103来共同表示。
BS 101、BS 102和BS 103经由通信线路131和移动交换中心(MSC)140在彼此以及公共交换电话网络(PSTN)(未示出)之间传送语音和数据信号。BS101、BS 102和BS 103也经由通信线路131和分组数据服务器节点(PDSN)150与因特网(未示出)传送诸如分组数据之类的数据信号。分组控制功能(PCF)单元190控制基站101-103和PSDN 150之间的数据分组流。PCF单元190可以作为PDSN 150的一部分、MSC 140的一部分或者作为图1所示的、与PDSN150通信的单独的设备而实现。线路131也提供用于在MSC 140与BS 101、BS 102和BS 103之间传送控制信号的连接路径,其在MSC 140与BS 101、BS 102和BS 103之间建立用于语音和数据电路的连接。
通信线路131可以是任何适合的连接手段,包括T1线路、T3线路、光纤链路、网络分组数据骨干(backbone)连接或任何其它类型的数据连接。线路131链接每个BSC中的语音编码器(vocoder)和MSC 140中的交换部件。线路131上的连接可以脉冲编码调制(PCM)格式、因特网协议(IP)格式、异步传输模式(ATM)格式等发送模拟语音信号或数字语音信号。
MSC 140是在无线网络中的订户(subscriber)和诸如PSTN或因特网之类的外部网络之间提供服务和协调的交换设备(switching device)。
MSC 140对于本领域的技术人员来说是熟知的。在本发明的一些实施例中,通信线路131可以是若干不同的数据链路,其中每条数据链路将BS 101、BS 102或BS 103之一耦接至MSC 140。
在示例无线网络100中,MS 111位于小区站点121中并且与BS 101通信。MS 113位于小区站点122中并且与BS 102通信。MS 114位于小区站点123中并且与BS 103通信。MS 112也位于靠近小区站点123的边缘处并且正在向小区站点123的方向移动,如邻近MS 112的方向箭头所指示的那样。在某一时刻,当MS 112移入小区站点123而移出小区站点121时,发生越区切换(hand-off)。
借助根据本发明的原理的生成增量文件的升级服务器(未示出)来升级移动站111-114。从升级服务器向基站101-103传送空间高效增量文件,然后将所述空间高效增量文件通过空中下载发送到移动站111-114。
图2图示根据本发明的原理的升级服务器200的所选择的部分。升级服务器200包括对象文件205、链接器指导(linker guidelines)210、分段链接器(segmented linker)225、存储器映像输入文件220、升级的(或新的)二进制文件230、原始的(或旧的)二进制文件235、分段增量文件生成器245和合成增量(Δ)文件250。分段链接器225是采用对象文件205、库和地址详细资料作为输入并且生成可执行文件的应用程序,即,升级的二进制文件230。
正如在下面将更详细地讨论的那样,在本发明的有利实施例中,分段链接器225也可以使用存储器映像输入文件220和链接器指导文件210作为附加的输入,以便基于软件中的参考的空间局部性产生可执行的升级的二进制文件230。
根据本发明的原理,分段增量文件生成器245通过将升级的二进制文件230和原始升级的文件235分成多个段、以时间和空间高效的方式生成增量文件。然后分段增量文件生成器245根据来自升级的二进制文件230和原始升级的文件235的相应段来生成多个增量文件。然后,分段增量文件生成器245将如此产生的多个增量文件组合成合成增量文件250(或宏增量文件250),其被发送到移动站111-114。
为了实现前述的功能,分段增量文件生成器245使用存储器映像输入文件220作为输入,以便确定如何将增量文件分段。存储器映像输入文件220通常由诸如分段链接器215之类的链接器程序所使用,以便根据对象文件生成可执行文件。存储器映像输入文件220定义如何利用目标设备(在此情况中为移动站)的存储器空间。因此,例如,存储器映像输入文件220定义移动站111中的快闪存储器和随机存取存储器(RAM)的地址空间,并且定义,例如,数据文件、程序、引导ROM、自由空间和堆栈边界的位置。
尽管存储器映像输入文件220一般由链接器用来根据对象文件创建可执行文件,并且将其安全地存储在目标设备的存储器中而无需重写其它必要的文件,但是,分段增量文件生成器245也使用存储器映像输入文件220来根据本发明的原理产生分段增量文件。然后可以将分段增量文件组合成合成增量文件(或宏增量文件),并且可以添加循环冗余校验(CRC)字段以验证包含在合成增量文件中的数据。正如前面所解释的那样,根据现有技术贪婪算法生成增量文件所需的时间随升级的和原始文件的组合尺寸(combined size)的增长而成指数增长。根据本发明的原理,与直接根据整个升级的和原始文件来生成单个增量文件相比,将升级的和原始文件分段然后生成分段增量文件需要少得多的处理时间。本发明的折衷(trade-off)之处在于由本发明的所产生的合成增量文件比由对全尺寸的(full-sized)升级的和原始文件进行操作的传统贪婪算法产生的最小尺寸的增量文件稍微大一些。
图3图示根据本发明的示例实施例的示例合成增量文件250。合成增量文件250包括各个增量文件311-316和CRC字段316。根据升级的二进制文件230的一个段和来自原始二进制文件235的一个段来产生增量文件311-316的每一个。在分段增量文件生成器245生成增量文件311-316之后,分段增量文件生成器245对所有增量文件311-316计算CRC值,并且在CRC字段317中,将所计算的CRC值附加到增量文件311-316。然后将合成增量文件250发送到移动站111-114。
图4描绘流程图400,其图示根据本发明的原理用于生成增量文件的新算法。最初,分段增量文件生成器245将原始(旧)二进制文件235和升级的(新)二进制文件230分成尺寸为N的段(处理步骤405)。根据本发明的有利实施例,分段增量文件生成器245根据移动站111-114中的存储器的快闪扇区的尺寸来确定N的值。分段增量文件生成器245根据存储器映像输入文件220中的信息确定快闪扇区的尺寸。
接下来,对于每个段(以0开始),分段增量文件生成器245运行传统增量生成算法,例如贪婪算法,以便计算对于每个段的增量指令和数据(处理步骤410)。分段增量文件生成器245在增量指令中移除写冲突,使得可以在目标移动站现场(in-place)应用该增量文件(处理步骤415)。接下来,分段增量文件生成器245对增量文件指令和数据进行编码(处理步骤420)。分段增量文件生成器(S segmented delta file generator)245重复处理步骤410、415和420直到处理了原始二进制文件235和升级的二进制文件230的所有段为止(处理步骤425)。
本发明利用原始二进制文件235和升级的二进制文件230中的空间相关性,这是因为在两个相关的二进制文件中的相同偏移处,代码块(blocks of code)往往是大部分相同的。换言之,同一软件的两个可比较的版本一般在代码的相似偏移处展示很高的相似度。尽管本发明可以通过应用熟知的“贪婪算法”(由Reichenberger提出)来计算增量。但是可以使用其它熟知的算法。本发明提供对该贪婪算法的改进,同时仍然保留理论上最佳增量文件尺寸的大部分益处。通过在每个段的末尾一起进行复制(COPY)和添加(ADD)增量指令二者,快闪写操作的数目被最小化。传统增量补丁算法需要双程的通路(two-passapproach)来分离地处理复制和添加指令。由于本发明具有几乎线性的资源需求(存储器和时间),因此,大的二进制文件(large binaries)(即,>4MB)以确定量的时间运行。
通过使用根据本发明的原理的分段链接器(或智能链接器)进一步提高了由分段增量文件生成器245产生的增量文件的质量。本发明向分段链接器215添加附加的智能,以便在原始二进制文件235和升级的二进制文件230之间保留参考的空间局部性。这样做主要是限制级联地址参考的传播。
除了接收对象文件205、存储器映像输入文件220、升级的二进制文件230和原始二进制文件235作为输入之外,分段链接器215也接收链接器指导文件210作为附加输入。根据本发明的有利实施例,链接器指导文件210包括描述具有参考的空间局部性的对象的布局的脚本(script)。分段链接器215使用链接器指导文件210来保留由软件程序员所指定的顺序。
此外,分段链接器215使用链接器指导文件210来在对象和模块(包括函数)之间保留空间。这些保留的空间可以被称为“孔(holes)”分段链接器215基于非本地符号参考的数量(即,该模块(对象代码)外部的外部函数和变量的数目)来计算所保留的空间。只有分段链接器215知晓非本地参考的数目和类型。因此,分段链接器215利用此信息来产生更好的输出可执行文件(即,升级的二进制文件230)。
保留的空间(或孔)的量也可以通过使将来的变化容纳到那些函数/对象文件的程序员提供的试探法(heuristic)来修改。因此,如果由于例如缺陷修复而在将来修改该软件,那么孔空间将确保在特定模块中变量和函数的地址变化不级联到另一模块中。分段链接器215也检查先前输出的可执行文件(即,原始二进制文件235)以便保留对变量和函数的相同地址分配。这进一步减小了级联的变化。
结果,分段链接器215产生理想地适合于FOTA应用的二进制输出文件(即,升级的二进制文件230),这是因为两个连续可执行文件(诸如升级的二进制文件230和原始二进制文件235)间的差别将趋于相对很小。因此,由分段增量文件生成器245(或任何其它传统增量文件生成器)所生成的增量文件的尺寸将被最小化。
尽管已经利用示例实施例描述了本发明,但是对于本领域的技术人员来说可以提出各种改变和修改。旨在使本发明涵盖落在所附权利要求的范围内的这样的改变和修改。

Claims (30)

1.一种基于原始二进制文件和升级的二进制文件之间的差别来生成合成增量文件的方法,该方法包括步骤:
将原始二进制文件分成第一多个尺寸为N的段;
将升级的二进制文件分成第二多个尺寸为N的段;
检测来自原始二进制文件的第一段和来自升级的二进制文件的第一段之间的第一组差别;以及
根据检测到的第一组差别生成第一增量文件。
2.如权利要求1所述的方法,还包括步骤:
检测来自原始二进制文件的第二段和来自升级的二进制文件的第二段之间的第二组差别;以及
根据检测到的第二组差别生成第二增量文件。
3.如权利要求2所述的方法,还包括步骤:
将第一增量文件和第二增量文件组合以形成合成增量文件。
4.如权利要求3所述的方法,还包括将该合成增量文件发送至包含原始文件的副本的目标设备的步骤。
5.如权利要求4所述的方法,还包括根据第一增量文件和第二增量文件生成数据验证值并将该数据验证值添加到合成增量文件中的步骤。
6.如权利要求5所述的方法,其中所述数据验证值包括循环冗余校验(CRC)值。
7.如权利要求6所述的方法,其中所述生成第一增量文件和生成第二增量文件的步骤使用贪婪算法来生成增量文件。
8.如权利要求7所述的方法,其中所述分割原始二进制文件的步骤包括基于与目标设备相关联的存储器映像输入文件来分割原始二进制文件的子步骤,并且其中,与原始二进制文件相关联的第一多个段的尺寸N是由与目标设备相关联的快闪存储器的扇区尺寸确定的。
9.如权利要求8所述的方法,其中所述分割升级的二进制文件的步骤包括基于与目标设备相关联的存储器映像输入文件来分割升级的二进制文件的子步骤,并且其中与升级的二进制文件相关联的第二多个段的尺寸N是由与目标设备相关联的快闪存储器的扇区尺寸确定的。
10.如权利要求9所述的方法,其中所述目标设备包括无线移动站,并且合成增量文件经由无线网络被发送到该无线移动站。
11.一种能够将原始二进制文件转换成升级的二进制文件的合成增量文件,其中该合成增量文件由以下步骤生成:
将原始二进制文件分成第一多个尺寸为N的段;
将升级的二进制文件分成第二多个尺寸为N的段;
检测来自原始二进制文件的第一段和来自升级的二进制文件的第一段之间的第一组差别;以及
根据检测到的第一组差别生成第一增量文件。
12.如权利要求11所述的合成增量文件,其中所述合成增量文件进一步由以下步骤生成:
检测来自原始二进制文件的第二段和来自升级的二进制文件的第二段之间的第二组差别;以及
根据检测到的第二组差别生成第二增量文件。
13.如权利要求12所述的合成增量文件,其中所述合成增量文件进一步由以下步骤生成:
将第一增量文件和第二增量文件组合以形成合成增量文件。
14.如权利要求13所述的合成增量文件,其中所述合成增量文件适合于发送至包含原始文件的副本的目标设备。
15.如权利要求14所述的合成增量文件,其中所述合成增量文件进一步由以下步骤生成:
根据第一增量文件和第二增量文件生成数据验证值并将该数据验证值添加到该合成增量文件中。
16.如权利要求15所述的合成增量文件,其中所述数据验证值包括循环冗余校验(CRC)值。
17.如权利要求16所述的合成增量文件,其中,使用用于生成增量文件的贪婪算法来生成第一增量文件和第二增量文件。
18.如权利要求17所述的合成增量文件,其中,基于与目标设备相关联的存储器映像输入文件来分割原始二进制文件,其中,与原始二进制文件相关联的第一多个段的尺寸N是由与目标设备相关联的快闪存储器的扇区尺寸确定的。
19.如权利要求18所述的合成增量文件,其中,基于与目标设备相关联的存储器映像输入文件来分割升级的二进制文件,其中,与升级的二进制文件相关联的第二多个段的尺寸N是由与目标设备相关联的快闪存储器的扇区尺寸确定的。
20.如权利要求19所述的合成增量文件,其中所述目标设备包括无线移动站,并且合成增量文件适用于经由无线网络被发送到该无线移动站。
21.一种基于原始二进制文件和升级的二进制文件生成合成增量文件的装置,该装置包括:
分段链接器,用于根据原始二进制文件生成适于替换安装在目标设备中的原始二进制文件的副本的升级的二进制文件,其中分段链接器作为输入接收多个对象、原始二进制文件和与目标设备相关联的存储器映像输入文件,并且其中分段链接器在升级的二进制文件中保留至少一些在原始二进制文件中的代码的参考的空间局部性;以及
分段增量文件生成器,用于根据来自升级的二进制文件和原始升级的文件的相应段生成[通过将升级的二进制文件和原始升级的文件的每一个分成多个段以时间和空间高效方式生成增量文件,其中所述分段增量文件生成器生成]多个增量文件,并且将如此产生的多个增量文件组合成被发送到移动站的增量文件。
22.如权利要求21所述的分段链接器,其中所述分段链接器作为输入还接收链接器指导文件,其定义具有参考的空间局部性的对象在原始二进制文件中的布局。
23.如权利要求22所述的分段链接器,其中所述分段链接器使用链接器指导文件来限制级联地址参考在升级的二进制文件中的传播。
24.如权利要求23所述的分段链接器,其中所述分段链接器使用链接器指导文件在升级的二进制文件中保留具有参考的空间局部性的对象在原始二进制文件中的顺序。
25.如权利要求24所述的分段链接器,其中所述分段链接器使用链接器指导文件在升级的二进制文件中的对象和模块之间保留空间。
26.如权利要求25所述的分段链接器,其中所述分段链接器基于模块和对象的地址空间以外的外部函数和变量的数目在升级的二进制文件中的对象和模块之间保留空间。
27.如权利要求26所述的分段链接器,其中所述分段链接器基于程序员提供的试探值在升级的二进制文件中的对象和模块之间保留空间。
28.如权利要求27所述的分段链接器,其中所述分段链接器使用来自原始二进制文件的信息在升级的二进制文件中保留变量和函数的地址分配。
29.如权利要求28所述的分段链接器,其中所述分段链接器使用存储器映像输入文件在升级的二进制文件中的对象和模块之间保留空间。
30.如权利要求29所述的分段链接器,其中所述分段链接器根据存储器映像输入文件确定与目标设备相关联的快闪存储器的扇区尺寸,并且使用该扇区尺寸在升级的二进制文件中的对象和模块之间保留空间。
CN 200580027212 2004-06-10 2005-06-10 高效生成用于无线网络中的空中下载升级的增量文件的装置和方法 Pending CN101002406A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US57868504P 2004-06-10 2004-06-10
US60/578,685 2004-06-10
US60/578,684 2004-06-10
US11/125,665 2005-05-10
US11/125,663 2005-05-10

Publications (1)

Publication Number Publication Date
CN101002406A true CN101002406A (zh) 2007-07-18

Family

ID=38693410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200580027212 Pending CN101002406A (zh) 2004-06-10 2005-06-10 高效生成用于无线网络中的空中下载升级的增量文件的装置和方法

Country Status (1)

Country Link
CN (1) CN101002406A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677869A (zh) * 2012-09-06 2014-03-26 中国科学院计算技术研究所 无线传感器网络节点远程代码更新系统及方法
CN103713928A (zh) * 2013-12-31 2014-04-09 优视科技有限公司 增量文件生成方法、应用程序安装文件更新方法及装置
WO2016177061A1 (zh) * 2015-10-30 2016-11-10 中兴通讯股份有限公司 一种空中下载技术升级方法和装置
CN107577474A (zh) * 2017-09-12 2018-01-12 青岛海信电器股份有限公司 升级文件的处理方法及装置、电子设备
CN107992323A (zh) * 2017-12-27 2018-05-04 深圳市科陆电子科技股份有限公司 一种集中器升级方法和系统
CN108958752A (zh) * 2018-07-09 2018-12-07 迈普通信技术股份有限公司 单片机在线升级系统及方法
CN110381138A (zh) * 2019-07-19 2019-10-25 上海擎感智能科技有限公司 基于ota云端的升级管理方法及系统、存储介质及ota云端
CN112925553A (zh) * 2021-03-18 2021-06-08 上海创功通讯技术有限公司 一种嵌入式设备的系统升级方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677869A (zh) * 2012-09-06 2014-03-26 中国科学院计算技术研究所 无线传感器网络节点远程代码更新系统及方法
CN103677869B (zh) * 2012-09-06 2017-10-10 中国科学院计算技术研究所 无线传感器网络节点远程代码更新系统及方法
CN103713928A (zh) * 2013-12-31 2014-04-09 优视科技有限公司 增量文件生成方法、应用程序安装文件更新方法及装置
CN103713928B (zh) * 2013-12-31 2017-02-22 优视科技有限公司 增量文件生成方法、应用程序安装文件更新方法及装置
WO2016177061A1 (zh) * 2015-10-30 2016-11-10 中兴通讯股份有限公司 一种空中下载技术升级方法和装置
CN107577474A (zh) * 2017-09-12 2018-01-12 青岛海信电器股份有限公司 升级文件的处理方法及装置、电子设备
CN107577474B (zh) * 2017-09-12 2020-07-10 海信视像科技股份有限公司 升级文件的处理方法及装置、电子设备
CN107992323A (zh) * 2017-12-27 2018-05-04 深圳市科陆电子科技股份有限公司 一种集中器升级方法和系统
CN108958752A (zh) * 2018-07-09 2018-12-07 迈普通信技术股份有限公司 单片机在线升级系统及方法
CN110381138A (zh) * 2019-07-19 2019-10-25 上海擎感智能科技有限公司 基于ota云端的升级管理方法及系统、存储介质及ota云端
CN112925553A (zh) * 2021-03-18 2021-06-08 上海创功通讯技术有限公司 一种嵌入式设备的系统升级方法及装置

Similar Documents

Publication Publication Date Title
US20050278715A1 (en) Segmented linker using spatial locality of reference for over-the-air software updates
CN101002406A (zh) 高效生成用于无线网络中的空中下载升级的增量文件的装置和方法
KR100663538B1 (ko) 무선 단말에 있어서 델타 파일에 따른 무선(ota)소프트웨어 업그레이드 시스템 및 방법
KR100584443B1 (ko) 소프트웨어 콤포넌트 다운로드 관리 기능을 가지는 이동 단말기와 그 방법
KR101426710B1 (ko) 휴대단말기의 버전정보 갱신 장치 및 방법
US8255892B2 (en) Flash memory programming
US20040133887A1 (en) Apparatus and method for upgrading software of a wireless mobile station
CN100514991C (zh) 用于在移动站中执行有故障保护的空中传递软件更新的装置和方法
CN1123244C (zh) 用户定制无线通信单元的系统和方法
US20070192532A1 (en) Efficient system and method for updating a memory device
US20080163189A1 (en) System for generating efficient and compact update packages
Panta et al. Efficient incremental code update for sensor networks
US10191728B2 (en) System and method to reduce storage area usage of android application
JP2012069131A (ja) OTA(Over−the−air)が可能な携帯装置のためのプログラムアップグレード方法およびシステム
CN105975254A (zh) 用于智能移动应用更新的方法和系统
CN101317164A (zh) 通过比较代表信息的有效数据库同步
US20090172338A1 (en) Feedback linker for increased delta performance
CN104426955A (zh) 共享文件的处理方法及云存储服务器
CN102915249A (zh) 远程地实现固件升级的方法和装置
KR100849301B1 (ko) 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법
CN103488492A (zh) 阅读器设备及其固件升级方法及装置
WO2005122439A1 (en) Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
KR20110077111A (ko) 전자사전단말 업데이트시스템 및 업데이트방법
CN103425510B (zh) 一种交互式升级的方法及装置
CN104537055A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20070718