CN1585926A - 软件更新方法、设备和系统 - Google Patents

软件更新方法、设备和系统 Download PDF

Info

Publication number
CN1585926A
CN1585926A CNA028226658A CN02822665A CN1585926A CN 1585926 A CN1585926 A CN 1585926A CN A028226658 A CNA028226658 A CN A028226658A CN 02822665 A CN02822665 A CN 02822665A CN 1585926 A CN1585926 A CN 1585926A
Authority
CN
China
Prior art keywords
version
memory
core firmware
subregion
renewal
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
CNA028226658A
Other languages
English (en)
Other versions
CN100541430C (zh
Inventor
马克·弗雷泽
菲利普·A·里瓦德
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.)
Tetuo partner Co.
Quarterhill Inc
Original Assignee
Soma Networks Inc
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 Soma Networks Inc filed Critical Soma Networks Inc
Publication of CN1585926A publication Critical patent/CN1585926A/zh
Application granted granted Critical
Publication of CN100541430C publication Critical patent/CN100541430C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

一种用于远程更新至少一个连接到网络的电子装置上软件的系统。该电子装置具有划分为至少两个分区的非易失性重写存储单元,其中一个分区包含核心固件,且另一分区包含辅助软件。当在装置接收到更新时,将所更新的核心固件写入以重写在包含辅助软件的可重写存储单元内的分区。当这项完成并得到验证时,禁用由装置来执行存储在存储单元内的核心固件先前版本。然后,将更新辅助软件写入以重写核心固件旧版本。当完成该写入时,装置确定一个适当时间,以重写启动来执行更新软件。在另一个实施例中,从其所位于的分区将装置内的当前核心固件复制到另一分区,重写存储在那里的辅助软件。将接收到来更新装置的新核心固件重写到第一分区,在更新失败时,存在旧的复制核心固件,且当成功更新第一分区时,将辅助软件写入到第二分区,重写所复制的旧核心固件。这样,在装置常规操作中保留了核心固件和辅助软件在分区内的位置。

Description

