CN100514991C - 用于在移动站中执行有故障保护的空中传递软件更新的装置和方法 - Google Patents

用于在移动站中执行有故障保护的空中传递软件更新的装置和方法 Download PDF

Info

Publication number
CN100514991C
CN100514991C CNB2004100593906A CN200410059390A CN100514991C CN 100514991 C CN100514991 C CN 100514991C CN B2004100593906 A CNB2004100593906 A CN B2004100593906A CN 200410059390 A CN200410059390 A CN 200410059390A CN 100514991 C CN100514991 C CN 100514991C
Authority
CN
China
Prior art keywords
sector
code
daily record
nonvolatile memory
stored
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
Application number
CNB2004100593906A
Other languages
English (en)
Other versions
CN1620168A (zh
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 CN1620168A publication Critical patent/CN1620168A/zh
Application granted granted Critical
Publication of CN100514991C publication Critical patent/CN100514991C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Abstract

一种能够从无线网络下载软件更新文件的无线通信设备。所述无线通信设备包含被逐扇区重编程的非易失性存储器。非易失性存储器存储:1)要被更新的目标文件,2)下载软件更新文件,以及3)包含多个登记项的日志,每一个登记项包含与非易失性存储器的被重编程扇区相关联的状态信息。所述无线通信设备还包含随机存取存储器和用下载软件更新文件中的替换代码来替换目标文件中的目标代码的主处理器。主处理器在随机存取存储器中建立替换代码的第一代码块,并通过把替换代码的第一代码块存储到非易失性存储器的第一目标扇区来重编程第一目标扇区。主处理器更新日志中与第一目标扇区相关联的第一登记项中的第一状态信息。

Description

用于在移动站中执行有故障保护的空中传递软件更新的装置和方法
技术领域
本发明一般涉及无线通信系统,特别涉及用于在无线通信设备中执行有故障保护(fail-safe)的软件打补丁的装置和方法。
背景技术
为了将无线通信市场提高到最大可能的程度,无线服务提供商和无线设备制造商一直在寻求新的方法使无线设备和服务尽可能方便、用户友好和买得起。在这方面,无线服务提供商和诸如移动电话和固定(或恒定)无线终端等无线移动站的制造商,常常要合作,以提高注册和装备新用户以及改进已有用户的服务和装备的效率。
这些努力的一个重要方面涉及通过空中传递(OTA)供应和升级无线移动站,例如,移动电话,无线个人数字助理(PDA),无线手持计算机,双向寻呼机等,以及固定无线终端。OTA供应是一种相对较新的概念,能够让购买新移动电话(或其他无线设备)的新用户同无线服务提供商建立新帐户并且配置该新移动电话使其能够操作。无线设备的空中传递(OTA)更新也是相对较新的服务过程,可以让用户下载和安装包含有补丁的经过更新的软件、错误修正和那些存储在无线设备中的软件的较新版本,包括操作系统软件。无线服务提供商或移动站制造商,或者两者,可以提供这些更新的软件。
但是,OTA更新的一个缺点是用户的干扰可能造成该移动站无效。典型地,在软件更新文件的施加期间,用户干扰造成电源被切断。电源切断可能是出于故意的(如,用户移走电池),也可能是意外的(如用户掉落了手机并且电池移位)。无论哪知情况,当电源被切断,来自下载更新文件的新代码可能只是部分施加到非易失性的存储器中。其结果是,当该移动站再被供电之后,所述非易失性存储器中的错误代码可能造成所述移动站无效。
因此,再本领域中,需要有改进的系统和方法,来执行无线移动站和固定无线终端的自动软件更新。特别是,需要这样的用来更换无线通信设备的软件的方法,在更新软件的施加期间,如果电源突然掉电,不会因此造成无线通信设备无效。
发明内容
本发明包含装置和方法,用于实现有故障保护的无线通信设备的下载软件更新文件(如补丁代码)的施加。本发明的一个目的是以这样的方式施加所下载的软件文件:在软件更新文件施加期间,用户方的意外的或故意的行为都不会造成该无线通信设备无效。本发明使用算法来实现这个目的,所述算法包括两部分:1)日志的构造,2)在非正常掉电的情况下(对补丁施加过程的中断),使用存储在日志中的信息进行恢复。
为了解决上述的本技术领域存在的问题,本发明的一个主要目的是提供一种无线通信设备,能够从无线网络下载软件更新文件。根据本发明的优选实施例,所述无线通信设备包含:1)非易失性存储器,能够被逐扇区地重编程,其中所述非易失性存储器存储:i)要被更新的目标文件,ii)所述下载软件更新文件,以及iii)包含多个登记项的日志,所述多个登记项的每一个包含与所述非易失性存储器的被重编程扇区相关联的状态信息;2)随机存取存储器;以及3)主处理器,能够用所述下载软件更新文件中的替换代码来替换所述目标文件中的目标代码。所述主处理器在所述随机存储器中建立替换代码的第一代码块,并通过把替换代码的所述第一代码块存储到所述非易失性存储器的第一目标扇区来重编程所述第一目标扇区。所述主处理器更新所述日志中与所述第一目标扇区相关联的第一登记项中的第一状态信息。
本发明的另一个主要目的是提供一种无线通信设备,能够接收和存储呼入的由无线网络传送的软件更新文件。根据本发明的优选实施例,所述无线通信设备包含:1)非易失性存储器,能够被逐扇区地重编程,其中所述非易失性存储器包括:i)下载软件更新文件,以及ii)包含多个登记项的日志,所述多个登记项的每一个包含与所述非易失性存储器的被重编程扇区相关联的状态信息;2)随机存取存储器;以及3)主处理器,能够将呼入的软件更新文件的替换代码存储在所述下载软件更新文件中。所述主处理器在所述随机存取存储器中存储呼入的软件更新文件的替换代码的第一代码块,并通过将替换代码的所述第一代码块存储到所述非易失性存储器中的所述下载软件更新文件的第一目标扇区,来重编程所述第一目标扇区。所述主处理器更新所述日志中与所述第一目标扇区相关联的第一登记项中的第一状态信息。
在进行本发明的详细说明之前,最好先明确本专利申请文件自始至终使用的特定词汇和短语的定义:术语“包括(include)”和“包含(comprise)”,及其派生形式,指的是无限制的包含;术语“或(or)”是全部包括,指的是“和/或”;短语“与…相关联(associated with)”和“与此相关联(associated therewith)”及其派生形式,可以指包括(include),被包括在(be included within),与…相连接(interconnectwith),容纳(contain),被容纳在(be contained within),连接到(connectto),与…相连接(connect with),耦合到(couple to),与…相耦合(couplewith),可与…相传达(be communicable with),与…合作(cooperatewith),交替(interleave),并列(juxtapose),近似于(be proximate to),限于(be bound to),与…互相约束(be bound with),具有(have),具有…的特性(have a property of)等;术语“控制器(controller)”指的是任何设备、系统或其中控制至少一个操作的部分,这样的设备可以用硬件、固件或软件,或某些至少两者的结合来实现。应当注意,不论是本地的还是远程的,与任何特定控制器相关的功能可以是集中式的或分布式的。对特定词汇和短语的定义被规定在本专利申请文件的自始至终,本领域的普通技术人员应该理解,如果不是在多数例子中,也在许多例子中,这样定义的词汇???和短语的定义在以前使用,在以后也使用。
附图说明
现在,为了更完整地理解本发明及其优点,参考下面结合附图的说明,其中附图中相同的参考标号表示相同的部件:
图1示出了根据本发明一个实施例的示例性无线网络;
图2示出了根据本发明一个实施例的更详细的示例性移动站;
图3示出了根据本发明实施例的示例性移动站中非易失性存储器的选定部分;
图4是示出根据本发明原理的示例性移动站的软件补丁施加操作(application operation)的流程图;以及
图5是示出根据本发明原理的示例性移动站的软件下载操作的流程图。
具体实施方式
下面讨论的图1至图5以及在此专利申请文件中用于说明本发明原理的不同实施例都只是为了说明,不应该解释成是对本发明范围的限制。本领域的普通技术人员可以理解本发明的原理可以实现在任何适当装配的无线通信设备。
图1示出了根据本发明实施例的示例性无线网络100。无线网络100包含多个小区站点121~123,其中每个包含基站BS101、BS102或BS103中的一个。根据示出的在此说明的本发明示例性实施例,基站101~103与多个移动站(MS)111~114在码分多址(CDMA)信道上通信。但是,在本发明的另外实施例中,基站101~103与移动站111~114可以在其他类型的多址信道上通信,包括TDMA信道、FDMA信道、GSM信道等。移动站111~114可以是任何合适的无线设备,包括传统的蜂窝无线电话、PCS手持设备、个人数字助理、便携计算机或计量设备。
但是,应该理解本发明不限于便携设备。其他类型的存取终端也可以使用,包括固定(即恒定)无线终端。为了简单起见,下文中只示出和讨论移动站。但是,为了定义本发明权利要求的范围,术语“移动站”、“无线通信设备”、“无线终端”以及其他用于表示与基站进行无线通信的设备的术语,应该被解释地宽泛一些,包含移动和固定的无线存取设备。
虚线示出了基站101~103所在的小区站点121~123的近似边界。这些小区站点用近似的圆形示出,只是为了说明和解释。应该清楚地理解这些小区站点可以是任何其他不规则形状,这取决于所选择的小区配置以及自然和人为的阻碍物。
如同本领域所熟知的,基站121~123中的每一个包含多个扇形覆盖区(没有示出),每个扇形覆盖区被耦合到所述基站的方向天线所辐射。图1的实施例示出了小区中央的所述基站。另外的实施例把方向天线安装在所述扇形覆盖区的角落。本发明不限于任何特定的小区站点配置。
在本发明的一个实施例中,BS101、BS102和BS103中的每一个包含基站控制器(BSC)和一个或多个基地收发器子系统(BTS)。本领域的普通技术人员都熟知基站控制器和基地收发器子系统。基站控制器是一种管理无线通信资源的设备,包括所述基地收发器子系统,用于确定无线通信网络中的小区。基地收发器子系统(BTS)包含RF收发器、天线和其他位于每个小区站点的电子设备。这些设备可以包括空调单元、暖气单元、电源、电话线接口以及RF发信器和RF收信器。为了简洁明了地解释本发明的操作,在各小区121、122和123中的基地收发器子系统连同与每个基地收发器子系统(BTS)相关联的基站控制器(BSC),分别共同地表示为BS101、BS102和BS103。
BS101、BS102和BS103在相互之间以及与公共电话交换网络(PSTN)(没有示出)之间,通过通信线路131和移动交换中心MSC140来传输话音和数据信号。BS101、BS102和BS103还通过通信线路131和分组数据服务节点(PDSN)150与因特网(没有示出)传输数据信号,如分组数据。线路131还为MSC 140与BS101、BS102和BS103之间的传输控制信号提供连接路径,用于在MSC 140与BS101、BS102和BS103之间建立话音和数据电路的连接。
通信线路131可以是任何合适的连接装置,包括T1线路、T2线路、光纤链路、网络分组数据骨干连接或任何其他类型的数据连接。线路131将BSC中的每个声码器链接到MSC 140的交换元件。本领域的普通技术人员可以理解,线路131上的连接可以提供用于模拟话音频带信号传输的传输路径,用于按照脉冲编码调制(PCM)格式的话音信号传输的数字路径,用于按照因特网协议(IP)格式的话音信号传输的数字路径,用于按照异步传输模式(ATM)格式的话音信号传输的数字路径,或其他合适的连接传输协议。本领域的普通技术人员可以理解,线路131上的连接可以提供用于按照合适的信令协议的模拟和数字控制信号传输的传输路径。
MSC 140是在无线网络中的用户与诸如PSTN或因特网等外部网络之间提供服务和协调的交换设备。本领域的普通技术人员都熟知MSC 140。在本发明的一些实施例中,通信线路131可以是几个不同的数据链路,其中每个数据链路把BS101、BS102或BS103中的一个耦合到MSC 140。
在示例性的无线网络100中,MS 111位于小区站点121并且与BS101保持通信。MS 113位于小区站点122并且与BS102保持通信。MS 114位于小区站点123并且与BS103保持通信。MS 112也位于靠近小区站点123边缘的地方并且向小区站点123的方向移动,如靠近MS112的方向箭头所指示的那样。在某些点,当MS112移动到小区站点123并离开小区站点121,将发生越区切换。
如同熟知的那样,越区切换过程把呼叫控制从第一个小区站点转移到第二个小区站点。当MS112从小区121移动到小区123,MS112检测来自BS103的导频信号,并向BS101发送导频强度测量消息。当BS103传送的并由MS112接收和报告的所述导频的强度超过阈值,BS101通过发信到目标BS103,请求如TIA/EIA IS-95或TIA/EIA IS-2000所描述的跨区切换,由此启动软跨区切换过程。
BS103和MS112开始协商在CDMA信道中通信链路的建立。随着BS103和MS112之间通信链路的建立,MS112以软跨区切换模式与BS101和BS103通信。本领域的技术人员可以知道,软跨区切换改进了正向(BS到MS)信道和反向(MS到BS)信道链路的性能。当来自BS101的信号落到预定的信号强度阈值之下,MS112就可以断开同BS101的链路,而只接收来自BS103的信号。呼叫也因此从BS101无缝地转移到BS103。上述的软跨区切换假定所述移动站在话音或数据呼叫状态中。空闲状态的跨区切换是在控制或寻呼信道中通信的移动站的小区站点之间的跨区切换。
无线网络100中任何或全部的移动站(包括固定无线终端)可以通过从远程更新服务器传送新软件的无线下载(OTA)更新过程来更新。远程更新服务器(没有示出)可以经由PDSN 150或MS140来存取。在本发明的一个实施例中,所述更新服务器可以通过传送用以全部替换目标文件的新的映像文件来更新移动站中现有的软件文件(或目标文件)。
在另外的实施例中,所述远程服务器可以传送增量文件,对目标软件文件的选定部分而不是全部目标文件,执行逐字节的替换。所述移动站执行从所述增量文件读取指令和数据的软件算法。例如,所述软件算法修改现有的操作系统软件,以产生新的(或更新的)的操作系统软件的版本。在此优选实施例中,所述移动站通过无线方式下载小的增量文件,而不是大的映像文件,因此可以节省带宽。专门用于利用增量文件来更新移动站软件的装置和方法详细公开在2003年2月5日提交的,名称为“用于无线移动站的基于增量的空中传递软件更新的系统和方法”,申请号为10/358,570的美国专利申请,和2003年2月14日提交的,名称为“更新无线移动站软件的装置和方法”,申请号为10/366,758的美国专利申请。申请号为10/358,570和10/366,758的专利申请共同转让给了本发明的受让人。申请号为10/358,570和10/366,758的专利申请所公开的内容作为参考并入本申请,如同完全在此陈述。
图2示出了根据本发明优选实施例的示例性移动站111。无线移动站111包含天线205,射频(RF)收发器210,发射(TX)处理电路215,麦克风220,接收(RX)处理电路225。MS111还包含扬声器230,主处理器240,输入/输出接口(I/O)245,键区250,和显示器255。移动站(MS)111的存储器元件包含随机存取存储器(RAM)260和非易失性(NV)存储器270。
射频(RF)收发器210从天线205接收呼入的由无线网络的基站发送的RF信号。射频(RF)收发器210降频转换该呼入的RF信号,以产生中频(IF)或基带信号。所述IF或基带信号被发送到接收器(RX)处理电路225,由其进行过滤、解码和/或数字化所述基带或IF信号,以产生经过处理的基带信号。接收器(RX)处理电路225把经过处理的基带信号传送给扬声器230(如话音数据)或传送给主处理器240做进一步处理(如web浏览)。
发射器(TX)处理电路215从麦克风接收模拟或数字话音数据或从主处理器接收其他呼出的基带数据(如,web数据,电子邮件,交互视频游戏数据等)。发射器(TX)处理电路215编码、多路传输和/或数字化所述呼出的数据,以产生经过处理的基带或IF信号。射频(RF)收发器210从发射器(TX)处理电路接收所述呼出的经过处理的基带或IF信号。射频(RF)收发器210把所述基带或IF信号升频变换成经由天线205发射的射频(RF)信号。
在本发明的优选实施例中,主处理器240是微处理器或微控制器。RAM 260和非易失性(NV)存储器270被耦合到主处理器240。NV存储器270包含闪速存储器,按只读存储器来操作。主处理器240执行控制全部无线移动站111操作的操作系统(OS)程序。所述OS程序从NV存储器270被加载到RAM 260中来执行。在典型的操作中,主处理器240根据熟知的原理,通过射频(RF)收发器210、接收器(RX)处理电路225和发射器(TX)处理电路215,来控制正向信道信号的接收和反向信道信号的发送。
主处理器240还能够执行其他的进程和驻留在RAM 260和NV(闪速)存储器270中的程序。主处理器240根据执行进程的要求,可以向RAM 260移入数据或者从RAM 260移出数据。主处理器240还被耦合到I/O接口245。I/O接口245为移动站111提供同其他设备连接的能力,例如笔记本电脑或手持电脑。I/O接口245是这些附带设备与主处理器240之间的通信路径。
主处理器240还被耦合到键区250和显示器单元255。移动站111的操作者使用键区250向移动站111输入数据。显示器255可以是液晶显示器,能够提供文本和/或至少受限的来自web站点的图形。另外的实施例可以使用其他类型的显示器。
主处理器240能够接收并安装软件更新。这种空中传递(OTA)更新可以通过任何传统的触发事件来启动,例如,操作者启动的动作,自动的周期性过程(如MS111中的期限或定时器),或者从所述远程更新服务器接收通知消息。利用来自远程服务器的通知消息来更新移动站软件的专门装置和方法被详细地公开在2003年2月14日提交,名称为“更新无线移动站软件的装置和方法”,申请号为10/366,758的美国专利申请。申请号为10/366,758的专利申请一并转让给本发明的受让人。申请号为10/366,758的专利申请所公开的内容作为参考并入本申请,如同在此全部陈述。
当有任何这类触发事件时,主处理器240建立到无线网络100的通信链路,以及经由无线网络100的因特网连接到所述远程更新服务器的通信链路。在从所述远程服务器下载了软件更新文件之后,主处理器240通过用新的映像文件整个替换目标文件来执行更新,或者,如果所述更新文件是增量文件,通过执行增量文件并替换目标文件中选定的部分来执行更新。如上面提到的,在文件替换(或打补丁)期间,完全有可能发生电源故障,从而导致不完整的更新操作,造成MS111无效。为了防止发生这样的结果,本发明实现了一种跟踪更新软件文件的施加的新颖方法,防止因电源中断而造成MS111无效。
上述方法利用在NV存储器270中逐个扇区地跟踪更新软件施加的日志来实现。所述日志的构造基于这样的思想:将补丁施加过程隔离在NV存储器270的以扇区大小为尺度的代码块中。更新软件的每个这样的代码块映射到NV存储器270的硬件闪速扇区(或代码块)长度。应该注意,闪速存储器设备,例如NV存储器270只能按照扇区大小的量级被擦除。每个扇区长度的大小典型地是64K字节。另外,应该注意,当对闪速扇区进行物理修改期间才是需要仔细注意的时候,例如扇区擦除操作或扇区写入操作。
图3示出了根据本发明优选实施例的示例性移动站111中非易失性(NV)存储器的选定部分。NV存储器310(?270)包含引导ROM代码文件310,主映像文件320,下载软件更新文件330,以及自由空间340。引导ROM代码文件310是NV存储器310(?270)的只读区段,存有基本的操作系统代码,包括更新代理程序311。数据不能写入引导ROM代码文件310。主映像文件320存有在MS111中通过主处理器来执行的最终用户软件应用程序。主映像文件320存有目标软件代码,当通过空中传递从无线网络100下载了更新软件时,要对所述目标软件代码打补丁或替换。主映像文件320中的代码是以扇区大小的代码块为单位被替换(即重编程)的。主映像文件320中的虚线指示扇区边界。示例性的依次相邻的扇区321、322和323被分别任意地标记为扇区N、扇区N+1和扇区N+2。
当MS111从所述远程更新服务器下载了代码补丁或其他更新软件,主处理器240把该新代码存储在下载软件更新文件330中。主处理器240然后执行更新代理程序311,其对主映像文件320施加补丁代码。如果突然发生掉电,并且MS111被重新启动,主处理器240自动执行作为引导ROM代码310中正常启动过程一部分的更新代理程序311。如将要在下面详细解释的那样,当MS111重启动,这会使不完整的软件更新过程被自动地继续。
假定在下载软件更新文件330中的增量文件被用于更新主映像文件320,每个补丁指令修改扇区(或其邻接的邻居)内的几个相邻近的存储器字节。这些修改不是立刻提交到NV存储器270,而是暂存在RAM 260中扇区大小的代码块中。一旦该补丁算法跨越扇区的边界,则在RAM 260中整个暂存的扇区被编程到NV存储器270。这样,NV存储器以扇区大小的代码块为单位被重编程。如果下载的是完整的新映像文件而不是增量文件,该新代码在被编程到NV存储器270之前,还是在RAM 260中被剪辑成扇区大小的代码块。
在NV存储器270的每一个扇区被修改之后,要写入说明此操作被成功执行的“日志”(或日志记录)。每个日志登记项被写入NV存储器270中自由空间340的两个扇区之一。NV存储器270的扇区341被任意地标记为“日志扇区1”,并且NV存储器270的扇区342被任意地标记为“日志扇区2”。日志登记项按照相邻接的方式被写入日志扇区1和日志扇区2,不擦除以前的日志登记项。
为了保持足够的信息,使得能在突然掉电后进行恢复,需要闪速存储器270的两个独立的可擦除扇区(扇区341和342)来用于写入日志。当一个日志扇区被日志记录填满,则擦除第二个日志扇区并用来写入下一个日志登记项。这样,在擦除第二日志扇区期间的掉电不会影响已经提交到所述第一日志扇区的信息。恢复算法的关键就是这种日志扇区1和日志扇区2的交替次序。它保证在任意时间点,存在准确描述NV存储器270中最后一次成功的重编程操作的合法日志记录。
另外,本发明使用NV存储器270的副本区(save-area)扇区350来保存将要被施加补丁指令的结果所修改的扇区的以前内容。如果扇区修改操作被中断,需要用副本区扇区350来恢复所述以前的内容。
图4中的流程图400,示出了根据本发明原理的示例性移动站111的软件补丁施加操作。在初始,主处理器240在更新程序311的控制下,在RAM260的高速缓存中按扇区大小剪辑更新软件代码的代码块(处理步骤405)。接下来,主处理器240使用来自RAM260中高速缓存的更新软件代码的扇区大小的代码块来重编程目标扇区(扇区X)(处理步骤410)。当扇区X被重编程,主处理器240在日志扇区1或日志扇区2中建立日志登记项,对应于所更新的扇区X(处理步骤415)。
接下来,主处理器240确定下载软件更新文件330中是否还有更新软件代码(处理步骤420)。如果没有剩余的更新软件代码,软件更新过程结束。如果下载软件更新文件330还包含必须编程到NV存储器270的主映像文件320的新更新软件代码,则主处理器240移到扇区X的相继下一个扇区(处理步骤425),并且对扇区X+1重复步骤405、410和415。重复这种处理,直到下载软件更新文件330中的所有新更新软件代码都已被编程到NV存储器270。
日志扇区1和日志扇区2的每个日志登记项包含三(3)个参数:1)FLUSH_SECTOR,2)SAVE_OK,和3)COMMIT_OK。FLUSH_SECTOR参数指示扇区修改进程的开始。SAVE_OK参数指示在副本区扇区350正确保存的所述扇区的以前的内容。COMMIT_OK参数指示所修改的扇区被成功地更新。
在软件更新处理期间,根据下述算法,提交操作与日志登记项(写入)交替进行:
公式—从RAM270高速缓冲存储器更新扇区。
输入:RAM_Buffer,Sector_Address,Last_Instruction_Applied。
步骤1-用指令Last_Instruction_Applied,Sector_Address写日志登记项FLUSH_SECTOR;
步骤2-把在Sector_Address的旧内容保存到副本区扇区350;
步骤3-写日志登记项:SAVE_OK;
步骤4-擦除在Sector_Address的扇区;
步骤5-把RAM_Buffer的数据写入Sector_Address;
步骤6-写日志登记项COMMIT_OK。
当按照上述的顺序修改了每一个扇区,如果在步骤1到步骤6的任何时间点发生任何非正常的掉电,都有足够的信息来恢复。
恢复算法基于下面的观察。第一,如果在步骤1之前或步骤1期间发生掉电,则日志扇区1(或日志扇区2)有前一个扇区更新的完整信息集合。更重要的,将要修改的目标扇区依然存有未经修改的数据。因此,可以恢复并继续。第二,如果在步骤1之后步骤3之前发生掉电,则同前述情形一样(即该目标扇区未经修改)。第三,如果在步骤3之后且在步骤6之前发生掉电,则日志扇区1(或日志扇区2)指示该扇区被成功保存的旧内容(即SAVE_OK日志参数被置位)。因此,如果重启动,主处理器240在继续之前,从副本区扇区350恢复该扇区的内容。第四,如果在步骤6之后掉电,该扇区被成功修改,并有日志记录证实这一点。在这种情况下,恢复操作只是在最后处理的更新指令之后继续即可。
本发明不限于主映像文件320的扇区的重编程。根据本发明原理的日志还可以用于下载并在下载软件更新文件330中存储所述更新软件。如果在下载过程中突然发生掉电,所述日志可用于在成功下载并保存的下载软件更新文件330的扇区之后的卞一个相继扇区继续下载操作。
图5中的流程图500示出了根据本发明原理的示例性移动站111的下载操作。在初始,主处理器240在更新程序311的控制下,从所述远程更新服务器将更新软件代码的扇区大小的代码块下载到RAM260中的高速缓存中(处理步骤505)。接下来,主处理器240利用RAM260中的高速缓存中的下载代码的扇区大小的代码块重编程目标扇区(扇区X)(处理步骤510)。当扇区X被重编程,主处理器240在日志扇区1或日志扇区2建立日志登记项,对应于下载软件更新文件330的扇区X(处理步骤515)。
接下来,主处理器确定是否还有更多的更新软件代码要从所述远程更新服务器下载(处理步骤520)。如果没有所述远程服务器要发送的更新软件代码,下载操作结束。如果所述远程服务器依然在传送要保存到NV存储器270的下载软件更新文件330中的新的更新软件,则主处理器240移动到扇区X之后的下一个相继的扇区(处理步骤525),并对扇区X+1重复步骤505、510和515。重复该过程直到所有新的更新软件代码都已从所述远程更新服务器接收到并存储到NV存储器270的下载软件更新文330。
如果在下载操作的任何时间点发生掉电,则在电源重新接通后,日志扇区1和日志扇区2中的登记项可以用于在正确的时间点恢复下载操作。所述恢复算法类似于上述的把下载软件补丁施加到主映像文件320的恢复算法。
尽管通过示例性的实施例说明了本发明,对本领域的普通技术人员,可以建议各种变化和修改。本发明要包含属于本发明的权利要求书所定义范围内的这类变化和修改。