软件更新方法、设备和系统
发明领域
本发明通常涉及一种用于更新位于远程的电子装置内的软件的方法、设备和系统。更具体的,本发明涉及一种用于更新位于远程的连接到网络的电子装置内的软件的方法、系统和设备,在此网络中,该装置可从更新失败中恢复,并通过网络完成更新。
发明背景
许多普通电子装置包括可重写存储器,其在当关断装置电源时,允许更改或替换在该装置内持续存在的软件或数据。目前,这样的可重写存储器通常是快速存储器(flash memory)或类似物,尽管可以采用其它类型的存储器或存储装置。快速存储器是一种非易失性的固态类型存储器,因为当关闭电源时它不丢失数据,同时可重写以容纳不同的数据。快速存储器流行是因为它紧凑、耐用、快速并可重写。例如,蜂窝电话使用快速存储器以保存实现电话功能、快速拨号号码,振铃音调、固件更新等的软件。因此,当实施新功能或故障修理(bugfixes)时,电子装置内的固件可以更新。
然而,快速存储器或其等同物不是没有缺点的。一个缺点就是,快速存储器非常贵。在制造商需要使消费者花费较低的装置中,必需设计该装置以最小化所需的快速存储器量。
虽然明确期望具有更新在所使用装置中的固件或其它软件或数据的能力,但是,更新电子装置内的快速存储器并不总是十分简单。例如,当多数蜂窝电话需要固件或其它软件更新时,必需将蜂窝电话带到当地服务中心,在那里将蜂窝电话经有线数据链路连接到保存更新软件的更新站来更新软件。如果在更新会话期间传送新软件出现问题,则将导致装置进入未知或不能工作的状态,能够重新设置该装置,并且简单地重新传送新软件,直至传送完成且装置运行正常为止。
然而,这不是一项吸引人的选择,因为它需要用户的主动参与或合作,他必需访问服务中心。对于一些装置,例如无线本地环用户站,把用户站带到服务中心意味着,除到服务中心的并不方便的旅程之外,在用户站通常在的驻留位置会暂时没有电话或数据服务。
先前已经做出通过装置所连接的网络来提供更新给装置内的非易失性可重写存储器。例如,蜂窝电话可以通过为其服务的无线网络接收用于其快速存储器软件更新。然而,这种技术中存在的问题是,如果传输失败或因为任何原因中断,装置可能进入未知或不工作状态。在这种情况下,和以上在服务中心进行更新的例子不同,试图重发射更新软件是不可能的,并将给用户留下一个不工作的装置,直至将此装置返回到服务中心。
对此问题的一个现有解决方案是,提供可重写存储器的独立存储库(bank)。Hansson的美国专利6,023,620教导了一种蜂窝电话系统,其中可重写存储器的一半是用于维持当前软件版本的存储库,而将更新软件下载到可重写存储器的另一半存储库中。一旦蜂窝电话确定传送成功,例如通过验证CRC,蜂窝电话切换到使用存储器的更新存储库,且包含旧软件的存储库可用于接收下一次更新。在Narayanaswamy等的美国专利6,275,931中教导了另一个类似现有技术解决方方案。这些配置防止在更新期间发生不能恢复的错误,但是需要两倍的昂贵的可重写存储器。
同样,以上讨论的现有技术更新方法通常需要装置用户的合作和参与,或者要求他们访问服务中心,或者要求他们通过网络接受或启动更新数据的传送。诸如那些对于网络运营者将要改进网络中的稳定性和容量的关键的更新会由于对用户不方便性而遭到他们的拒绝或另外推迟。此外,对于发明人已知的现有技术方法,必需独立执行网络中的各个装置的更新。
期望能有一种方法和系统,其能可靠更新连接到网络的装置的非易失性可重写存储器内的软件或数据,且其不需要在装置内双倍量的非易失性可重写存储器,并且其在多个装置上同时以及自动实现。
发明内容
本发明的一个目的是提供一种新的方法,系统和设备,其用于通过网络来更新电子装置内的软件,其避免或减轻至少现有技术上述已知缺点之一。
根据本发明的一个第一方面,提供了一种用于通过通信链路来远程更新至少一个电子装置的系统。该系统包括:更新服务器,易失性存储器,在所述至少一个电子装置内的非易失性可重写存储单元,以及在装置上执行的更新客户端。更新服务器操作用于通过通信链路传送包括核心固件以及辅助软件的更新到至少一个电子装置。易失性存储器用于暂时存储从更新服务器接收的传送。非易失性可重写存储单元被分为至少第一和第二分区,第一分区存储核心固件和辅助软件的版本之一,且第二分区存储核心固件和辅助软件的另一版本。更新客户端在装置上执行,以操作用于:(i)用接收到的存储在易失性存储器内的更新核心固件来重写存储在第一和第二分区之一内的辅助软件的版本,并验证该写入的成功;(ii)当下一次重新启动装置时,配置装置,以执行存储在(i)内的核心固件;(iii)用接收到的存储在易失性存储器内的更新辅助软件来重写存储在第一和第二分区另一个内的核心固件的版本,并验证该写入的成功;以及(iv)重新启动装置,以执行更新的核心固件以及更新的辅助软件。
根据本发明的另一方面,提供了一种更新连接到网络的多个远程装置内的软件的方法。该方法包括以下步骤:(i)将更新放在更新服务器上,该更新包括至少一个核心固件更新;(ii)标识连接到网络上的要更新的装置;(iii)从更新服务器通过网络传送更新到所标识的装置,每个所标识装置验证更新的接收,请求重新传输并接收任何先前未正确接收的更新部分;(iv)将所接收更新的核心固件部分写入到所分区的非易失性可重写存储单元并对其进行验证,该核心固件部分重写包含先前存储软件版本的分区,同时确保核心固件先前版本的有效副本总是存在于存储单元内;(v)将验证的更新核心固件分区标识为装置要使用的有效核心固件,并将核心固件的先前版本标识为不可用;以及(iv)重新启动装置,以装载并执行更新的软件。
可选的,在所接收到更新的核心固件部分被写入所分区的非易失性可重写存储单元之前,核心固件的先前版本可在存储在存储单元之内的辅助软件上复制并对其进行验证,将此副本标识为装置要使用的有效核心固件,且然后将原始的标识为不可用。
同样,更新可以包括更新辅助软件。由装置来接收并验证辅助软件,且然后在装置重新启动之前,用更新的辅助软件来重写不可用的核心固件的先前版本。
根据本发明的另一个方面,提供了一种用于通过通信链路来远程更新在至少一个电子装置内的核心固件的系统。该系统包括:在电子装置内的存储子系统,以及操作用于通过通信链路来传送更新到电子装置的更新服务器,该更新包括至少核心固件的更新版本。该存储子系统包括:非易失性可重写存储器,在其内存储有核心固件且足够大以存储辅助软件,但不足够大到可以同时存储核心固件、核心固件的更新版本、以及辅助软件。核心固件包括:指令,其用于(i)将核心固件更新版本写入非易失性可重写存储器中,从而不重写核心固件的先前版本,并可选地验证该写入,以及然后(ii)禁用核心固件的先前版本,从而在重新启动至少一个电子装置时可以装载并执行核心固件的更新版本。
核心固件还可以包括:指令,其用于写入辅助软件更新版本到非易失性可重写存储器内,从而重写至少禁用的核心固件先前版本的部分,但不重写核心固件的更新版本。可选地,该写入能够被验证。
存储子系统还可以包括:非易失性存储器,在其中存储了指令,该指令在当电子装置重新启动时被执行,并致使对非易失性可重写存储器进行扫描来寻找未禁用的核心固件版本。当查找到未禁用的核心固件版本时,则装载并执行该版本。
根据本发明的又一另一方面,提供了一种用于通过通信链路来远程更新至少一个电子装置内的核心固件和辅助软件的系统。该系统包括:在至少一个电子装置内的存储单元,其用于存储核心固件和辅助软件,以及更新服务器,其操作用于通过通信链路来传送更新到至少一个电子装置。该存储单元包括:非易失性可重写存储器,其内在第一分区存储有包括核心固件的第一存储内容,以及在足够大以存储第一存储内容的第二分区中,存储有足够小以被存储在第一分区的且包括辅助软件的第二存储内容。核心固件包括:更新客户端,其在接收到第一存储内容的更新版本后,将第一存储内容的更新版本写入到重写第二存储内容的第二分区,可选地对该写入进行验证,并禁用包含在第一分区中的第一存储内容,并且然后,在接收到第二存储内容的更新版本后,将第二存储内容的更新版本写入到重写所禁用的第一存储内容的第一分区,并重新启动电子装置。该存储单元还包括:非易失性存储器,其内存储有当电子装置重新启动时所执行的引导装载指令。该引导装载指令包括:指令,当执行该指令时,搜索非易失性可重写存储器以寻找未禁用的第一存储内容版本,以及当查找到一个时将电子装置的控制移交给存储在该存储内容中的核心固件。
另一选择是,在接收到第一存储内容的更新版本之后,更新客户端可将第一存储内容复制到重写第二存储内容的第二分区,将第一存储内容的更新版本写入到重写第一存储内容的第一分区,可选的验证该写入,并在接收到第二存储内容的更新版本之后,将第二存储内容的更新版本写入到第二分区,可选的验证该写入,并重新启动电子装置。
同样,另一选择是,在接收到第一存储内容的更新版本之后,更新客户端可减少第二分区的大小,从而它刚好足够大到可以存储第一存储内容的更新版本,将第一存储内容的更新版本写入到重写第二分区先前内容的第二分区,可选的验证该写入,并禁用存储在第一分区内的第一存储内容的版本,并且然后,在接收到第二存储内容的更新版本之后,增加第一分区的大小,以包括不是第二分区中的非易失性可重写存储器的任何部分,将第二存储内容的更新版本写入到重写第一分区先前内容的第一分区,可选的验证该写入,并重新启动电子装置。
可选的,更新客户端可进一步操作用于向更新服务器通知在给定时间该至少一个电子装置是否可用于更新,更新服务器响应于从更新客户端所接收的信息,以在当电子装置不可用于更新时推迟对电子装置的更新。更新服务器还可以为更新设定优先级,从而更新客户端可使在另外情况下不可用的电子装置可用于更新。
根据本发明的另一个方面,提供了一种用在电子装置内的存储子系统,该电子装置包括在其内存储有核心固件和辅助软件的非易失性可重写存储器。核心固件包括:指令,其用于将核心固件更新版本写入到非易失性可重写存储器内,从而重写至少辅助软件的一部分、但不重写核心固件的先前版本,验证核心固件更新版本,以及禁用核心固件先前版本,从而在重新启动电子装置时装载和执行核心固件更新版本。核心固件可以包括:指令,其用于将辅助软件更新版本写入到非易失性可重写存储器中,从而重写所禁用的核心固件先前版本的至少一部分,但不重写核心固件的更新版本。存储子系统还包括:非易失性存储器,其存储有指令,该指令在当电子装置重新启动时被执行,并致使对非易失性可重写存储器进行扫描以寻找未禁用核心固件版本,以及装载并执行该未禁用核心固件版本。
根据本发明的另一个方面,提供了一种用在电子装置内的存储子系统,该电子装置包括:非易失性可重写存储器,在其中存储有核心固件且其足够大到可以存储核心固件和辅助软件,但不足够大到可以同时存储核心固件。核心固件包括:指令,其用于将核心固件更新版本写入到非易失性可重写存储器内,从而不重写核心固件先前版本,验证核心固件更新版本,以及禁用核心固件先前版本,从而在重新启动电子装置时装载和执行核心固件更新版本。核心固件可包括:指令,其用于将辅助软件更新版本写入到非易失性可重写存储器中,从而重写核心固件先前版本的至少一部分,但不重写核心固件的更新版本。存储子系统还包括:非易失性存储器,其存储有指令,该指令在当电子装置重新启动时被执行,并致使对非易失性可重写存储器进行扫描以寻找未禁用核心固件版本,以及装载并执行该未禁用核心固件版本。
根据本发明的另一方面,提供一种用于电子装置内,能执行所存储的指令并接收这种指令的更新版本,一个用于存储这种指令的存储子系统,其包括:非易失性可重写存储器以及非易失性存储器。在该非易失性存储器中,存储了当电子装置重新启动时所执行的引导装载指令。在该非易失性可重写存储器中,在第一分区存储有第一存储内容,其包括至少允许电子装置重新启动、或当进行更新时如果电子装置重新启动则继续更新非易失性可重写存储器所需的指令;以及在足够大到可以存储第一存储内容的第二分区,存储有第二存储内容,其足够小到可以被存储在第一分区,并包括所有没有包含在电子装置重新启动之后正常操作所需的第一存储内容中的指令。存储在第一存储内容中的指令包括:指令,其在当接收到第一存储内容更新版本之后被执行时,将第一存储内容更新版本写入到重写第二存储内容的第二分区中,并禁用包含在第一分区的第一存储内容;以及指令,其在当接收到第二存储内容更新版本之后被执行时,将第二存储内容更新版本写入到重写所禁用的第一存储内容的第一分区,并重启电子装置。
另一选择是,存储在第一存储内容中的指令包括:指令,其在当接收到第一存储内容更新版本之后执行时,将第一存储内容复制到重写第二存储内容的第二分区,将第一存储内容的更新版本写入到重写第一存储内容的第一分区;以及指令,其在当接收到第二存储内容更新版本之后执行时,将第二存储内容更新版本写入到重写所禁用的第一存储内容的第二分区,并重新启动电子装置。
另一选择是,存储在第一存储内容中的指令还包括:指令,其在当接收到第一存储内容更新版本之后执行时,如果可能则减少第二分区的大小,从而它刚好可以足够大到可以存储第一存储内容更新版本,将第一存储内容的更新版本写入到重写第二分区先前内容的第二分区,并禁用存储在第一分区内的第一存储内容版本;以及指令,其在当接收到第二存储内容更新版本之后执行时,如果可能则增加第一分区的大小,以包括不是在第二分区内的非易失性可重写存储器的任何部分,将第二存储内容更新版本写入到重写第一分区先前内容的第一分区,并重新启动电子装置。
根据本发明的又一个方面,提供一种安装更新到存储在非易失性可重写存储器内的软件的方法,该非易失性可重写存储器没有足够大到同时保存更新和软件。该方法包括以下步骤:将更新划分为包括:分离可写部分,其包括可存储在不大于非易失性可重写存储器一半的核心部分;将非易失性可重写存储器划分为分离可重写部分,其包括核心部分,该核心部分包括不大于非易失性可重写存储器一半并包含对应于所更新核心部分的软件部分以及恰好足够大到可以保存更新的核心部分的辅助部分;将更新的核心部分写入到非易失性可重写存储器的辅助部分,并对它进行验证;禁用包含在非易失性可重写存储器核心部分的先前软件版本;将不包含在更新的核心部分的更新部分写入到非易失性可重写存储器的、不包括在非易失性可重写存储器核心部分的部分,并对它进行验证。
附图简要说明
现在将参考附加附图说明本发明的实施例,仅为示例起见,其中:
图1是根据本发明一个实施例的允许更新电子装置的网络框图;
图2是根据本发明一个实施例的更新站的框图;
图3是根据本发明一个实施例的可更新电子装置的框图,其包括存储单元;
图4a、4b和4c是根据本发明一个实施例的图3电子装置内的存储单元的框图;
图5a、5b和5c是根据本发明另一个实施例的图3电子装置内的存储单元的框图;
图6是根据本发明一个实施例的更新系统的分级结构框图;
图7是本发明更新处理实施例的流程图。
发明详细说明
现在参考图1,用标记号码20来一般性指示能更新至少一个电子装置内的软件或数据的无线网络。网络20包括:至少一个更新站,在此例子中是无线基站24,其操作用于通过双向通信链路32发射软件更新。网络20还包括:至少一个电子装置,例如用户站28a,28b,……,28n,其用于能够进行语音和数据的无线本地环。用户站28可以是在用于语音和数据的无线本地环内的客户房屋设备,销售终端的无线点,或任何其他诸如具有调制解调器的个人数目助理(PDA)、蜂窝电话、电缆调制解调器、膝上型电脑的电子装置,以及其他本领域技术人员想到的、和能通过通信链路32通信的合适电子装置。
由基站24服务的用户站的数目n根据可用无线带宽数量或用户站28的配置和要求而进行改变。为清楚目的,在此提及的对电子装置的更新仅对用户站28作出。然而,其他例如以上提及的、以及能通过通信链路32接收软件更新的电子装置也在本发明范围之内。
在网络20中,基站24可通过适当网关以及回程34连接到至少一个电信网络,例如基于陆线的数据交换网络30,公共交换电话网络33。回程34可以是例如T1,T3,E1,E3,OC3或其他适当陆线链路的链路,或可以是卫星或其他无线或微波信道链路,或任何其他本领域技术人员想到的适于作为回程操作的链路。基站24还可以包括或通过回程34或其他方式连接到软件更新服务器36,它包含用户用户站28软件负载。基站24还连接到位于更新服务器36内或在位于别处的为此目的而提供独立数据库服务器(未示出)内的用户数据库,例如在中心网络操作中心(将在以下讨论)内,它保存用户站28的当前软件负载记录。
在无线网络20内,在基站24和每个用户站28之间经无线波建立通信链路32,尽管可以采用包括导线、红外以及超声方法的其他物理连接方法。通信链路32可以在基站24和各自用户站28a,28b……,28n之间如所需的承载语音和数据信息。可以通过多种多路复用技术来实现通信链路32,包括TDMA,FDMA,CDMA,OFDM或例如GSM等的混合系统。此外,可将通信链路32安排到承载不同数据类型(例如语音通信、或数据传输、或为诸如最终用户通信或控制网络20的不同目的而采用的)的不同信道。在图1的实施例中,通信链路32上发射的数据是作为IP(互联网协议)分组发射,但也可采用任何适当类型的分组。
图2更详细显示了基站24的例子。基站24包括:一个或多个天线40,其用于在通信链路32上接收和发射无线通信。天线40连接到无线部分44,该无线部分接下来又连接到调制解调器48。调制解调器48连接到微处理器-路由器组件52,例如由Intel制造的Pentium IIITM处理器系统以及相关装置。应当理解微处理器-路由器组件52可如所期望的包括多个微处理器。此外,如果希望,可在独立单元内提供微处理器-路由器组件52的路由器功能。在微处理器-路由器组件52内实现的路由器功能以任何适当方式连接到回程34,从而将基站和至少一个电信网络30,33连接。基站24还可直接连接或通过回程34连接到更新服务器36,如上所述。
现在参考图3,更详细显示了用户站28的例子。用户站28包括:一个或多个天线60,用于在通信链路32上接收和发射无线通信。天线60连接到无线部分64,该无线部分64又连接到调制解调器68。调制解调器68连接到微处理器组件72,该组件连接到存储单元78。
微处理器组件72可以包括,例如Intel制造的StrongARM处理器,并执行多种功能,包括实现A/D-D/A转换,滤波器,编码器,解码器,数据压缩器,解压缩器和/或拆分分组。如图3所示,微处理器组件72还和调制解调器68以及一个或多个端口76相互连接,这些端口可以用于将用户站28连接到数据装置以及电话装置。电话装置的一个例子是电话。数据装置的例子包括:个人计算机、PDA等。相应的,微处理器组件72操作用于处理端口76和调制解调器68之间的数据。
在用户站28中,存储单元78包括两个主要的组成部分:(1)易失随机访问存储器(RAM)82,它可以是动态RAM(DRAM)或同步DRAM(SDRAM),微处理器组件72将其用于存储操作用户站28所需的指令以及数据;以及(2)非易失性可重写存储单元RSU86,它在用户站28内是快速存储器,用于存储数据,其包括指令,当关断用户站28电源时该指令不会丢失。存储单元78操作用于包含所有用户站28正常和期望功能所需的指令以及数据,包括:引导软件,操作系统,软件应用,无线资源管理软件,装置驱动器,以及数据文件。
正如本领域技术人员已知的,RAM82通常快于RSU86内使用的快速存储器,因此,在当前用户站28的优选实施例中,在多数情况下,在执行之前,微处理器组件72将指令和数据从RSU86复制到RAM82。在一些情况下,对于本领域技术人员来说是十分明显的,是直接从RSU86将指令和数据读取到微处理器组件72,然后在其上执行或操作。
微处理器组件72还操作用于如下所述的从RAM82将指令和数据写入到RSU86。
在用户站28,RAM82包含32M字节SDRAM,以及RSU86包含8M字节快速存储器。然而,并不特别限制RAM的数量和类型,并且可以使用其他类型非易失性可重写存储器,例如可以使用常规IDE和SCSI硬盘、光存储器存储装置以及EPROMS,而不是快速存储器。本领域技术人员可以想到其他类型的非易失性可重写存储器,同时他们也会理解,在本发明实施例的RSU86内使用此种其他可选非易失性可重写存储器需要对下述说明进行修正。
诸如在RSU86内所使用的快速存储器通常是按块读出和写入。块是可以写入以及在写入之前必需擦除的最小单位。(换句话说,快速存储器是“粒状的”(granular),如下面说讨论的,其对使用方式有影响。)本领域技术人员应当理解,该限制并不应用到可替换用户站28内的快速存储器的其他类型的非易失性可重写存储器的一些其他形式。目前用在用户站28内的特定快速存储器具有256K字节块的大小。现在参考图4a,示意地显示了RSU的初始分区。将RSU86划分为逻辑分区,该逻辑分区中每一个都是一个或多个逻辑连续的存储块。正如对本领域技术人员所显而易见的,术语“分区”和“逻辑分区”在此可互换使用。对于本发明的唯一限制是,除了在使用相同大小的分区的特定情况之外,这些分区应该是可以重新调整大小和/或重新部署。因此期望满足此要求的逻辑分区以及在某些例子中的物理分区都意图在本发明范围之内。
每个分区具有至少一个开始位置和为它所定义的长度/大小。正如本领域技术人员所知的,为某些目的将这些分区看作它们好像是独立的分离存储装置。例如,具有两个分区的硬盘对于运行在连接到该硬盘的计算机上的应用软件来说好像是两个独立硬盘。另外,本领域技术人员还知道,通常可以相加、移除、或重新调整逻辑分区以及某些物理分区的大小,从而在存储装置内提供灵活性。对于逻辑分区,通过修改存储在非易失性可重写存储器内的数据结构,或如在用户站28内的情况,按如下所述的在启动时重新构建来进行。数据结构包括诸如上述开始位置和大小/长度的数据,在存储装置内的物理位置和逻辑分区之间提供对应。逻辑分区还可以使不连续的存储位置对于应用看起来好像是连续存储块。例如,能这样划分快速ROM,从而对于应用来说偶数编号的块(即块0,2,4,6等)像是一个连续存储块,而对于应用来说奇数编号的块(即块1,3,5,7等)像是另一个连续存储块。本领域技术人员知道的许多其它分区方案以及安排都在本发明范围之内。在用户站28,RSU86初始被划分为三个分区,即引导分区104,核心固件分区108以及辅助软件分区112。
引导分区104位于RSU86的第一块内,并包含用于用户站28的引导装载固件。用户站28按以下方式配置:启动(引导)时,微处理器组件72首先执行在RSU86的第一块内查找到的指令,尽管也可以采用其它方案,例如读取RSU86的最后一块等。初始将RSU86的剩余块按如下所述方式划分为核心固件分区108以及辅助软件分区112。在图4a中,显示核心固件分区108占用了紧跟在引导分区104之后的块,并且辅助软件分区112占用核心固件分区108的最后一块和RSU86末端之间的块。如下所述,可以颠倒核心固件分区108和辅助软件分区112的初始定位,并如下所述作为更新结果的颠倒(参见图4c,其中通过将“’”添加到参考标记上来显示颠倒的顺序)。
在用户站28,在引导分区104内提供引导装载固件,以避免需要在用户站28内提供额外的ROM或其他非易失性存储包。然而,正如本领域技术人员知道的,如果在存储单元78内或用户站28内其他地方提供这样的ROM或其他非易失性存储包,则可将引导分区104置于其内,并从RSU86内省略,然后可将该RSU86安排为两个分区108和112。术语“存储子系统”包括存储单元78以及,如果引导分区104存储在ROM或另一非易失性存储包中,则包括ROM或其他非易失性存储包。
需要提供给用户站28的至少最低功能的核心固件被初始写入核心固件分区108。核心固件负责提供用户站28的基本操作。这些基本操作包括:存储器管理、任务处理、管理文件、输入/输出等,以及允许用户站28和基站24通信所需的至少最低量的功能  (但提供任何最终用户服务所需的足够功能不是必需的)。在用户站28,包括在核心固件内的操作系统包括版本2.4的Linux内核,并且引导分区104内的引导装载软件是Linux引导装载程序。分区108内的核心固件是cramfs文件系统,它是本领域技术人员已知的只读压缩文件系统。cramfs文件系统的文件可很容易获得(例如参见http://sourceforge.net/projects/cramfs/),在此不进一步讨论它的操作。
在启动时,一旦读取引导分区和执行此分区开始的内容,引导装载程序从RSU86的开始顺序地读取,以定位核心固件分区108的开始块以及大小。引导装载程序通过搜索超级块来完成此动作,如在cramfs文件系统中定义的。当查找到一个时,则将其假定为核心固件分区108内的压缩Linux内核的超级块。然后当操作系统开始时,引导装载程序使用存储在该超级块内的信息将内核镜像(image)解压缩到RAM82,并将核心固件分区108的开始块以及大小作为引导参数传递到Linux内核,从而可以确定RSU的分区。
虽然优选Linux,但是,其他操作系统的操作系统版本也在本发明范围之内。没有特别限定RSU86内的核心固件分区108的位置,并且当引导装载程序搜索RSU86的内容直至定位了有效核心固件分区108(即cramfs超级块时)的开始为止,可以占用在引导分区104之后的任何连续的逻辑块地址组(如果存在)。然而,从下面可以清楚,优选的,核心固件分区108位于紧跟在引导分区104之后,或在RSU86末尾,从而避免一个或多个存储块既不在核心固件分区108中也不在辅助软件分区112中的情况。
其余(balance)软件和数据之间存储在RSU86辅助软件分区112内。在下文中,软件即指辅助软件。没有特别限定辅助软件,并且其可以包括可选的装置驱动器,用户应用程序,系统软件应用程序,数据文件,软件以及诸如以下各项的最终用户应用:电话呼叫处理软件、语音和音频编解码器、软件滤波器、防火墙、应用程序、帮助文件、用户数据文件、数字媒体文件、以及其它这样的应用,还有本领域技术人员能想到的其它数据文件等。
辅助软件可以按照压缩文件系统格式存储,例如上述cramfs格式,或按照本领域技术人员能想到的其他任何适当方式。如果辅助软件是整体式的(monolithic),即软件的改变或更新需要替换该分区的所有内容,则cramfs或类似文件/存储系统是优选的替代选择。另一选择是,如果辅助软件不是整体式的,从而可如所需的将软件组件装载和/或卸载到该分区,则可以采用例如由Axis Communications AB,Emdalavagen 14,S22369,Lund Sweden开发的JFFS(日志Flash文件系统)(Journaling Flash File System)的适当系统。
通常,用户站28和基站24通信不需要存储在辅助软件分区112内的辅助软件,虽然用户站28发出或接收语音呼叫需要存储在辅助软件分区112中的辅助软件,但是最终用户数据连接(例如http浏览器会话)或其他最终用户功能。没有特别限定RSU86内的辅助软件分区112的位置,且只需占用逻辑连续的块组,但如上所述,优选的在RSU86的末尾块或紧跟在引导分区104之后。
如图4a所示,核心固件分区108的大小小于辅助软件分区112。然而,如果可用于分区到核心固件分区108以及辅助软件分区112的块编号是偶数号码,则它们可大小相等。在本实施例的用户站28中,RSU86内的总可用存储空间是8M字节,引导分区104是256K字节,核心固件分区108具有最大3.75M字节的大小,且辅助软件分区112具有减去核心固件分区108的大小的7.75M字节大小。在此描述的特定实施例中,辅助软件块的最大大小是4M字节。
由于本实施例的RSU86内存储块的总数是偶数,并且由于一块用于引导分区104,因此,奇数块编号可用于分区到核心固件分区108和辅助软件分区112中,并且因此核心固件分区108和辅助软件分区112的大小不会相等。从以下说明中可以清楚,关键限制是核心固件分区108必需不大于辅助软件分区112。然后核心固件的更新总可以写入辅助软件分区112,而不用重写现有核心固件分区108。在读了一下说明之后会更清楚。
当期望更新在核心固件分区108内的核心固件时,从更新服务器36在通信链路32上传送更新核心固件到用户站28,如下面详细说明的。接收该核心固件并将其存储在用户站28内的RAM82中,直至到用户站28的更新核心固件和辅助软件的全部传送完成为止,虽然同样希望如果需要,在传送辅助软件之前能够传送核心固件并将其安装。根据更新的大小和RAM82的大小,可能需要终止运行在用户站28上的任何处理,它们需要大量的RAM82。如下面将要讨论的,终止这些处理的能力是在决定更新用户站28之前要考虑的状态标准。
期望可使用多种技术来从更新服务器36传送核心固件和辅助软件到用户站28,例如经UDP/IP或TCP/IP的按照分组的软件传输。因为用于传送软件的通信链路32或物理介质(有线连接等等)可能遭受故障或错误,因此,在使用之前验证接收到的传送软件的正确性。不特别限定用于验证这种正确性的特定方法,并可对全部传送或部分传送采用检查和、CRC、数字签名等,如本领域技术人员已知的。如果接收到的内容不正确,并包含一个或多个错误,则可从更新服务器36重新发射其软件或适当分区到用户站28,直至在用户站28接收到完全正确的副本。
一旦在用户站28接收到更新/替换核心固件的完全正确副本,即新的核心固件,并存储在RAM82内,则通过将新核心固件写入先前由辅助软件分区112占用的RSU86部分的全部或部分来继续更新处理。为执行此重写,终止任何正在用户站28上执行的、且要求对辅助软件分区112中的辅助软件进行读取访问的剩余处理。一旦终止了(如果有的话)这些程序,从RAM82复制新的核心固件,并将其写入RSU86。在图4b中用新核心固件分区108’指示新的核心固件。如在此使用的,期望术语“重写”和“被重写的”包括将新数据放入非易失性存储器中以替换先前数据的必需操作,并且包括:在快速存储器的情况中,在将新数据写入其之前首先擦除该存储器(如果需要这一步骤)。
同样期望,为减少在RAM82内所需的存储器,可以像接收它时一样将更新核心固件以递增方式写入,例如在更新256K字节块中,假定在写入之前能够验证接收到的更新是正确接收的。在这样的例子中,由于在用户站28接收到给定数量的更新数据,因此,将其暂时存储在RAM82内并在RAM82验证,然后写入RSU86,同时下一接收的更新数据重写先前接收的、已被暂时存储在RAM82内的更新。这样,如下所述,可以在更新处理中无需终止下来自RAM82运行的各种应用和处理,至少直至用户站28重新启动时。
如图4b所示,在从所确定辅助软件分区112开始的偏移开始进行重写,从而新核心固件分区108’的末尾会和辅助软件分区112的末尾重合。在上面的例子中,如果RSU86总计大小是8M字节,且核心固件分区104大小是0.25M字节,辅助软件分区112大小是4M字节,且核心固件分区108大小是3.75M字节,则新核心固件分区108’重写到辅助软件分区112所在的偏移是从RSU86开始的4.25M字节,假定实际上核心固件分区104出现在RSU86的开始。
在写入新核心固件分区108’之后,由用户站28验证其内容,该用户站28从新核心固件分区108’读回内容,并将其和RAM82内的新核心固件副本比较。如果写入的新核心固件分区108’小于接收的来自RAM82的分区,则在下一接收分区重写暂时存储在RAM82内的上一分区之前,对这些更小分区的写入向RAM82内存储的分区进行验证。
在任何一种例子中,如果不能验证从新核心固件分区108’读取的内容,则新核心固件分区108’或新核心固件分区108’的相关部分的写入被再次执行,且验证/重写处理一直重复,直至内容得到验证为止。
当验证了新核心固件分区108’的内容是正确写入的时,对用户站28,将新核心固件分区108’标识为包含最新核心固件,并且然后通过将在核心固件分区108内的原始核心固件标记为“无效”来由用户站28执行对其的禁用。在用户站28,其中核心固件分区108以及108’包括cramfs格式的Linux内核等,通过将核心固件分区108的超级块重写来将在核心固件分区108内的核心固件标识为无效,从而将其改变为不再是有效超级块。一旦这样做,用户站28的下一次重新启动的引导装载程序将仅定位新核心固件分区108’的超级块,它是最新的有效核心固件分区,且用户站28从分区108’开始引导。
如从图4b中清楚看见的,以上在无效核心固件分区108内的结果以及辅助软件分区112的剩余分区不再包含有用数据(如果存在的话)。用户站28然后能够从RAM82将辅助软件写入(或如果还没有执行,则从更新服务器36将其下载到RAM82),以在核心固件分区108的存储空间内和辅助软件分区112的那个剩余分区(如果有的话)形成新的辅助软件分区112’,如图4c所示。另一选择是,用户站28可重新启动,以执行新的核心固件,并且可从更新服务器下载辅助软件,并将其存储在新的辅助软件分区112’。一旦以和上述用于核心固件相似的方式验证了新辅助软件的写入,用户站28可以执行辅助软件(假定它早已重新启动并正在运行新核心固件),或可以重新启动,从而让装载程序引导新核心固件分区108’内的更新的核心固件,并重启由核心固件和辅助软件两者所提供的所有服务。这样做时,操作系统会定位新核心固件分区108’的超级块,并且,如果辅助软件分区采用cramfs,则定位新辅助软件分区112’的超级块,并形成描述所重新分区的RSU86的数据结构。
如从上面说明所清楚的,RSU86内总是存在核心固件的有效副本,甚至在用户站28关闭、电源断开、需要重新启动、或其他更新处理中的中断时。在当用户站28在新核心固件分区108’写入和验证完成之前关闭,更新处理以被写入到辅助软件分区112上的新核心固件分区108’的情况中,用户站28将从旧核心固件分区108来引导,当下一次再开启该旧核心固件分区108时它仍是完整的。注意到缺少有效辅助软件分区112,且要么重新开始整个更新处理,要么从更新服务器36能够请求有效辅助软件的传送,并将其存储在RSU86内作为重新存储的辅助软件分区112,并且将更新处理推迟。例如当网络20使用过多,执行更新的容量不是立即可用时会选择后一选项。
假定执行了成功的更新,则每当期望再次更新用户站28内的核心固件时,新的核心固件分区108将重写辅助软件分区112’的一部分,以及新的辅助软件分区112将会重写旧的核心固件分区108’和旧的辅助软件分区112’的剩余分区,以再次获得图4a所示的配置。应当注意到,在新的核心固件分区108被验证之后并不是必需要擦除旧核心固件分区108’的超级块,因为如果在此阶段更新中断,则当发生重新启动时,引导装载程序会在到达旧核心固件分区108’之前定位并使用新的核心固件分区108。
每个随后的核心固件的更新都会导致用新核心固件分区重写现有辅助软件分区,并用新辅助软件分区重写旧的核心固件分区以及辅助软件分区的剩余部分。
应当注意,如在此使用的,期望术语“新辅助软件”包括以下两种情况:辅助软件中未发生变化且新辅助软件仅指下载到用户站28的未改变软件的新副本的情况,以及其中下载更新的或另外改变的辅助软件版本到用户站28的情况。
如图5a所示,如果期望在正常操作中使分区108和112的位置在RSU86内恒定,则可将“旧”核心固件分区108复制到“旧”辅助软件分区112上,以形成复制的旧核心固件分区108”。然后验证此旧核心固件分区108”副本的写入,一旦得到验证,则通过重写原始核心固件分区108的超级块来将其标识为无效,从而改变它,或使用任何其他适当方式。如果因为任何原因用户站28在该点要重新启动,则引导装载程序将定位并使用复制的核心固件分区108”的内容。
下面,将“新”核心固件从RAM82重写到原始核心固件分区108,如图5b所示,并进行验证。直至核心固件分区108的剩余分区的内容被验证以前,不将原始核心固件分区108的新核心固件的超级块写入到原始核心固件分区108中,此后将超级块写入并对其进行验证。然后通过重写或改变所复制的核心固件分区108”的超级块或通过其他任何适当方式来将其标识为无效。用此方式,在验证新核心固件分区108的写入之前需要装载核心固件的重新启动或其他事件可以替代地采用所复制的核心固件分区108”。
最后,从RAM82复制新辅助软件,从而形成辅助软件分区112,如图5c所示,且在使用之前验证此分区,然后用户站28再次处在其常规操作配置中。虽然此处理导致分区108,112在RSU86内总具有相同位置,但它需要执行额外的写入和验证操作,以将核心固件分区108的内容复制到所复制的核心固件分区108”,这就增加了执行更新所需的时间,并且如果RSU86是快速存储器,则可能导致RSU86更快损坏。
在本发明的本实施例中,更新在用户站28内的软件是一个受管理的处理。这在诸如提供初级电话线替换的无线本地环的关键网络或“总是开启”网络中特别重要。图6显示网络20的管理系统层次,其包括:网络操作中心(NOC)200,无线扇区管理器204,其用于网络20内基站24中的每个扇区,以及用户站更新客户端208,其用于由网络20服务的每个用户站28。
网络操作中心200是集中式设备,其由网络20的运营者控制,并且,除管理整个网络20的用户站更新之外,还执行其他网络管理功能,例如OAM&P等。无线扇区管理器204优选的位于网络20的各个基站24内,还可和更新服务器36其址或在其内实现。如果基站24是全向(单个扇区)基站,则在该基站24仅提供单个无线扇区管理器204。期望的是,更普遍的,基站24采用非全向(波束成形)天线,其允许基站服务于增强密度的用户站28。例如,如果采用60度波束成形天线,则基站24可配置成6个不同的无线扇区,每个扇区服务于由基站24服务的用户站28总数的一个子集。这样,在基站24提供6个无线扇区管理器204。最后,作为其核心固件的一部分的每个用户站28包括:更新客户端208,它在用户站28上执行。
在图6中,期望用虚线显示的无线扇区管理器204代表多个这样的无线扇区管理器204和它们相关的更新客户端,因为NOC200可服务几百个无线扇区管理器204,并通过它们,通过它们的更新客户端208来服务几千或更多用户站28。
当创建了用户站28的辅助软件或核心固件的更新时,并且网络20的运营者希望实现时,网络操作中心200确定装载到由网络20所服务的每个用户站28内的软件当前版本。正如本领域技术人员所知道的,可用多种方式执行该确定。在本发明实施例中,每当用户站28开启和/或每次执行更新之后,每个用户站28的更新客户端208向服务该用户站的无线扇区管理器204报告装载到用户站28的软件的当前版本。无线扇区管理器204将此信息转发给网络操作中心200,在此将该信息存入适当数据库。正如本领域技术人员已知的,可采用不同技术确定每个用户站28的当前装载软件,包括以适当间隔轮询更新客户端208等。
一旦确定了网络内20或网络20内用户站28的兴趣子集内的(例如,网络运营者可能仅对更新特定城市内的用户站28感兴趣)每个用户站的当前软件装载,网络操作中心200确定应当更新的用户站28。通常,期望更新网络20内的所有用户站28,但还期望要求能更新用户站28的选定子集,或甚至是单个用户站28。
网络操作中心200确保所期望更新软件在更新服务器或服务器36上是可用的,该服务器服务具有要更新用户站28的无线扇区管理器204,如果需要,则传送更新的软件到更新服务器36。然后,网络操作中心200指示具有要更新用户站28的无线扇区管理器204识别那些用户站28,并指示它们起动更新。
一旦无线扇区管理器204从网络操作中心200接收到更新指示,它确定它所管理的要更新的用户站28的活动级别或状态。理想的,仅当它们在通信链路32上所需容量不再另外需要、和/或用户站28没有执行会使更新处理中断的最终用户处理时才执行更新。相应的,无线扇区管理器204首先确定它可以在通信链路32上空闲出和/或具有发射更新的容量。期望的是,通常在最终用户未使用通信链路32的深夜或凌晨执行这样的更新。然而,同样期望能由指示无线扇区管理器204的网络操作中心200给基本更新(例如稳定网络20操作或提供增强的安全性所需的更新等)分配更新优先级,以尽早执行更新,终止或中断其它对通信链路32容量的使用和/或在要更新的用户站28中断,降级或中止最终用户的活动。
一旦由无线扇区管理器204确定在通信链路32上它具有发射更新到用户站28的容量,或在产生了容量的优先级更新的情况中,它查询每个要更新的用户站28中的更新客户端208,以确定这些用户站28的状态。该状态指示目前在该用户站28上发生的活动的级别和/或类型。
例如,用户站28可以指示它已空闲了10分钟(没有最终用户活动),或指示当前正进行用于最终用户的http会话等。因为通常将更新下载的传送首先存储在RAM存储器82内,如果选定来存储下载的必要存储器数量(该数量可以是对所有更新而预定的数量,或可由无线扇区管理器204在它的状态查询中提供给更新客户端208)在RAM存储器82内不可用,则用户站28将在其给无线扇区管理器204的状态报告中包含此信息。另一选择是,用户站23内的更新客户端208可以确定它是否能终止使用RAM的处理和/或应用,从而腾空存储器空间,并且如果可能,将在发送状态响应至无线扇区管理器204之前就这样做。
无线扇区管理器204检查从每个要更新的用户站28接收的状态响应,并确定此时可以将哪些用户站包括在更新中。然后,这些用户站28中每一个的更新客户端208从无线扇区管理器204接收更新信息传输,该无线扇区管理器204通知用户站28它们会经历更新,并指明要在其上发射更新的通信链路32的信道。
然后无线扇区管理器204启动从更新服务器36到被指示处理更新的用户站28的对更新的多点传送传输。在本发明的实施例中,经是以多点传送传输经UDP在IP上来发射更新,且每个发射分组包括CRC校验和,以验证分组的正确接收以及顺序编号或其他唯一标识符,从而每个用户站28可以确定它是否正确接收到所有必需分组。在由用户站28不正确接收或连同丢失一个或多个分组的情况中,当传输进行时,该用户站28可以发送重新发射请求给无线扇区管理器204,且所请求的分组能够被重新发射。优选的,在多点传送信道上执行此重新传输,并可用于所有正在更新的用户站28(在多于一个用户站请求重新传输相同分组的情况中),尽管也期望为此目的在由无线扇区管理器204为用户站28所建立通信链路32的专用信道上进行此重新传输至用户站。
在实施例中,一旦下载并验证了整个更新,在用户站中的更新客户端必须确定何时执行RSU86的更新。因为更新将要求重新启动(重新开启)用户站28,因此,更新客户端208试图选择对最终用户出现最小服务中断(如果有的话)的更新时间。同样,期望这种更新通常在深夜或凌晨或最终用户使用用户站28的可能性低的任何其他时间执行。
然而,在用户站28内的更新客户端208还可以通过确定发生哪些最终用户活动和/或自从上次最终用户活动的时间来作出关于何时执行更新的智能决定。例如,多于20分钟以前进行上次最终用户语音或数据连接的用户站28可以做出合理假设,它在随后执行更新的几分钟内不会被最终用户所使用。
同样,还期望某些更新对网络20操作具有充分的重要性,它们将具有分配给它们的优先级,该优先级能使更新客户端208终止在用户站上的最终用户活动,以确保执行更新。
当更新客户端208已确定可以执行更新时,执行上述讨论的处理,用新固件分区108’或复制分区108等重写辅助软件分区112。
一旦执行了成功的更新,并且用户站28已重新启动并执行新的核心固件和/或辅助软件,则发送更新状态消息给无线扇区管理器204,通知其更新已完成,并且验证由用户站28执行的软件版本编号。然后无线扇区管理器204更新它对已被更新以及那些仍需要更新的用户站28的记录。
然后无线扇区管理器204通过一次或多次迭代,来对剩余的要更新的用户站28重复该处理。期望直至无线扇区内预先选定比例的要更新的用户站28可用于更新时才开始更新。例如能够选定除非至少其扇区内50%的要更新的用户站28可用于更新,否则无线扇区管理器204不会开始更新。如果没有达到此阈值,则将更新推迟直至满足此阈值,或直至网络操作中心降低此阈值(例如到35%),或增加更新优先级,从而强迫用户站28实施更新。
由无线扇区管理器204通知网络操作中心200更新的状态。因此,网络操作中心200可以确定已更新的用户站28的数量,以及剩余要更新的数量。如果网络操作中心200观察到少于其预期的用户站28执行了更新,则它可为更新提供优先级,从而强迫用户站28准备好进行更新等。
虽然期望在多数情况下核心固件和辅助软件更新可作为一个更新来发向射,但是,同时也期望某些情况下需要首先发射核心固件更新,在用户站28成功安装该更新之后再发射辅助软件更新。还期望在某些情况中需要仅更新辅助软件。在此种情况下时,不更新核心固件,并在现有辅助软件分区112写入更新的辅助软件。
图7显示上述更新处理的流程图。当网络操作中心200想要更新网络20内的装置时,在步骤300,确定需要安装更新的装置。在步骤304,传送更新到更新服务器36(或多个服务器)或使该对更新服务器36(或多个服务器)可用,此将更该新传送到要更新的装置。
在步骤308,每个无线扇区管理器204确定它服务的哪些装置可用于更新。在步骤312,无线扇区管理器204指示那些装置它们将被更新,并提供更新通信的细节,例如多点传送参数等。
在步骤316,发射更新到要更新的装置。每个预期装置或者在传输完成时或者在传输发生时验证传输更新的接收,且在步骤320,具有所接收的错误传输部分或具有所丢失的接收传输部分的装置向无线扇区管理器204通知这一事实,并且该无线扇区管理其204会重新发射这些部分。
在步骤324,一旦装置获得更新的正确副本,则该装置确定执行更新的适当时间。如上所述,该确定可以是无关重要的(即不考虑装置状态就执行更新),或取决于装置的状态,包括例如当前在装置上执行的处理,自从执行最终用户处理的时间等的因素。
当获得更新和装置的重新启动时,在步骤328,该装置向管理它的无线扇区管理器204通知它已被更新,并能够提供其当前装载软件的细节。
在步骤332,每个无线扇区管理器204确定是否有它管理的装置要更新。如果存在这样的装置,根据需要再次执行步骤308到328。如果没有这样的装置,更新程序在步骤336完成。
虽然在此说明的实施例是本发明的特定实施,但是应当理解,这些实施例的组合、子集以及变化都在本发明范围内。
上述本发明的实施例仅是本发明的例子,并且本领域技术人员还可以实现它的替代方案和修正,而不背离仅有附随权利要求限定的本
发明的范围。

Claims (28)

1.一种更新在多个远程装置内的软件的方法,该装置中每一个具有的非易失性可重写存储容量都不足够大到可以存储软件的更新和先前的版本这两者,且该装置中每一个都连接到网络,该方法包括以下步骤:
(i)将更新放在更新服务器上,该更新包括至少核心固件更新;
(ii)标识连接到网络的要更新的装置;
(iii)从更新服务器通过网络传送更新到所标识的装置,每个所标识的装置验证该更新的接收,请求重新传输并接收任何先前未正确接收的更新部分;
(iv)将所接收更新的核心固件部分写入到非易失性可重写存储单元中,从而不重写目前存储在存储单元内的核心固件的先前版本;
(v)验证写入到存储单元的所接收更新的核心固件部分;
(vi)将所验证的更新核心固件标识为要由该装置所使用的有效核心固件,并将核心固件的先前版本标识为不可用;以及
(vii)重新启动该装置以装载并执行所更新的软件。
2.权利要求1的方法,其中在步骤(iii)和(iv)之间,将核心固件先前版本复制到存储在存储单元内的辅助软件上并对其进行验证,将该副本标识为要由该装置所使用的有效核心固件,并将原始的标识为不可用。
3.根据权利要求2的方法,其中更新进一步包括所更新的辅助软件,且由该装置接收并验证此辅助软件,以及其中在步骤(vi)和(vii)之间,用辅助软件更新来重写不可用的核心固件先前版本。
4.根据权利要求1的方法,其中更新进一步包括所更新的辅助软件,且由该装置接收并验证此辅助软件,以及其中在步骤(vi)和(vii)之间,用辅助软件更新来重写不可用的核心固件先前版本。
5.根据权利要求1-4中任何一个的方法,其中步骤(ii)还包括该装置向网络通知其是否可用于更新。
6.一种用于通过通信链路来远程更新在至少一个电子装置内的核心固件的系统,该系统包括:
在至少一个电子装置内的存储子系统,包括:
非易失性可重写存储器,在其中存储有核心固件,以及其足够大到可以存储辅助软件,但不够大到可以同时存储核心固件、核心固件更新版本以及辅助软件,该核心固件包括指令,其用于
将核心固件更新版本写入到非易失性可重写存储器中,
从而不重写核心固件先前版本,以及然后禁用核心固件
先前版本,从而当重新启动该至少一个电子装置时,装
载并执行核心固件更新版本;以及
更新服务器,其操作用于通过通信链路来传送更新到至少一个电子装置,该更新包括核心固件的更新版本。
7.根据权利要求6的系统,其中核心固件包括指令,其用于将辅助软件的更新版本写入到非易失性可重写存储器,从而重写至少一部分禁用的核心固件先前版本,但不重写核心固件更新版本。
8.根据权利要求7的系统,其中存储子系统额外包括:非易失性存储器,该非易失性存储器包括指令,该指令在当电子装置重新启动时被执行,并致使对非易失性可重写存储器进行扫描以寻找未禁用的核心固件版本,以及装载并执行那个核心固件版本。
9.一种用于通过通信链路来远程更新至少一个电子装置内的核心固件和辅助软件的系统,该系统包括:
在至少一个电子装置内的存储单元,其用于存储核心固件和辅助软件,包括:
非易失性可重写存储器,在其中存储有:
在第一分区,有包含核心固件的第一存储内容,以及在足够大到可以存储第一存储内容的第二分区,有足够小到可以存储在第一分区且包含辅助软件的第二存储内容,
核心固件包括更新客户端,该更新客户端,
在接收到第一存储内容的更新版本之后,
将第一存储内容的更新版本写入到重写第二存储内容的第二分区,以及禁用包含在第一分区中的第一存储内容,以及然后
在接收到第二存储内容的更新版本之后,
将第二存储内容的更新版本写入到重写所禁用的第一存储内容的第一分区,并重新启动电子装置;以及
非易失性存储器,其内存储有电子装置重新启动时所执行的引导装载指令,该引导装载指令包括:指令,当执行该指令时,搜索非易失性可重写存储器以寻找未禁用的第一存储内容版本,以及当查找到一个时将电子装置的控制移交给存储在该存储内容中的核心固件,以及
更新服务器,其操作用于通过通信链路传送更新到至少一个电子装置,该更新包含第一和第二存储内容的更新版本。
10.一种用于通过通信链路来远程更新至少一个电子装置内的核心固件和辅助软件的系统,该系统包括
在至少一个电子装置内的存储单元,其用于存储核心固件和辅助软件,包括:
非易失性可重写存储器,其内存储有:
在第一分区,有包含核心固件的第一存储内容,以及在足够大到可以存储第一存储内容的第二分区,有足够小到可以存储在第一分区且包含辅助软件的第二存储内容,
核心固件包括更新客户端,该更新客户端,
在接收到第一存储内容的更新版本之后,
将第一存储内容复制到重写第二存储内容的第二分区,将第一存储内容的更新版本写入到重写第一存储内容的第一分区,以及然后
在接收到第二存储内容的更新版本之后,
将第二存储内容的更新版本写入第二分区,并重新启动电子装置;以及
非易失性存储器,其内存储有电子装置重新启动时所执行的引导装载指令,该引导装载指令包括:指令,当执行该指令时,搜索非易失性可重写存储器以寻找未禁用的第一存储内容版本,以及当查找到一个时将电子装置的控制移交给存储在该存储内容中的核心固件,以及
更新服务器,其操作用于通过通信链路传送更新到至少一个电子装置,该更新包含第一和第二存储内容的更新版本。
11.一种用于通过通信链路来远程更新至少一个电子装置内的核心固件和辅助软件的系统,该系统包括:
在至少一个电子装置内的存储单元,其用于存储核心固件和辅助软件,包括:
非易失性可重写存储器,其内存储有:
在第一分区,有包含核心固件的第一存储内容,以及在足够大到可以存储第一存储内容的第二分区,有足够小到可以存储在第一分区且包含辅助软件的第二存储内容,
核心固件包括更新客户端,该更新客户端,
在接收到第一存储内容的更新版本之后,
如果可能,则减少第二分区的大小,从而它恰好足够大到可以存储第一存储内容的更新版本,将第一存储内容的更新版本写入到重写第二分区先前内容的第二分区,以及禁用存储在第一分区存储的第一存储内容版本,以及然后在接收到第二存储内容的更新版本之后,
如果可能,增加第一分区的大小,以包括不在第二分区内的非易失性可重写存储器的任何部分,
将第二存储内容的更新版本写入重写第一分区先前内容的第一分区,并重新启动电子装置;以及
非易失性存储器,其内存储有电子装置重新启动时所执行的引导装载指令,该引导装载指令包括:指令,当执行该指令时,搜索非易失性可重写存储器以寻找未禁用的第一存储内容版本,以及当查找到一个时将电子装置的控制移交给存储在该存储内容中的核心固件,以及
更新服务器,其操作用于通过通信链路传送更新到至少一个电子装置,该更新包含第一和第二存储内容的更新版本。
12.根据权利要求6-11中任意一个的系统,其中写入到非易失性可重写存储器是经验证的。
13.根据权利要求12的系统,其中更新客户端进一步操作用于向更新服务器通知在给定时间该至少一个电子装置是否可用,更新服务器响应于从更新客户端接收的信息,以在当该电子装置不可用于更新时延迟到该电子装置的更新。
14.根据权利要求13的系统,其中更新服务器可以给更新优先级,从而更新客户端可使电子装置可用于在另外情况下是不可用的更新。
15.一种用于电子装置内的存储子系统,包括:
非易失性可重写存储器,其中存储有核心固件和辅助软件,核心固件包括:指令,其用于
将核心固件更新版本写入到该非易失性可重写存储器,从而重
写至少一部分辅助软件,但不重写核心固件先前版本,
验证核心固件更新版本,以及
禁用核心固件先前版本,从而当重新启动该至少一个电子装置时,装载并执行核心固件更新版本。
16.一种用于电子装置内的存储子系统,包括:
非易失性可重写存储器,其中存储有核心固件,且其是足够大到可以存储核心固件和辅助软件,但不足够大到可以同时存储核心固件、核心固件的更新版本以及辅助软件,该核心固件包括指令,该指令用于
将核心固件更新版本写入到该非易失性可重写存储器,从而不重写核心固件先前版本,
验证核心固件更新版本,以及
禁用核心固件先前版本,从而当重新启动该至少一个电子装置时,装载并执行核心固件更新版本。
17.根据权利要求15或16的存储子系统,其中核心固件包括:指令,其用于将辅助软件的更新版本写入到非易失性可重写存储器,从而重写至少一部分禁用的核心固件先前版本,但不重写核心固件更新版本。
18.根据权利要求17的存储子系统,还包括:
非易失性存储器,其包含:指令,该指令在当电子装置重新启动时执行,并致使
扫描非易失性可重写存储器以寻找未禁用核心固件版本,以及装载并执行该未禁用的核心固件版本。
19.为用于能执行所存储的指令以及接收这种指令的更新版本的电子装置,一种用于存储这种指令的存储子系统,包括:
非易失性可重写存储器,其内存储有:
在第一分区,有第一存储内容,其包括至少允许电子装置重新启动、或当进行更新时如果电子装置重新启动则继续更新非易失性可重写存储器所需的指令;以及
在足够大到可以存储第一存储内容的第二分区,有第二存储内容,其足够小到可以被存储在第一分区,并包括所有没有包含在电子装置重新启动之后正常操作所需的第一存储内容中的指令,
在第一存储内容中所存储的指令包括:
指令,其在当接收到第一存储内容的更新版本之后被执行时,将第一存储内容更新版本写入到重写第二存储内容的第二分区中,并
禁用包含在第一分区的第一存储内容;以及
指令,其在当接收到第二存储内容更新版本之后被执行时,将第二存储内容更新版本写入到重写所禁用的第一存储内容的第一分区,并
重启电子装置;以及
非易失性存储器,其内存储有电子装置重新启动时所执行的引导装载指令,该引导装载指令包括:指令,当执行该指令时,搜索非易失性可重写存储器以寻找未禁用的第一存储内容版本,以及当查找到一个时将电子装置的控制移交给存储在该存储内容中的指令。
20.为用于能执行所存储的指令以及接收这种指令的更新版本的电子装置,一种用于存储这种指令的存储子系统,包括:
非易失性可重写存储器,其内存储有:
在第一分区,有第一存储内容,其包括至少允许电子装置重新启动、或当进行更新时如果电子装置重新启动则继续更新非易失性可重写存储器所需的指令;以及
在足够大到可以存储第一存储内容的第二分区,有第二存储内容,其包括所有没有包含在电子装置重新启动之后正常操作所需的第一存储内容中的指令,
在第一存储内容中所在存储的指令包括:
指令,其在当接收到第一存储内容的更新版本之后被执行时,
将第一存储内容复制到重写第二存储内容的第二分区中,
将第一存储内容更新版本写入到重写第一存储内容的第一分区中,以及
指令,其在当接收到第二存储内容更新版本之后被执行时,
将第二存储内容更新版本写入到重写所禁用的第一存储内容的第一分区,并
重启电子装置;以及
非易失性存储器,其内存储有电子装置重新启动时所执行的引导装载指令,该引导装载指令包括:指令,当执行该指令时,搜索非易失性可重写存储器以寻找未禁用的第一存储内容版本,以及当查找到一个时将电子装置的控制移交给存储在该存储内容中的指令。
21.为用于能执行所存储的指令以及接收这种指令的更新版本的电子装置,一种用于存储这种指令的存储子系统,包括:
非易失性可重写存储器,其内存储有:
在要么以非易失性可重写存储器的起始为开始、要么以非易失性可重写存储器的末尾为结束的连续的第一分区中,有第一存储内容,其包括至少允许电子装置重新启动、或当进行更新时如果电子装置重新启动则继续更新非易失性可重写存储器所需的指令,以及
在占用不在第一分区之内的非易失性可重写存储器部分且足够大到可以存储第一存储内容的第二分区中,有第二存储内容,其包括所有电子装置重新启动之后正常操作所需的且没有包含在第一存储内容中的指令,
在第一存储内容中所存储的指令包括:
指令,其在当接收到第一存储内容的更新版本之后被执行时,
如果可能,则减少第二分区的大小,从而它恰好足够大到可以存储第一存储内容的更新版本,将第一存储内容的更新版本写入到重写第二分区先前内容的第二分区,以及
禁用存储在第一分区的第一存储内容,以及
指令,其在接收到第二存储内容的更新版本之后被执行时,
如果可能,则增加第一分区的大小,以包括不是第二分区中的非易失性可重写存储器的任何部分,
将第二存储内容的更新版本写入到重写第一分区先前内容的第一分区,并
重新启动电子装置;以及
非易失性存储器,其内存储有电子装置重新启动时所执行的引导装载指令,该引导装载指令包括:指令,当执行该指令时,搜索非易失性可重写存储器以寻找未禁用的第一存储内容版本,以及当查找到一个时将电子装置的控制移交给存储在该存储内容中的指令。
22.一种以核心固件更新版本来更新与辅助软件一同存储在电子装置的非易失性可重写存储器内的核心固件的方法,包括以下步骤:
(i)将核心固件更新版本写入非易失性可重写存储器中,从而重写辅助软件的至少一部分,但不重写核心固件的先前版本;以及
(ii)禁用核心固件的先前版本,从而在重新启动电子装置时可以装载并执行该核心固件的更新版本。
23.一种以核心固件和辅助软件更新版本来更新存储在电子装置非易失性可重写存储器内的核心固件和辅助软件先前版本的方法,包括以下步骤:
(i)将核心固件更新版本写入到非易失性可重写存储器中,从而重写至少一部分辅助软件,但不重写核心固件先前版本;
(ii)禁用核心固件先前版本,从而当重新启动该电子装置时,装载并执行该核心固件更新版本;以及
(iii)将辅助软件更新版本写入到非易失性可重写存储器中,从而不重写核心固件更新版本。
24.根据权利要求22或23的方法,其中,当重新启动电子装置时,对非易失性可重写存储器进行扫描以寻找未禁用的核心固件版本,以及然后装载并执行那个核心固件版本。
25.一种将更新安装到存储在非易失性可重写存储器内的软件的方法,该存储器不足够大到容纳该更新和该软件两者,该方法包括以下步骤:
将更新分为分离的可写部分,其包括可存储在不大于非易失性可重写存储器一半的核心部分;
将非易失性可重写存储器分为分离的可重写部分,其包括:
核心部分,该核心部分不大于非易失性可重写存储器的一半且包含对应于更新的核心部分的软件部分,以及
辅助部分,其恰好足够大到可以容纳更新的核心部分;
将更新的核心部分写入到非易失性可重写存储器的辅助部分并验证它;
禁用包含在非易失性可重写存储器核心部分的先前软件版本;以及
将未包括在更新核心部分的更新部分写入到未包括在非易失性可重写存储器核心部分内的非易失性可重写存储器部分,并验证它。
26.一种用于通过通信链路来远程更新至少一个电子装置的系统,所述系统包括:
更新服务器,其操作用于通过通信链路来传送更新到至少一个电子装置,该更新包括核心固件和辅助软件;
易失性存储器,其暂时存储从更新服务器接收的传送;
在所述至少一个电子装置内的非易失性重写存储单元,其分为至少第一和第二分区,第一分区存储核心固件和辅助软件版本之一,以及第二分区存储核心固件和辅助软件另一版本;以及
在该装置上执行更新客户端,且操作用于:
(i)用所接收的存储在易失性存储器内的更新核心固件来重写存储在第一和第二分区其中之一的辅助软件版本,并验证此写入的成功;
(ii)当下一次该装置重新启动时,配置该装置来执行存储在(i)的核心固件;
(iii)用所接收的存储在易失性存储器内的更新辅助软件来重写存储在第一和第二分区的另一个中的核心固件版本,并验证此写入的成功;
(iv)重新启动该装置,以执行更新的核心固件和更新的辅助软件。
27.根据如权利要求26的系统,其中所述更新客户端进一步操作用于向更新服务器通知在给定时间该装置是否可用于更新,更新服务器响应于从更新服务器所接收的信息,以在当该装置不可用于更新时延迟到该装置的更新。
28.根据权利要求27所要求的系统,其中更新服务器可以给更新定优先级,从而更新客户端使该装置可用于在另外情况下不可用的更新。
CNB028226658A 2001-09-17 2002-09-17 软件更新方法、设备和系统 Expired - Fee Related CN100541430C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002357382A CA2357382A1 (en) 2001-09-17 2001-09-17 Software update method, apparatus and system
CA2,357,382 2001-09-17

Publications (2)

Publication Number Publication Date
CN1585926A true CN1585926A (zh) 2005-02-23
CN100541430C CN100541430C (zh) 2009-09-16

Family

ID=4169991

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028226658A Expired - Fee Related CN100541430C (zh) 2001-09-17 2002-09-17 软件更新方法、设备和系统

Country Status (7)

Country Link
US (1) US20050055595A1 (zh)
EP (1) EP1461694A2 (zh)
JP (1) JP2005502971A (zh)
CN (1) CN100541430C (zh)
CA (1) CA2357382A1 (zh)
MX (1) MXPA04002527A (zh)
WO (1) WO2003025742A2 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100383738C (zh) * 2005-02-28 2008-04-23 乐金电子(中国)研究开发中心有限公司 一种便携终端的程序动态载入装置及方法
CN100403836C (zh) * 2005-06-10 2008-07-16 华为技术有限公司 终端设备软件/固件下载更新方法
CN100416503C (zh) * 2005-11-04 2008-09-03 中兴通讯股份有限公司 一种软件版本更新的方法
CN100454253C (zh) * 2006-04-29 2009-01-21 华为技术有限公司 一种终端软件升级方法及终端设备
CN101739262A (zh) * 2008-11-11 2010-06-16 英业达股份有限公司 固件更新方法及应用其的电子装置
CN101667133B (zh) * 2009-09-30 2012-09-05 威盛电子股份有限公司 固件更新方法和使用该方法更新固件的芯片
CN103294503A (zh) * 2012-02-24 2013-09-11 纬创资通股份有限公司 伺服器部署系统及数据更新的方法
CN104144075A (zh) * 2013-05-10 2014-11-12 韦特柯格雷控制系统有限公司 减小在升级期间生产控制的停机时间的方法
CN106104474A (zh) * 2013-12-26 2016-11-09 金雅拓股份有限公司 用于更新低存储量装置上的固件的方法
CN107256161A (zh) * 2017-06-13 2017-10-17 广发证券股份有限公司 基于electron技术的客户端升级方法
CN109101257A (zh) * 2018-08-16 2018-12-28 珠海格力电器股份有限公司 一种开放升级权限的循环远程固件更新系统及其方法
CN109918085A (zh) * 2009-12-21 2019-06-21 英特尔公司 提供软件分发和更新服务而不管端点机的状态或物理位置
CN109923518A (zh) * 2016-10-31 2019-06-21 哈曼贝克自动系统股份有限公司 用于安全关键系统的软件更新机制
CN110083305A (zh) * 2018-01-25 2019-08-02 爱思开海力士有限公司 存储器系统及其操作方法
CN110333881A (zh) * 2019-03-22 2019-10-15 中国电子科技集团公司第五十四研究所 一种基于星载fpga处理的载荷类设备软件在轨重构方法
CN111124459A (zh) * 2018-10-31 2020-05-08 阿里巴巴集团控股有限公司 一种fpga云服务器服务逻辑的更新方法及装置
CN111352580A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 存储装置及其操作方法
CN111480142A (zh) * 2017-12-22 2020-07-31 西门子股份公司 在运行期间对软件密集型系统的无缝和安全升级
CN112559002A (zh) * 2019-09-26 2021-03-26 上海汽车集团股份有限公司 车辆应用的更新方法、设备及存储介质

Families Citing this family (231)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548787B2 (en) 2005-08-03 2009-06-16 Kamilo Feher Medical diagnostic and communication system
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
US8266657B2 (en) 2001-03-15 2012-09-11 Sling Media Inc. Method for effectively implementing a multi-room television system
US9307407B1 (en) 1999-08-09 2016-04-05 Kamilo Feher DNA and fingerprint authentication of mobile devices
US9373251B2 (en) 1999-08-09 2016-06-21 Kamilo Feher Base station devices and automobile wireless communication systems
US7260369B2 (en) * 2005-08-03 2007-08-21 Kamilo Feher Location finder, tracker, communication and remote control system
US20050108096A1 (en) * 1999-09-28 2005-05-19 Chameleon Network Inc. Portable electronic authorization system and method
US7814474B2 (en) * 2000-11-17 2010-10-12 Hewlett-Packard Development Company, L.P. Updatable mobile handset based on Linux with compression and decompression techniques
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
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
EP1488385A2 (en) * 2002-03-19 2004-12-22 Chameleon Network Inc. Portable electronic authorization system and method
TW586074B (en) * 2002-05-24 2004-05-01 Integrated Technology Express System and method for online firmware update and on-screen-display parameter modification and control interface thereof
US6836657B2 (en) * 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
JP4417123B2 (ja) * 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
US7779114B2 (en) * 2003-04-17 2010-08-17 International Business Machines Corporation Method and system for administering devices with multiple user metric spaces
US7683029B2 (en) * 2003-05-07 2010-03-23 Philip Morris Usa Inc. Liquid aerosol formulations containing insulin and aerosol generating devices and methods for generating aerosolized insulin
US7987449B1 (en) * 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
WO2005001665A2 (en) 2003-06-27 2005-01-06 Bitfone Corporation System and method for downloading update packages into a mobile handset in a carrier network
US20050114504A1 (en) * 2003-07-09 2005-05-26 Sunil Marolia Carrier network capable of conducting remote diagnostics in a mobile handset
US20050010915A1 (en) * 2003-07-11 2005-01-13 Chih-Wei Chen Network-based server code auto upgrade method and system
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7281274B2 (en) * 2003-10-16 2007-10-09 Lmp Media Llc Electronic media distribution system
KR20050040432A (ko) * 2003-10-28 2005-05-03 주식회사 팬택앤큐리텔 메뉴 화면 갱신 기능을 가진 이동통신 단말기 및 그 갱신방법
US8555271B2 (en) * 2003-10-29 2013-10-08 Qualcomm Incorporated Method, software and apparatus for application upgrade during execution
US7542757B2 (en) * 2003-11-20 2009-06-02 Agere Systems Inc. Method, system, and computer program product for over-the-air download to satellite radio
CN1305260C (zh) * 2003-12-01 2007-03-14 海信集团有限公司 公交电子站牌控制系统及其方法
US8990366B2 (en) * 2003-12-23 2015-03-24 Intel Corporation Method and apparatus for remote modification of system configuration
US7444681B2 (en) * 2004-01-12 2008-10-28 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
JP2005242555A (ja) * 2004-02-25 2005-09-08 Hitachi Ltd 記憶制御システム及び記憶制御システムが有するディスク型記憶装置にファームウェアを搭載する方法
ATE466334T1 (de) 2004-02-27 2010-05-15 Ericsson Telefon Ab L M Programmieren eines flash-speichers
US7318070B2 (en) * 2004-03-11 2008-01-08 International Business Machines Corporation Method and apparatus for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions
US8589564B2 (en) * 2004-03-11 2013-11-19 International Business Machines Corporation Method and apparatus for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions
US20050204347A1 (en) * 2004-03-12 2005-09-15 International Business Machines Corporation Method for generating XSLT documents from multiple versions of a UML model or XML schemas created from multiple versions of a UML model
US7428635B2 (en) * 2004-03-31 2008-09-23 Emulex Design & Manufacturing Corporation Method of writing non-volatile memory that avoids corrupting the vital initialization code
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
US7975062B2 (en) 2004-06-07 2011-07-05 Sling Media, Inc. Capturing and sharing media content
US8346605B2 (en) 2004-06-07 2013-01-01 Sling Media, Inc. Management of shared media content
BRPI0516744A2 (pt) 2004-06-07 2013-05-28 Sling Media Inc mÉtodos de reproduÇço de fluxo de mÍdia recebido numa rede e produto de programa de computador
US8099755B2 (en) 2004-06-07 2012-01-17 Sling Media Pvt. Ltd. Systems and methods for controlling the encoding of a media stream
US7769756B2 (en) 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
US9998802B2 (en) 2004-06-07 2018-06-12 Sling Media LLC Systems and methods for creating variable length clips from a media stream
US7917932B2 (en) 2005-06-07 2011-03-29 Sling Media, Inc. Personal video recorder functionality for placeshifting systems
CN1329822C (zh) * 2004-06-16 2007-08-01 华为技术有限公司 软件更新方法
AU2011244901B2 (en) * 2004-06-24 2013-10-03 X2M Connect Limited Client processor device
AU2005256154B2 (en) 2004-06-24 2010-08-26 X2M Connect Limited A meter device
AU2011244955B2 (en) * 2004-06-24 2014-06-19 X2M Connect Limited An alert device
US8606891B2 (en) 2004-09-10 2013-12-10 Freestyle Technology Pty Ltd Client processor device for building application files from file fragments for different versions of an application
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
JP2006065857A (ja) 2004-08-24 2006-03-09 Lg Electronics Inc 移動通信端末機のプログラム強制ダウンロード方法及び装置
KR100631584B1 (ko) * 2004-08-24 2006-10-09 엘지전자 주식회사 이동 통신 단말기의 프로그램 강제 다운로드 방법
US20060048055A1 (en) * 2004-08-25 2006-03-02 Jun Wu Fault-tolerant romanized input method for non-roman characters
CN1327342C (zh) * 2004-09-13 2007-07-18 联发科技股份有限公司 移动电话的软件更新方法及其系统
JP5173427B2 (ja) 2004-11-08 2013-04-03 イノパス・ソフトウェアー・インコーポレーテッド 圧縮リード・オンリ・メモリ・ファイル・システム(crmfs)イメージの更新
JP2006155393A (ja) * 2004-11-30 2006-06-15 Toshiba Corp サーバ融通装置、サーバ融通方法およびサーバ融通プログラム
ATE393428T1 (de) * 2004-12-29 2008-05-15 Beko Elektronik Anonim Sirketi Softwareaktualisierung mittels fernbedienung
US7607002B2 (en) * 2005-01-10 2009-10-20 Dell Products L.P. System and method for information handling system boot device branding of boot information
US8402109B2 (en) 2005-02-15 2013-03-19 Gytheion Networks Llc Wireless router remote firmware upgrade
US7904518B2 (en) 2005-02-15 2011-03-08 Gytheion Networks Llc Apparatus and method for analyzing and filtering email and for providing web related services
US7516315B2 (en) 2005-03-18 2009-04-07 Research In Motion Ltd. Electronic device having an alterable configuration and methods of manufacturing and configuring the same
EP1703383A1 (en) * 2005-03-18 2006-09-20 Research In Motion Limited Electronic device having an alterable configuration and methods of manufacturing and configuring the device
US7426633B2 (en) * 2005-05-12 2008-09-16 Hewlett-Packard Development Company, L.P. System and method for reflashing disk drive firmware
US7907531B2 (en) * 2005-06-13 2011-03-15 Qualcomm Incorporated Apparatus and methods for managing firmware verification on a wireless device
EP1899814B1 (en) 2005-06-30 2017-05-03 Sling Media, Inc. Firmware update for consumer electronic device
DE102005034820A1 (de) * 2005-07-26 2007-02-01 Volkswagen Ag System und Verfahren zum Ausführen eines parallelisierten Softwareupdates
US10009956B1 (en) 2017-09-02 2018-06-26 Kamilo Feher OFDM, 3G and 4G cellular multimode systems and wireless mobile networks
FR2891637B1 (fr) * 2005-09-30 2008-01-25 Airbus France Sas Dispositif et procede pour le controle d'un equipement
GB2430774B (en) * 2005-10-03 2007-08-08 Nec Technologies Method of software updating and related device
US20070100957A1 (en) * 2005-10-13 2007-05-03 Bhogal Kulvir S Method and apparatus to provide guaranteed deployment of applications to nodes in an enterprise
US7881225B2 (en) 2005-11-23 2011-02-01 Comcast Cable Holdings, Llc Customer premise equipment device-specific access-limiting for a cable modem and a customer premise equipment device
JP4652240B2 (ja) * 2006-01-18 2011-03-16 Necインフロンティア株式会社 パーティション・サイズ可変ファームウェア組込装置のファームウェア更新方法
WO2007104899A1 (fr) * 2006-03-16 2007-09-20 Thomson Licensing Procede de mise a jour robuste de logiciel
US9348574B2 (en) * 2006-03-30 2016-05-24 Bosch Automotive Service Solutions Inc. Method for having multiple software programs on a diagnostic tool
US20070266128A1 (en) * 2006-05-10 2007-11-15 Bhogal Kulvir S Method and apparatus for monitoring deployment of applications and configuration changes in a network of data processing systems
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
CN100450034C (zh) * 2006-08-01 2009-01-07 华为技术有限公司 拉远加载设备和系统以及方法
US10104432B2 (en) * 2006-12-01 2018-10-16 Time Warner Cable Enterprises Llc Methods and apparatus for software provisioning of a network device
US8271968B2 (en) * 2006-12-12 2012-09-18 Dell Products L.P. System and method for transparent hard disk drive update
US8917165B2 (en) * 2007-03-08 2014-12-23 The Mitre Corporation RFID tag detection and re-personalization
US8628522B2 (en) 2007-05-21 2014-01-14 Estech, Inc. (Endoscopic Technologies, Inc.) Cardiac ablation systems and methods
JP2009054645A (ja) * 2007-08-23 2009-03-12 Rohm Co Ltd 半導体装置
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
US8477793B2 (en) 2007-09-26 2013-07-02 Sling Media, Inc. Media streaming device with gateway functionality
US7966295B2 (en) * 2007-10-10 2011-06-21 Teefonaktiebolaget L M Ericsson (Publ) System and method of mirroring a database to a plurality of subscribers
US8350971B2 (en) 2007-10-23 2013-01-08 Sling Media, Inc. Systems and methods for controlling media devices
US8108911B2 (en) 2007-11-01 2012-01-31 Comcast Cable Holdings, Llc Method and system for directing user between captive and open domains
US8683458B2 (en) * 2007-11-30 2014-03-25 Red Hat, Inc. Automatic full install upgrade of a network appliance
ATE522861T1 (de) 2007-12-13 2011-09-15 Ericsson Telefon Ab L M Firmware-aktualisierung bei einem elektronischen gerät
US8060609B2 (en) 2008-01-04 2011-11-15 Sling Media Inc. Systems and methods for determining attributes of media items accessed via a personal media broadcaster
CN101571807A (zh) * 2008-04-28 2009-11-04 鸿富锦精密工业(深圳)有限公司 具有固件的系统及其启动方法
JP4364285B1 (ja) * 2008-05-13 2009-11-11 株式会社東芝 通信装置及び異常復旧方法
US8418164B2 (en) 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
US8924469B2 (en) 2008-06-05 2014-12-30 Headwater Partners I Llc Enterprise access control and accounting allocation for access networks
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US8340634B2 (en) 2009-01-28 2012-12-25 Headwater Partners I, Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US8924543B2 (en) 2009-01-28 2014-12-30 Headwater Partners I Llc Service design center for device assisted services
US8548428B2 (en) 2009-01-28 2013-10-01 Headwater Partners I Llc Device group partitions and settlement platform
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US8331901B2 (en) 2009-01-28 2012-12-11 Headwater Partners I, Llc Device assisted ambient services
US8626115B2 (en) 2009-01-28 2014-01-07 Headwater Partners I Llc Wireless network service interfaces
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8898293B2 (en) 2009-01-28 2014-11-25 Headwater Partners I Llc Service offer set publishing to device agent with on-device service selection
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
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8667279B2 (en) 2008-07-01 2014-03-04 Sling Media, Inc. Systems and methods for securely place shifting media content
US20100001960A1 (en) * 2008-07-02 2010-01-07 Sling Media, Inc. Systems and methods for gestural interaction with user interface objects
BRPI0910794A2 (pt) * 2008-07-11 2015-09-29 Hewlett Packard Development Co método para atualizar uma imagem de cliente fino, sistema de computador e método para atualizar um sistema operacional de clente fino
WO2010016058A2 (en) * 2008-08-04 2010-02-11 Red Bend Ltd. Performing an in-place update of an operating storage device
EP2329366B1 (en) * 2008-08-04 2013-12-11 Red Bend Ltd. Performing a pre-update on a non volatile memory
US8381310B2 (en) 2009-08-13 2013-02-19 Sling Media Pvt. Ltd. Systems, methods, and program applications for selectively restricting the placeshifting of copy protected digital media content
US8136108B2 (en) * 2008-09-03 2012-03-13 Computime, Ltd Updating firmware with multiple processors
US8667163B2 (en) 2008-09-08 2014-03-04 Sling Media Inc. Systems and methods for projecting images from a computer system
US20100064332A1 (en) * 2008-09-08 2010-03-11 Sling Media Inc. Systems and methods for presenting media content obtained from multiple sources
DK2327015T3 (en) 2008-09-26 2018-12-03 Sonova Ag WIRELESS UPDATE OF HEARING DEVICES
US9191610B2 (en) 2008-11-26 2015-11-17 Sling Media Pvt Ltd. Systems and methods for creating logical media streams for media storage and playback
US20100153573A1 (en) * 2008-12-12 2010-06-17 At&T Intellectual Property I, L.P. Methods and Apparatus to Provide Content
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
WO2010080087A1 (en) * 2009-01-12 2010-07-15 Thomson Licensing Systems and methods for interrupting upgrades of content distribution systems
CN101778378B (zh) * 2009-01-14 2013-03-13 英华达(上海)电子有限公司 一种固件节点更新方法、装置和系统
CN102282541B (zh) * 2009-01-19 2014-06-25 瑞典爱立信有限公司 移动专用软件包代码更新
US8438602B2 (en) 2009-01-26 2013-05-07 Sling Media Inc. Systems and methods for linking media content
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US8793758B2 (en) 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US9755842B2 (en) 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US10064055B2 (en) 2009-01-28 2018-08-28 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US9858559B2 (en) 2009-01-28 2018-01-02 Headwater Research Llc Network service plan design
US9351193B2 (en) 2009-01-28 2016-05-24 Headwater Partners I Llc Intermediate networking devices
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US8893009B2 (en) 2009-01-28 2014-11-18 Headwater Partners I Llc End user device that secures an association of application to service policy with an application certificate check
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US8745191B2 (en) 2009-01-28 2014-06-03 Headwater Partners I Llc System and method for providing user notifications
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US9647918B2 (en) 2009-01-28 2017-05-09 Headwater Research Llc Mobile device and method attributing media services network usage to requesting application
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US9253663B2 (en) 2009-01-28 2016-02-02 Headwater Partners I Llc Controlling mobile device communications on a roaming network based on device state
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US9578182B2 (en) 2009-01-28 2017-02-21 Headwater Partners I Llc Mobile device and service management
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8171148B2 (en) 2009-04-17 2012-05-01 Sling Media, Inc. Systems and methods for establishing connections between devices communicating over a network
US8406431B2 (en) 2009-07-23 2013-03-26 Sling Media Pvt. Ltd. Adaptive gain control for digital audio samples in a media stream
US9479737B2 (en) 2009-08-06 2016-10-25 Echostar Technologies L.L.C. Systems and methods for event programming via a remote media player
US8799408B2 (en) 2009-08-10 2014-08-05 Sling Media Pvt Ltd Localization systems and methods
US8966101B2 (en) * 2009-08-10 2015-02-24 Sling Media Pvt Ltd Systems and methods for updating firmware over a network
US8532472B2 (en) 2009-08-10 2013-09-10 Sling Media Pvt Ltd Methods and apparatus for fast seeking within a media stream buffer
US9565479B2 (en) * 2009-08-10 2017-02-07 Sling Media Pvt Ltd. Methods and apparatus for seeking within a media stream using scene detection
US9525838B2 (en) 2009-08-10 2016-12-20 Sling Media Pvt. Ltd. Systems and methods for virtual remote control of streamed media
US9160974B2 (en) 2009-08-26 2015-10-13 Sling Media, Inc. Systems and methods for transcoding and place shifting media content
US8314893B2 (en) * 2009-08-28 2012-11-20 Sling Media Pvt. Ltd. Remote control and method for automatically adjusting the volume output of an audio device
US20110113424A1 (en) * 2009-11-09 2011-05-12 Bank Of America Corporation Distribution Of Software Updates
US9015225B2 (en) 2009-11-16 2015-04-21 Echostar Technologies L.L.C. Systems and methods for delivering messages over a network
CN102073507B (zh) * 2009-11-20 2014-06-04 华为技术有限公司 微件Widget调用的方法、装置和系统
KR20110057037A (ko) * 2009-11-23 2011-05-31 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 제어 방법
US8799485B2 (en) 2009-12-18 2014-08-05 Sling Media, Inc. Methods and apparatus for establishing network connections using an inter-mediating device
US8626879B2 (en) * 2009-12-22 2014-01-07 Sling Media, Inc. Systems and methods for establishing network connections using local mediation services
US9178923B2 (en) 2009-12-23 2015-11-03 Echostar Technologies L.L.C. Systems and methods for remotely controlling a media server via a network
US9275054B2 (en) * 2009-12-28 2016-03-01 Sling Media, Inc. Systems and methods for searching media content
JP5564956B2 (ja) * 2010-01-15 2014-08-06 富士通株式会社 情報処理装置及び情報処理装置のファームウェア更新方法
US8856349B2 (en) 2010-02-05 2014-10-07 Sling Media Inc. Connection priority services for data communication between two devices
US20110264279A1 (en) * 2010-04-23 2011-10-27 Poth Robert J HVAC control
US20120117365A1 (en) * 2010-11-08 2012-05-10 Delta Electronics (Thailand) Public Co., Ltd. Firmware update method and system for micro-controller unit in power supply unit
US8924777B2 (en) * 2010-12-23 2014-12-30 Samsung Electronics Co., Ltd. Condensed FOTA backup
JP5675373B2 (ja) 2011-01-06 2015-02-25 任天堂株式会社 通信システム、情報処理装置、通信プログラムおよび通信方法
JP5688297B2 (ja) * 2011-01-06 2015-03-25 任天堂株式会社 通信システム、情報処理装置、通信プログラムおよび通信方法
CN102137154A (zh) * 2011-02-23 2011-07-27 华为终端有限公司 一种对cpe进行升级的方法和装置
US8595716B2 (en) 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
US9154826B2 (en) 2011-04-06 2015-10-06 Headwater Partners Ii Llc Distributing content and service launch objects to mobile devices
WO2012148426A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Computer system firmware update
DE102012103654A1 (de) 2011-05-17 2012-11-22 International Business Machines Corp. Installieren und Prüfen einer Anwendung auf einer stark genutzten Computerplattform
KR20130029995A (ko) * 2011-09-16 2013-03-26 삼성전자주식회사 화상형성장치 및 펌웨어 업그레이드 방법
US8281119B1 (en) * 2011-11-22 2012-10-02 Google Inc. Separate normal firmware and developer firmware
JP2013161401A (ja) * 2012-02-08 2013-08-19 Fujitsu Ltd ファームウェアの更新制御方法、基地局装置、通信システム及びプログラム
TWI486874B (zh) 2012-03-27 2015-06-01 華擎科技股份有限公司 電子裝置及開機方法
US9471300B2 (en) 2012-07-26 2016-10-18 Utc Fire And Security America Corporation, Inc. Wireless firmware upgrades to an alarm security panel
US8594850B1 (en) * 2012-09-30 2013-11-26 Nest Labs, Inc. Updating control software on a network-connected HVAC controller
CN102880495A (zh) * 2012-10-15 2013-01-16 华为终端有限公司 移动终端及其软件升级方法
CN103051674A (zh) * 2012-11-23 2013-04-17 深圳市航天泰瑞捷电子有限公司 一种远程升级无线通信模块的方法、装置及手持单元
JP5803886B2 (ja) * 2012-11-28 2015-11-04 コニカミノルタ株式会社 画像形成装置およびプログラム
TWI502507B (zh) * 2013-01-22 2015-10-01 Wistron Corp 電池韌體更新方法、可攜式電子裝置及充電電池模組
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
US20140282478A1 (en) * 2013-03-15 2014-09-18 Silicon Graphics International Corp. Tcp server bootloader
US10064251B2 (en) * 2013-03-15 2018-08-28 Cree, Inc. Updatable lighting fixtures and related components
KR20140122072A (ko) * 2013-04-09 2014-10-17 삼성전자주식회사 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법
CN103559126B (zh) * 2013-10-25 2016-08-24 深圳市欧珀通信软件有限公司 一种测验软件版本的方法、装置及电脑终端
GB2515364B (en) * 2013-12-20 2015-06-17 Nordic Semiconductor Asa Updatable integrated-circuit radio
US9830141B2 (en) * 2013-12-23 2017-11-28 Google Llc Providing a software update to computing devices on the same network
US10108187B2 (en) * 2014-03-14 2018-10-23 Omron Corporation Control device, control system, support device, and control-device maintenance management method
US20160027516A1 (en) * 2014-07-24 2016-01-28 Elster Solutions, Llc Efficient modification of data in non-volatile memory
CN104484200B (zh) * 2014-12-09 2018-05-25 小米科技有限责任公司 对固件进行升级的方法及装置
US9886264B2 (en) 2014-12-09 2018-02-06 Xiaomi Inc. Method and device for upgrading firmware
US9983888B2 (en) * 2015-05-04 2018-05-29 Verizon Patent And Licensing Inc. Predictive writing of bootable images to storage nodes in a cloud computing environment
US20170083254A1 (en) * 2015-09-19 2017-03-23 Qualcomm Incorporated Secure transaction management techniques
US10860310B2 (en) * 2015-09-30 2020-12-08 Apple Inc. Software updating
CN105141784A (zh) * 2015-10-14 2015-12-09 公安部第三研究所 基于recovery的手机取证方法
FR3044124B1 (fr) * 2015-11-20 2018-09-21 Sagemcom Energy & Telecom Sas Procede de verification d'integrite d'un ensemble de donnees
EP3255541A1 (en) * 2016-06-06 2017-12-13 Advanced Digital Broadcast S.A. A method and system for installing software
CN105898490A (zh) * 2016-06-22 2016-08-24 青岛海信电器股份有限公司 遥控器的升级方法、电视和遥控器
JP6744547B2 (ja) 2016-08-10 2020-08-19 富士通株式会社 更新制御装置、及び更新制御プログラム
JP6696414B2 (ja) * 2016-12-05 2020-05-20 京セラドキュメントソリューションズ株式会社 画像処理装置
US10051462B2 (en) * 2016-12-16 2018-08-14 T-Mobile Usa, Inc. Hybrid transport for installed service updates
TWI722269B (zh) * 2018-01-26 2021-03-21 和碩聯合科技股份有限公司 韌體更新方法及使用此方法的電子裝置
CN108762795A (zh) * 2018-04-10 2018-11-06 广东天波信息技术股份有限公司 一种动态加载电池参数的方法及装置
JP6699764B1 (ja) * 2019-01-16 2020-05-27 株式会社富士通ゼネラル 空気調和システム
GB201914047D0 (en) * 2019-09-30 2019-11-13 Nordic Semiconductor Asa Bootloader updating
CN110765145B (zh) * 2019-10-15 2022-08-09 益萃网络科技(中国)有限公司 内容项传输方法、装置、设备及存储介质
CN111506593B (zh) * 2020-04-24 2023-07-18 东莞市精驰软件有限公司 软件系统数据升级方法、装置、设备及存储介质
CN112269585B (zh) * 2020-11-04 2022-11-25 配天机器人技术有限公司 一种关节驱动器固件在线更新方法、装置及关节驱动器
CN113032021B (zh) * 2021-02-24 2023-07-14 广州虎牙科技有限公司 系统切换及其数据处理方法、装置、设备及存储介质
CN113848853A (zh) * 2021-09-27 2021-12-28 一飞智控(天津)科技有限公司 飞行控制器升级流程处理方法、系统、终端、介质、应用
US20230168877A1 (en) * 2021-11-29 2023-06-01 International Business Machines Corporation Upgrading operating software ("os") for devices in a multi-device ecosystem

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4332499A1 (de) * 1993-09-24 1995-03-30 Bosch Gmbh Robert Verfahren zur vollständigen Neuprogrammierung eines löschbaren, nichtflüchtigen Speichers
JP3187624B2 (ja) * 1993-11-19 2001-07-11 京セラミタ株式会社 通信機能を備えた機器の内蔵プログラム更新方法
US5568641A (en) * 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
DE19652629A1 (de) * 1996-12-18 1998-06-25 Philips Patentverwaltung System zum Austausch von Software
EP0898225A4 (en) * 1997-01-31 2000-07-05 Sony Corp INFORMATION PROCESSING APPARATUS AND METHOD
US6023620A (en) * 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
JP3950589B2 (ja) * 1998-08-28 2007-08-01 キヤノン株式会社 情報処理装置、プログラム更新方法および記憶媒体
US6640334B1 (en) * 1999-09-27 2003-10-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device
US6944854B2 (en) * 2000-11-30 2005-09-13 International Business Machines Corporation Method and apparatus for updating new versions of firmware in the background
US20030046524A1 (en) * 2001-08-30 2003-03-06 Zimmer Vincent J. Method for dynamically designating initialization modules as recovery code

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100383738C (zh) * 2005-02-28 2008-04-23 乐金电子(中国)研究开发中心有限公司 一种便携终端的程序动态载入装置及方法
CN100403836C (zh) * 2005-06-10 2008-07-16 华为技术有限公司 终端设备软件/固件下载更新方法
CN100416503C (zh) * 2005-11-04 2008-09-03 中兴通讯股份有限公司 一种软件版本更新的方法
CN100454253C (zh) * 2006-04-29 2009-01-21 华为技术有限公司 一种终端软件升级方法及终端设备
CN101739262A (zh) * 2008-11-11 2010-06-16 英业达股份有限公司 固件更新方法及应用其的电子装置
CN101667133B (zh) * 2009-09-30 2012-09-05 威盛电子股份有限公司 固件更新方法和使用该方法更新固件的芯片
CN109918085B (zh) * 2009-12-21 2023-04-07 英特尔公司 提供软件分发和更新服务而不管端点机的状态或物理位置
CN109918085A (zh) * 2009-12-21 2019-06-21 英特尔公司 提供软件分发和更新服务而不管端点机的状态或物理位置
CN103294503A (zh) * 2012-02-24 2013-09-11 纬创资通股份有限公司 伺服器部署系统及数据更新的方法
CN104144075A (zh) * 2013-05-10 2014-11-12 韦特柯格雷控制系统有限公司 减小在升级期间生产控制的停机时间的方法
CN106104474A (zh) * 2013-12-26 2016-11-09 金雅拓股份有限公司 用于更新低存储量装置上的固件的方法
CN106104474B (zh) * 2013-12-26 2020-03-17 金雅拓股份有限公司 用于更新低存储量装置上的固件的方法
CN109923518A (zh) * 2016-10-31 2019-06-21 哈曼贝克自动系统股份有限公司 用于安全关键系统的软件更新机制
CN107256161A (zh) * 2017-06-13 2017-10-17 广发证券股份有限公司 基于electron技术的客户端升级方法
CN111480142A (zh) * 2017-12-22 2020-07-31 西门子股份公司 在运行期间对软件密集型系统的无缝和安全升级
CN110083305A (zh) * 2018-01-25 2019-08-02 爱思开海力士有限公司 存储器系统及其操作方法
CN110083305B (zh) * 2018-01-25 2022-06-07 爱思开海力士有限公司 存储器系统及其操作方法
CN109101257A (zh) * 2018-08-16 2018-12-28 珠海格力电器股份有限公司 一种开放升级权限的循环远程固件更新系统及其方法
CN111124459A (zh) * 2018-10-31 2020-05-08 阿里巴巴集团控股有限公司 一种fpga云服务器服务逻辑的更新方法及装置
CN111124459B (zh) * 2018-10-31 2023-04-07 阿里巴巴集团控股有限公司 一种fpga云服务器服务逻辑的更新方法及装置
CN111352580A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 存储装置及其操作方法
CN111352580B (zh) * 2018-12-20 2023-07-21 爱思开海力士有限公司 存储装置及其操作方法
CN110333881A (zh) * 2019-03-22 2019-10-15 中国电子科技集团公司第五十四研究所 一种基于星载fpga处理的载荷类设备软件在轨重构方法
CN110333881B (zh) * 2019-03-22 2022-09-16 中国电子科技集团公司第五十四研究所 一种基于星载fpga处理的载荷类设备软件在轨重构方法
CN112559002A (zh) * 2019-09-26 2021-03-26 上海汽车集团股份有限公司 车辆应用的更新方法、设备及存储介质

Also Published As

Publication number Publication date
JP2005502971A (ja) 2005-01-27
WO2003025742A3 (en) 2004-06-10
CN100541430C (zh) 2009-09-16
WO2003025742A2 (en) 2003-03-27
US20050055595A1 (en) 2005-03-10
CA2357382A1 (en) 2003-03-17
MXPA04002527A (es) 2004-07-30
EP1461694A2 (en) 2004-09-29

Similar Documents

Publication Publication Date Title
CN1585926A (zh) 软件更新方法、设备和系统
CN1252951C (zh) 节点b单板软件下载及升级方法
US7584470B2 (en) Method and system for peer-to-peer software distribution with a package builder
RU2333612C2 (ru) Система и способ для обновления версий наборов данных, содержащихся в беспроводном устройстве
US7623853B2 (en) System and method for over the air programming
EP2229625B1 (en) Updating firmware of an electronic device
US20050132351A1 (en) Updating electronic device software employing rollback
CN1620168A (zh) 用于在移动站中执行有故障保护的空中传递软件更新的装置和方法
JP2003510678A (ja) 不揮発性再プログラム可能半導体メモリに記憶された情報を編成する方法
WO2003083647A1 (fr) Procede de mise a jour d'un logiciel de terminaux de communication, terminal de communication et procede de mise a jour de logiciel
CN1364390A (zh) 下载到无线终端的方法和设备
CN1887004A (zh) 通过空中传送来下载和升级无线设备的终端软件
JP2007241989A (ja) 移動体電子装置
JP4800958B2 (ja) アクションリストとバージョニングとを用いて、無線デバイス上でアクションを実行する方法、ソフトウェア、及び装置
JP5395108B2 (ja) 組み込みシステム内のファームウエアをアップグレードする装置と方法
WO2006057861A1 (en) System and method for over-the-air update of wireless communication devices
CN100375427C (zh) 一种集群设备批量传输文件的方法及文件传输设备
JP2004213201A (ja) バージョンアップ方法
CN101056209A (zh) 一种无线终端映像文件维护方法及设备
CN109271187A (zh) 一种应用程序的热修复方法、装置、存储介质及终端
CN1666176A (zh) 软件下载-接收器
WO2023198056A1 (zh) 嵌入式设备固件更新方法以及嵌入式设备
CN111190628B (zh) 基站升级方法、装置、设备和存储介质
CN101854442B (zh) 网络设备及其固件更新方法
JP2004110610A (ja) リモートメンテナンス方式

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
ASS Succession or assignment of patent right

Owner name: TETOBONS INC.

Free format text: FORMER OWNER: SOMA NETWORKS, INC.

Effective date: 20120828

Owner name: NEXTWAVE BROADBAND INC.

Free format text: FORMER OWNER: TETOBONS INC.

Effective date: 20120828

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120828

Address after: Ontario, Canada

Patentee after: WI-LAN Inc.

Address before: Ontario, Canada

Patentee before: Tetuo partner Co.

Effective date of registration: 20120828

Address after: Ontario, Canada

Patentee after: Tetuo partner Co.

Address before: California, USA

Patentee before: Soma Networks, Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090916

Termination date: 20150917

EXPY Termination of patent right or utility model