Claims (18)

1.一种能够从无线网络下载软件更新文件的无线通信设备,所述无线通信设备包含:
能够被逐扇区重编程的非易失性存储器,其中,所述非易失性存储器适于:1)按照逐扇区的方式存储要被更新的目标文件,2)存储所述下载的软件更新文件,以及3)存储包含多个登记项的日志,所述多个登记项的每一个包含与所述非易失性存储器的被重编程扇区相关联的状态信息;
随机存取存储器;以及
主处理器,该主处理器能够按照逐扇区的方式,用所述的下载软件更新文件中的替换代码替换所述目标文件中的目标代码,其中,所述主处理器适于:在所述随机存取存储器中,从与所述目标文件的第一扇区相对应的所述下载软件文件的第一代码块中建立替换代码的第一代码块;在把替换代码的所述第一代码块存储到所述第一目标扇区之前,把所述第一目标扇区中的第一目标代码存储到所述非易失性存储器的副本区中;以及,通过把替换代码的所述第一代码块存储到所述第一目标扇区,来重编程所述非易失性存储器的所述第一目标扇区,并且,其中所述主处理器适于:更新所述日志中与所述第一目标扇区相关联的第一登记项中的第一状态信息。
2.如权利要求1所述的无线通信设备,其中,所述第一状态信息包含指示替换代码的所述第一代码块被成功存储到所述第一目标扇区中的第一参数。
3.如权利要求1所述的无线通信设备,其中,所述第一状态信息包含指示所述第一目标扇区中的所述第一目标代码被成功存储到所述非易失性存储器的所述副本区中的第二参数。
4.如权利要求3所述的无线通信设备,其中,所述主处理器还能够在所述移动站中电源发生断电之后把所述副本区中的所述第一目标代码存储回到所述第一目标扇区。
5.如权利要求4所述的无线通信设备,其中,在所述随机存取存储器中的替换代码的所述第一代码块的大小等于所述非易失性存储器的扇区的大小。
6.如权利要求5所述的无线通信设备,其中,所述主处理器适于:在所述无线通信设备发生断电后又重新启动之后,使用存储在所述日志中的状态信息,来识别所述非易失性存储器中最后被成功重编程的扇区。
7.如权利要求6所述的无线通信设备,其中,所述主处理器通过重编程所述非易失性存储器中在所述最后被成功重编程的扇区之后的下一个相继的扇区,继续用所述下载软件更新文件中的代码对所述目标文件中的目标代码进行替换。
8.如权利要求7所述的无线通信设备,其中,所述日志被存储在所述非易失性存储器的第一日志扇区和第二日志扇区中的至少一个中。
9.如权利要求8所述的无线通信设备,其中,当确定所述第一日志扇区写满了日志登记项的时候,则擦除所述第二日志扇区并把下一个日志登记项存储到所述第二日志扇区。
10.一种在能够从无线网络下载软件更新文件的无线通信设备中更新软件的方法,所述无线通信设备包含非易失性存储器,所述非易失性存储器被逐扇区重编程,并且1)按照逐扇区的方式存储要被更新的目标文件,2)逐扇区地存储所述下载软件更新文件,以及3)存储包含多个登记项的日志,所述多个登记项的每一个包含与所述非易失性存储器的被重编程扇区相关联的状态信息,所述更新软件的方法包含下述步骤:
利用所述下载软件更新文件中的替换代码,在所述无线通信设备的随机存取存储器中,从与所述目标文件的第一扇区相对应的所述下载软件文件的第一代码块中,建立替换代码的第一代码块;
通过把替换代码的所述第一代码块存储到所述非易失性存储器的第一目标扇区中,重编程所述第一目标扇区;以及
更新所述日志中与所述第一目标扇区相关联的第一登记项中的第一状态信息;
其中,在把替换代码的所述第一代码块存储到所述第一目标扇区之前把所述第一目标扇区中的第一目标代码存储到所述非易失性存储器的副本区中。
11.如权利要求10所述的方法,其中,所述第一状态信息包含指示替换代码的所述第一代码块被成功存储到所述第一目标扇区中的第一参数。
12.如权利要求10所述的方法,其中,所述第一状态信息包含指示所述第一目标扇区中的所述第一目标代码被成功存储到所述非易失性存储器的所述副本区中的第二参数。
13.如权利要求12所述的方法,还包含在所述移动站中电源发生断电之后把所述副本区中的所述第一目标代码存储回到所述第一目标扇区中的步骤。
14.如权利要求13所述的方法,其中,在所述随机存取存储器中的替换代码的所述第一代码块的大小等于所述非易失性存储器的扇区的大小。
15.如权利要求14所述的方法,还包含这样的步骤:在所述无线通信设备发生断电后又重新启动之后,使用存储在所述日志中的状态信息,来识别所述非易失性存储器中最后被成功重编程的扇区。
16.如权利要求15所述的方法,还包含步骤:通过重编程所述非易失性存储器中在所述最后被成功重编程的扇区之后的下一个相继的扇区,继续用所述下载软件更新文件中的代码对所述目标文件中的目标代码进行替换。
17.如权利要求16所述的方法,其中,所述日志被存储在所述非易失性存储器的第一日志扇区和第二日志扇区中的至少一个中。
18.如权利要求17所述的方法,还包含这样的步骤:当确定所述第一日志扇区写满了日志登记项,擦除所述第二日志扇区并把下一个日志登记项存储到所述第二日志扇区。
CNB2004100593906A 2003-06-20 2004-06-21 用于在移动站中执行有故障保护的空中传递软件更新的装置和方法 Expired - Fee Related CN100514991C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/600,056 US7810088B2 (en) 2003-06-20 2003-06-20 Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
US10/600,056 2003-06-20

Publications (2)

Publication Number Publication Date
CN1620168A CN1620168A (zh) 2005-05-25
CN100514991C true CN100514991C (zh) 2009-07-15

Family

ID=33418560

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100593906A Expired - Fee Related CN100514991C (zh) 2003-06-20 2004-06-21 用于在移动站中执行有故障保护的空中传递软件更新的装置和方法

Country Status (4)

Country Link
US (1) US7810088B2 (zh)
EP (1) EP1489501A1 (zh)
KR (1) KR100724878B1 (zh)
CN (1) CN100514991C (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US20030182414A1 (en) 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US20040139125A1 (en) * 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US7313791B1 (en) 2002-08-22 2007-12-25 Hewlett-Packard Development Company, L.P. Firmware update network and process employing preprocessing techniques
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US7343443B1 (en) 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
US7886093B1 (en) 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US7359698B2 (en) * 2003-09-08 2008-04-15 Kyocera Wireless Corp. Systems and methods for enhanced over-the-air programming
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7142891B2 (en) * 2003-10-10 2006-11-28 Texas Instruments Incorporated Device bound flashing/booting for cloning prevention
KR20050040432A (ko) * 2003-10-28 2005-05-03 주식회사 팬택앤큐리텔 메뉴 화면 갱신 기능을 가진 이동통신 단말기 및 그 갱신방법
US7984485B1 (en) * 2004-01-29 2011-07-19 Hewlett-Packard Development Company, L.P. Ingestion interface for transferring update package containers into a distribution network
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
FI122213B (fi) 2004-09-28 2011-10-14 Capricode Oy Menetelmä ja laitejärjestely päätelaitteen käyttöprofiilin hallitsemiseksi
US7716661B2 (en) * 2005-03-16 2010-05-11 Microsoft Corporation Embedded device update service
CN101040552B (zh) * 2005-04-18 2010-12-01 捷讯研究有限公司 控制软件版本更新的方法和系统
US9883019B2 (en) * 2005-04-28 2018-01-30 Kyocera Corporation Mobile communication terminal and software update method
US8315615B2 (en) * 2005-05-23 2012-11-20 Kyocera Corporation Wireless communication device management system and method
US8954511B2 (en) 2005-11-01 2015-02-10 Blackberry Limited System and method for collecting and presenting records in a journal on an electronic device
US20070132774A1 (en) * 2005-12-01 2007-06-14 Samsung Electronics Co., Ltd. System and method for a patch minimization tool
US8055096B2 (en) * 2006-05-10 2011-11-08 Research In Motion Limited Method and system for incremental patching of binary files
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US7779401B2 (en) * 2006-06-26 2010-08-17 Research In Motion Limited Method and system for generating a reverse binary patch for undoing a software update
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
TWI317887B (en) * 2006-10-23 2009-12-01 Quanta Comp Inc Modular management blade system and code updating method
JP4359609B2 (ja) 2006-11-15 2009-11-04 株式会社日立製作所 計算機システム、システムソフトウェア更新方法及び第1サーバ装置
WO2008076131A1 (en) * 2006-12-19 2008-06-26 Halliburton Energy Services, Inc. Secure firmware updates in embedded systems
US8320302B2 (en) * 2007-04-20 2012-11-27 Elster Electricity, Llc Over the air microcontroller flash memory updates
US8701102B2 (en) * 2007-06-27 2014-04-15 Microsoft Corporation Techniques for automatic software provisioning
US20090064129A1 (en) * 2007-08-31 2009-03-05 Mediatek Inc. Suspend and resume mechanisms on a flash memory
US8726260B2 (en) * 2007-11-26 2014-05-13 Lenovo (Singapore) Pte Ltd Techniques for providing software patches to a computer system
US8219595B2 (en) 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US8245214B2 (en) * 2008-06-05 2012-08-14 International Business Machines Corporation Reliably updating computer firmware while performing command and control functions on a power/thermal component in a high-availability, fault-tolerant, high-performance server
US8453194B2 (en) * 2008-12-17 2013-05-28 Motorola Mobility Llc Method and apparatus for downloading software images to a mobile device and to a home networked device to implement compatible services
CN101715191B (zh) * 2009-11-05 2013-07-03 中兴通讯股份有限公司 一种导游导航终端的注册方法及系统
KR101233827B1 (ko) * 2009-11-27 2013-02-14 한국전자통신연구원 수동형 광 가입자 망을 구성하는 광 가입자 단말 및 광 가입자 단말의 소프트웨어 이미지 업데이트 방법
US20110173601A1 (en) * 2010-01-12 2011-07-14 Google Inc. Operating system auto-update procedure
US8792934B2 (en) 2010-08-18 2014-07-29 Microsoft Corporation Selective update of core mobile device user interface through application marketplace
US8984030B2 (en) * 2011-05-04 2015-03-17 International Business Machines Corporation Journaling and integrity in mobile clouded collaborative spaces
KR101819236B1 (ko) * 2011-06-30 2018-01-17 한국전자통신연구원 영역기반 응용서비스 제공을 위한 장치 및 그 방법
US9557981B2 (en) * 2011-07-26 2017-01-31 Ford Global Technologies, Llc Method and apparatus for automatic module upgrade
US20130042231A1 (en) 2011-08-10 2013-02-14 Ford Global Technologies, Llc Methods and Apparatus for Software Updating
US9229704B2 (en) 2014-04-01 2016-01-05 Ford Global Technologies, Llc Smart vehicle reflash with battery state of charge (SOC) estimator
US10668353B2 (en) 2014-08-11 2020-06-02 Icuemotion Llc Codification and cueing system for sport and vocational activities
EP2993578A1 (en) * 2014-09-02 2016-03-09 Gemalto M2M GmbH Method for adapting firmware of a wireless communication device
NL2013640B1 (nl) * 2014-10-15 2016-10-04 N V Nederlandsche Apparatenfabriek Nedap Updaten van diermanagement labels.
US9769647B2 (en) 2016-02-22 2017-09-19 General Motors Llc Managing remote provisioning at a wireless device
CN105843655B (zh) * 2016-04-22 2018-09-18 中设设计集团股份有限公司 一种抗干扰的地磁车位检测器程序无线下载更新方法
CN109690478B (zh) * 2016-09-14 2022-06-10 瑞士优北罗股份有限公司 软件更新系统、空中固件更新系统和更新客户端装置的方法
JP6760813B2 (ja) * 2016-10-14 2020-09-23 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
US10496398B2 (en) * 2017-07-25 2019-12-03 Aurora Labs Ltd. Hot updates to ECU software using tool chain
CN109347931A (zh) * 2018-09-28 2019-02-15 四川长虹电器股份有限公司 一种基于分层交互设计的ota升级下载方法
US11639142B2 (en) 2019-01-11 2023-05-02 Ford Global Technologies, Llc Electronic control module wake monitor
EP3926463A1 (en) * 2020-06-18 2021-12-22 ABB Schweiz AG System for determining availability of software update for automation apparatus
CN112631637B (zh) * 2020-12-30 2024-04-02 重庆芯讯通无线科技有限公司 基于rtos的ota升级方法、系统、设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5637883A (en) * 1979-09-04 1981-04-11 Fanuc Ltd Information rewrite system
US5701492A (en) * 1996-03-29 1997-12-23 Canon Kabushiki Kaisha Fail-safe flashing of EPROM
KR20010007066A (ko) 1999-05-13 2001-01-26 아리에 가펑클 소프트웨어를 내장 시스템으로 다운로드하기 위한 방법 및장치
IL129947A (en) 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
JP3669619B2 (ja) * 1999-09-06 2005-07-13 富士通株式会社 無線端末装置のソフトウェア更新方法及びその装置
US6754894B1 (en) * 1999-12-03 2004-06-22 Command Audio Corporation Wireless software and configuration parameter modification for mobile electronic devices
JP2001356925A (ja) 2000-06-12 2001-12-26 Nec Corp 携帯電話機
US6834384B2 (en) 2001-03-14 2004-12-21 General Instrument Corporation Methods and apparatus for upgrading firmware in an embedded system
US6928579B2 (en) * 2001-06-27 2005-08-09 Nokia Corporation Crash recovery system

Also Published As

Publication number Publication date
US7810088B2 (en) 2010-10-05
EP1489501A1 (en) 2004-12-22
CN1620168A (zh) 2005-05-25
KR20040111195A (ko) 2004-12-31
KR100724878B1 (ko) 2007-06-04
US20040261073A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
CN100514991C (zh) 用于在移动站中执行有故障保护的空中传递软件更新的装置和方法
EP1429569B1 (en) Mobile station and method for selectively downloading components of a software by comparing component specific version numbers
US8572597B2 (en) Apparatus and method for performing an over-the-air software update in a dual processor mobile station
US8285268B2 (en) System and method for delta-based over-the-air software upgrades for a wireless mobile station
KR100566224B1 (ko) 무선 이동 단말기의 소프트웨어를 업그레이드하기 위한장치 및 방법
US7752618B2 (en) Apparatus and method for remote DLL linking of software upgrades for a wireless mobile station
EP0804046B1 (en) Method and apparatus for updating the software of a mobile terminal using the air interface
US6023620A (en) Method for downloading control software to a cellular telephone
US20050055595A1 (en) Software update method, apparatus and system
US7542759B2 (en) Method and apparatus for broadcasting software update information to mobile phones over a wireless communications network
US20120015642A1 (en) Firmware update method for mobile terminal and mobile terminal using the same
CN1284820A (zh) 可更新移动终端中程序的移动通信系统
JP4823239B2 (ja) 無線通信装置及び該装置を有する無線通信システム
CN101926209B (zh) 用于处置涉及传输率限制的信令消息的方法和装置
JP2004110610A (ja) リモートメンテナンス方式
KR100392378B1 (ko) 무선가입자망 단말기의 소프트웨어 업그레이드 방법
KR100699106B1 (ko) 유/무선 인터넷망을 이용한 프로그램 및 데이터 복구가 가능한 무선 단말기와 데이터 복구 시스템 및 방법
AU734670B2 (en) Method and apparatus for remotely upgrading control software in a cellular telephone
CA2498648A1 (en) Software update method, apparatus and system
AU2002325748A1 (en) Software update method, apparatus and system

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: 20090715

Termination date: 20180621