CN1495610A - 用于固件更新的方法和装置 - Google Patents

用于固件更新的方法和装置 Download PDF

Info

Publication number
CN1495610A
CN1495610A CNA031566987A CN03156698A CN1495610A CN 1495610 A CN1495610 A CN 1495610A CN A031566987 A CNA031566987 A CN A031566987A CN 03156698 A CN03156698 A CN 03156698A CN 1495610 A CN1495610 A CN 1495610A
Authority
CN
China
Prior art keywords
code
firmware
reflection
nonvolatile memory
firmware code
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
CNA031566987A
Other languages
English (en)
Other versions
CN1282078C (zh
Inventor
布赖恩・G・古德曼
布赖恩·G·古德曼
・A・克莱姆
罗伯特·A·克莱姆
・K・皮尔斯
蒂莫西·K·皮尔斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1495610A publication Critical patent/CN1495610A/zh
Application granted granted Critical
Publication of CN1282078C publication Critical patent/CN1282078C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

对存储多个具有与位置相关的代码的固件代码映像的可重写非易失性存储器中存储的固件进行更新。使多个更新代码映像可用,其具有指定可重写非易失性存储器位置的与位置相关的代码,以使每个更新代码映像适合于代替不同的一个存储的代码映像。计算机处理器确定哪一个存储的代码映像是要被更新的;并选择适合于代替要被更新的代码映像的、具有与位置相关的代码的、多个更新代码映像中的一个。

Description

用于固件更新的方法和装置
技术领域
本发明涉及存储在可重写非易失性存储器中的固件,特别涉及对存储在能够存储多个固件代码映像的可重写非易失性存储器中的固件进行更新。
背景技术
微处理器,例如,实现专用功能或服务的嵌入式系统的微处理器,使用存储在非易失性存储器中的固件或计算机可读程序代码。调制解调器、电话应答机、汽车控制器、磁盘驱动器、磁带驱动器、数字照相机、医药注入系统、以及存储自动化产品都是可包含嵌入式系统的例子。这些系统中的处理器控制要有一定的灵活性,以在提高产品质量的同时降低成本。
对嵌入式系统的系统固件提供升级的能力是有利的。它简化了对产品提供增强和维修的任务。例如,以新的特点和功能的形式对产品提供增强是很常见的。例如,在引入56K调制解调器技术后,许多调制解调器生产商向现有顾客提供了固件更新。更新使现有的调制解调器能够支持用于提高的通信速度的新技术。再例如,IBM 3584Ultra Scalable Tape Library首次引入时带有LTO(Linear TapeOpen,线性开放磁带)驱动器和媒体支持,后来,进行了改进以支持“Quantum(昆腾)DLT”(Digital Linear Tape,数字线性磁带)驱动器和媒体。尤其是对昂贵的系统,顾客希望在未来的许多年都能够以最小的投入和最小的破坏来升级他们的产品。
对嵌入式系统提供可靠安全(failsafe)的固件更新是人们所希望的,在有些情况下是至关重要的。“可靠安全(Failsafe)”意味着即使更新步骤中断了,嵌入式系统也至少能在固件更新之前的水平上继续工作。例如,许多嵌入式系统在固件更新中断后,变为不能正常工作。在美国专利6,357,021中,固件存储在一个可更新的部分和一个固定的部分中。固定的部分包含缺省任务,而可更新的部分则存储任何的更新。这样,存储在固定部分中的固件就不会因更新下载未完成而丢失或破坏。问题是如果固件更新中断了,则系统必须回到原始的默认值,其先前最近的更新将会丢失,还有可能使嵌入式系统不能工作。
然后,嵌入式系统可能会需要专门的程序来使它们重新工作,例如,需要授权的维修专家,或者需要将产品返回工厂。
包含的′844美国专利申请提供的非易失性存储器具有多个独立的可擦除的区或存储区,用于存储至少两个独立的操作码副本,以及与操作码分开存储的引导程序。可对操作码的任何副本进行更新而不需要更新引导代码。例如,如果存在两个副本,这两个副本可以都是最近的更新,或者一个副本比另一个副本更新。任何新的更新都将对低级的操作码执行。这样,就保留了在新的更新之前的、已成功操作系统的操作码,并且,在新的更新中断的情况下,成功操作的代码将会简单地恢复它的职责。
操作码的两个副本或映像(image)独立地执行。有些处理器或编译器不支持与位置无关的代码,以防止执行多于一个的操作码副本。可使用附加的存储器来将两个代码映像中的任何一个复制到RAM或其它的存储区中来执行,并且固件被编译成在RAM中的新复制的代码的地址运行。然而,现有的嵌入式系统可能没有保存代码映像副本的附加存储器,而新系统将不得不为复制存储器承担额外的成本和板空间(board space)。
发明内容
根据本发明的内容,提供了用于更新存储在能够存储多个固件代码映像的可重写非易失性存储器中的固件的计算机程序产品、计算机实现系统和方法。
在一个实施例中,固件代码映像具有与位置相关的代码,使多个更新固件代码映像具有与位置相关的代码,与位置相关的代码指定可重写非易失性存储器的位置,每个固件代码映像与位置相关的代码指定的可重写非易失性存储器的位置不同于多个更新固件代码映像的其它任何一个固件代码映像。这样,每个更新固件代码映像适合于替代存储在非易失性存储器中的不同固件代码映像。
计算机处理器确定存储在可重写非易性存储器中的多个固件代码映像中的要更新的一个;并且选择多个具有与位置相关的代码的更新固件代码映像的一个,用于代替确定的要更新的固件代码映像。
在一个实施例中,计算机处理器在接口指示出选择,并提供选择的更新固件代码映像用于更新。
在另一实施例中,对嵌入式系统提供了多个更新固件代码映像,并将其存储在存储器中,并且计算机处理器从存储在存储器中的多个代码映像中选择那个更新固件代码映像。
然后,计算机处理器从存储器中复制选择的那个更新固件代码映像、来覆盖所确定的位于可重写非易性存储器中的固件代码映像。
在另一实施例中,在接口对嵌入式系统提供了多个更新固件代码映像,并且计算机处理器选择那个更新固件代码映像,并直接覆盖所确定的位于可重写非易失性存储器中的固件代码映像。
在本发明的另一实施例中,把用于操作计算机处理器以执行更新的计算机可读程序代码嵌入到非易性存储器的引导区中。
在另一实施例中,把用于操作计算机处理器以执行更新的计算机可读程序代码嵌入到当前起作用的固件代码映像中。
在另一实施例中,把用于操作计算机处理器以执行更新的计算机可读程序代码嵌入到至少一个更新固件代码映像中,并将程序代码临时存储在用于执行程序代码的存储器中。
本发明的另一方面是关于更新存储在能够存储多个固件代码映像的可重写非易失性存储器中的固件,其中,存储在可重写非易性存储器中的多个固件代码映像包含操作码,计算机处理器:
确定存储在可重写非易性存储器中的多个固件代码映像中的要更新的一个;
用更新固件代码映像代替所确定的、要更新的固件代码映像;
确定更新固件代码映像是否已成功地存储到可重写非易性存储器中以覆盖所确定的固件代码映像;以及
如果是这样的话,对存储在可重写非易失性存储器中的多个固件代码映像的至少一个不更新的固件代码映像进行标记,以防止被标记的固件代码映像在以后被用作当前的操作码。
参照下面结合附图的详细说明,将会对本发明有更加充分的理解。
附图说明
图1是实现本发明的微处理器系统的方框图;
图2是图1的非易失性存储器的内容的图形表示;
图3是更新固件代码映像的图形表示;
图4是描述本发明的、用于更新图1系统的固件的方法的实施例的流程图;以及
图5是描述对图1系统选择用于执行的固件代码映像的流程图。
具体实施方式
下面参照附图对优选实施例进行描述,并以此来说明本发明,其中,相同的编号代表相同或相似的元件。尽管本发明是按照实现本发明目的最佳模式进行说明的,然而本领域的技术人员应该理解,在不脱离本发明的精神或范围的条件下可根据这些教导实现各种变化。
参照图1,作为一个例子图解说明了微处理器系统100,例如实现专用功能或服务的嵌入式系统。嵌入式系统的例子有调制解调器、电话应答机、汽车控制器、磁盘驱动器、磁带驱动器、数字照相机、医药注入系统、以及控制存取器或提供通信的存储自动化产品。图解说明的微处理器系统具有计算机处理器102、可选的RAM(随机存取存储器)103、可重写非易失性存储器104、设备专用电路101以及I/O接口105。正如本领域的技术人员所了解的,计算机处理器102可以是现成的成品微处理器、定制的处理器、离散逻辑等。可重写非易失性存储器104保存可执行的固件和用于计算机处理器102的任何非易失性数据,它可以是闪速(flash)PROM(可编程只读存储器)、电池后备RAM,此外,还有许多其它类型的非易失性存储器也被本领域的技术人员所公知。I/O接口105是使计算机处理器102能够与外部世界进行通信的某种形式的通信接口。例如,可包括串行接口、SCSI(小型计算机系统接口)、以太网、光纤信道接口等。固件更新映像通过I/O接口105进行传送。设备专用电路101提供的附加硬件能够使嵌入式系统100执行专用功能,例如,车辆的防爆死制动系统的执行器控制、用于自动数据存储器库的存取器的电机控制等。设备专用电路101可包括提供脉宽调制(PWM)控制、模数转换(ADC)、数模转换(DAC)、以及用于液晶显示器(LCD)控制等的电子设备。图1中的任何元件都可以组合成一个或多个部件,例如,非易失性存储器104、RAM 103、以及I/O接口105可包含处理器102的元件。
如上所述,对嵌入式系统提供系统固件升级的能力是十分有利的。它简化了对产品提供增强和维修的任务。对嵌入式系统提供可靠安全(failsafe)的固件更新是人们所希望的,在有些情况下是至关重要的。这样,即使更新步骤中断了,嵌入式系统也至少能在固件更新之前的水平上继续工作。包含的′844美国专利申请提供的非易失性存储器具有多个独立的可擦除的区或存储区,用于存储至少两个独立的操作码副本、以及与操作码分开存储的引导程序。可对操作码的任何副本进行更新而不需要更新引导代码。例如,如果存在两个副本,这两个副本可以都是最近的更新,或者一个副本比另一个副本更新。任何新的更新都将对低级的操作码执行。这样,就保留了在新的更新之前的、已成功操作系统的操作码,并且,在新的更新中断的情况下,成功操作的代码将会简单地恢复它的职责。
图2图解说明了图1的非易失性存储器104的内容的一个例子。非易失性存储器的一部分存储引导区201,引导区中写有比较简单的引导程序。图中的多个固件代码映像202、203构成供图1中的计算机处理器102使用的固件。尽管只示出了两个固件代码映像,然而使用几个或许多固件映像都是可以的。
操作码的两个副本或映像是独立地执行的。在某些处理器中,可支持与位置无关的代码,它使用相对寻址。这样,由于对任何一个副本都使用相同的相对地址,因而任何一个副本都是可执行的。然而,一些处理器和编译器为防止执行一个以上的操作码副本而不支持与位置无关的代码。如上所述,可使用附加的存储器来将两个代码映像中的任何一个复制到RAM或其它的存储区中来执行,并且固件被编译成在RAM中的新复制的代码的地址运行。然而,现有的嵌入式系统可能没有保存代码映像副本的附加存储器,而新系统将不得不为复制存储器承担额外的成本和板空间。
在图2中,示出了引导区201、第一代码映像202和第二代码映像203的存储器地址。如果将更新代码映像编译成从十六进制地址00002000开始运行,并且第一代码映像202从十六进制地址00002000开始,那么更新代码映像将会正常执行。然而,如果改为在第二代码映像203中写入相同的更新代码映像,则不能正确执行,这是因为第二代码映像203实际上是从十六进制地址00021000开始的。企图在第二代码映像203以外执行固件更新映像将会导致致命错误,例如,处理器异常。
参照图3,在本发明的一个实施例中,要更新的固件代码映像具有与位置相关的代码,多个更新固件代码映像302、303可用,其具有与位置相关的代码,与位置相关的代码指定可重写非易失性存储器的位置。更新固件代码映像302的与位置相关的代码指定图1的可重写非易失性存储器104的位置、不同于多个更新固件代码映像中其它任何一个固件代码映像,更新固件代码映像303的与位置相关的代码也同样。在图2和图3的例子中,更新固件映像302的与位置相关的代码从十六进制地址00002000开始,而更新固件代码映像303的与位置相关的代码从十六进制地址00021000开始。这样,更新固件代码映像302适合于代替固件代码映像202,而更新固件代码映像303适合于代替存储在非易失性存储器104中的固件代码映像203。另外,虽然只图解说明了两个更新固件映像,但是可以使用几个或多个固件映像,每一个都与图1中的非易失性存储器104中一个不同的固件代码映像相匹配。
这样,根据本发明,计算机处理器,例如,图1中的处理器102,确定存储在图2的可重写非易失性存储器104中的、图2的多个固件代码映像202、203中要更新的一个;并且在图3中的具有与位置相关的代码的多个更新固件代码映像302、303中选择适合于代替所确定的要更新的固件代码映像的一个。
图4图解说明了本发明的用于更新非易失性存储器中的固件代码映像的计算机实现方法的实施例。实现本发明的计算机程序产品可包含如下的计算机可读程序代码:图2的引导区201的、或者是当前执行的固件代码映像202、203的、或者是更新固件映像302、303的计算机可读程序代码,此外还可包含磁盘并从磁盘来提供,等等,并且在图1的接口105进行通信。如果计算机可读程序代码嵌入到图3的一个或多个将要进行更新的固件代码映像302、303中,则将计算机可读程序代码复制到存储器中,例如,图1的RAM 103,并可编译成从该存储器位置执行。如果一个以上的更新固件代码映像嵌入了计算机可读程序代码,则可将它们都编译成从相同的地址执行。可以从第一个提供的更新固件代码映像读取计算机可读程序代码,并且决定是选择其映像还是另一个更新映像。剩余的过程可由进行选择的同一个计算机可读程序代码执行,或者,也可由所选择的代码映像的计算机可读程序代码执行。
在所有这些例子中,可将计算机程序产品的计算机可读程序代码复制到另一个存储器,并且如果计算机可读程序代码来自更新固件映像302、303,则复制是必须的,必须对其计算机可读程序代码进行复制以便用来执行代码。
固件更新从图4中的步骤401开始。固件更新可能是操作员或维修人员手动启动的更新,或者是由主机、另一嵌入式系统、或另一处理器等启动的自动固件更新。在图4的步骤405中,图1的计算机处理器102检查非易失性存储器104中的固件代码映像,例如,图2中的代码映像202或203,并确定其任何一个是否有缺陷或标记为不使用。如果其中一个固件代码映像有缺陷或者标记为不使用,则在图4的步骤407中,处理器将有缺陷的代码映像确定为将要由更新代码映像覆盖的代码映像。
如果步骤405指示没有一个固件代码映像被标记或是有缺陷,则步骤411确定固件代码映像中的任何一个与至少一个其它固件代码映像比较起来是否是最近最少更新(least recently updated)。这里,术语“最近最少更新”是指一个固件代码映像与至少一个其它固件代码映像比起来、是否低级或更早(less recent)。保留当前工作的固件映像,而不要覆盖它是很重要的,即使它是最早的。最近最少更新的固件可由较低的固件版本、较早的日期/时间戳、或某些其它的标记来指示。如果其中一个固件代码映像与其它固件代码映像比较起来是最近最少更新的,并且不是当前工作的固件,则在步骤412中,处理器将最近最少更新的代码映像确定为将由更新代码映像覆盖的代码映像。
如果步骤405指示没有一个固件代码被标记或是有缺陷,并且步骤411指示没有一个固件代码映像与至少一个其它固件代码映像比较起来是最近最少更新的,则在步骤415中,任意决定要由更新代码映像覆盖的代码映像。根据步骤407、步骤412、或步骤415的确定,在步骤418中,计算机处理器确定要被覆盖的代码映像的位置。要被覆盖的映像的位置可包含任意的映像编号、地址、偏移量、或一些其它的位置要被覆盖的标记。
然后,在步骤420中,计算机处理器选择并可能报告出需要哪个固件更新映像来进行固件更新的指示。选择的更新代码映像将具有与位置相关的代码,并适合于代替所确定的要被覆盖和更新的固件代码映像。在图1中,计算机处理器102可能是由来自更新计算机的查询触发,或者也可能是来自正被更新的嵌入式系统的请求。处理器102可报告在接口105的选择,或者,如果在接口105从外部接收到了多个更新固件代码映像,则处理器将选择所希望的更新代码映像。例如,参照图2和图3,如果确定固件代码映像203为要被覆盖的代码映像,则将选择适合于代替所确定的要被更新的固件代码映像的、具有与位置相关的代码的更新固件代码映像303。
在步骤403中,更新系统或操作员使图3中的多个更新固件映像302、303可用于选择过程。如上所述,每个固件更新映像已被编译成从不同的存储器位置执行。更新固件代码映像可在图1中的I/O接口105一起提供,并可存储在存储器中,例如RAM 103中,可按顺序提供,并且当所希望的映像出现在I/O接口105进行选择,或者可由外部请求及计算机处理器102的响应来提供所希望的固件映像,或在计算机处理器102的请求下提供。
在步骤423中,接收选择的更新固件代码映像,并且处理器102将其写到非易失性存储器中,并覆盖要被更新的固件代码映像。可在图1中的I/O接口105接收选择的更新固件代码映像,并且在写入到非易失性存储器104之前,将其保存在存储器中,例如RAM 103中,或者,在接收的同时直接将其写入到非易失性存储器中。在任何一种情况下,更新固件代码映像在接收时都可被缓存。
在图4的步骤424中,进行可选的检查,以确定固件更新是否成功完成。如果更新没有成功,则可选择性地执行步骤425中的出错恢复,和/或可结束过程但未完成固件更新。
然而,如果成功地完成了固件更新,则过程转到可选的步骤430。在步骤430中,对一个或多个没有被更新的代码映像,例如,以前执行的或当前执行的固件代码映像,进行标记,以防止系统100在下次通电或复位时使用。这可以是使标识符设成无效的校验和、无效的CRC、无效的签名字段等的动作。对于只单方向支持固件更新的嵌入式系统来说该步骤不是必需的,因而该步骤是可选的。例如,在复位或通电后选择执行图2中的哪一个代码映像202、203时,如果没有一个代码映像是有缺陷的,则可选择较高固件版本的代码映像。图4中的步骤430防止在固件降级后选择当前执行的代码映像。在更新与位置无关的代码的情况下,也可以使用步骤430,例如包含的′844美国专利中请,以便同样用来防止选择当前执行的映像。固件更新过程在步骤437结束,在这里,可对嵌入式系统复位以便开始执行新的更新代码映像。
参照图5,图解说明了在图1的嵌入式系统100复位或通电后代码映像的选择过程。参照图2,引导区201中的固件负责图5中的步骤,如包含的′844美国专利申请所讨论的那样。在图5中,只说明了两个固件代码映像,但是,仍然是可提供几个或多个固件代码映像。
通电或复位发生在步骤501中。在步骤502中,进行检查以确定图1中的第一个固件代码映像202是否被标记或有缺陷。这可能是检查标识符、校验和测试、CRC测试、检查有效签名字段等。如果第一代码映像是有缺陷的,则过程转到图5的步骤503,在这里,选择图2中的第二代码映像并执行。或者,图5中的步骤503确保第二代码映像是完好的,并且如果它不是完好的,则选择性地执行出错恢复程序或报告错误。另外,如果提供了另外的代码映像,则步骤503将是步骤502的重复,并且然后,过程仍将选择另外一个代码映像来执行。
然而,如果步骤502确定图2中的第一代码映像202没有被标记,如在图4中的步骤430,并且没有缺陷,则过程转到图5中的步骤504。在步骤504中,进行检查以便确定图2中的第二代码映像203是否被标记或是有缺陷。这仍然可以是校验和测试等。如果第二代码映像被标记或有缺陷,则控制转到图5中的步骤505,在这里,选择图2中的第一代码映像202并执行。如果图5中的步骤505断定第二代码映像没有被标记或没有缺陷,则过程转到步骤506。
在步骤506中,进行检查来确定哪个固件代码映像是较近的。这可由较高的固件版本、较近的日期/时间戳、或一些其它的标记指示。在这个直接的例子中,如果图2中的第一代码映像202比第二代码映像203的时间更近,则过程转到图5中的步骤507,在这里,选择第一代码映像并执行。然而,如果步骤506断定图2中的第一代码映像202没有第二代码映像203的时间更近,则控制转到图5中的步骤508,在这里,选择第二代码映像并执行。或者,如果在图4中的步骤430中,标记了低级的代码映像,则可除去图5中的步骤504、506、507和508。在这种情况下,来自步骤502的“否”的回答将把过程引导至步骤505。这是有可能的,因为实际上总是有来自图4中的步骤430的被标记的或有缺陷的代码映像。
本领域的技术人员可以构想计算机处理器和非易失性存储器的另外的布置,以及图4和图5的另外的布置。
虽然对本发明的优选实施例进行了详细说明,但是很明显,本领域的技术人员在不脱离由下面的权利要求书所阐明的本发明的范围的情况下可以对那些实施例进行修改和变化。

Claims (27)

1.一种可与其中嵌入计算机可读程序代码的可编程计算机一起使用的计算机程序产品,用于更新存储在可重写非易失性存储器中的固件,所述可重写非易失性存储器能够存储多个固件代码映像,所述固件代码映像具有与位置相关的代码,包括:
使计算机处理器确定存储在所述可重写非易失性存储器中的多个固件代码映像中哪个要被更新的计算机可读程序代码;以及
使计算机处理器选择适合于代替所述确定要被更新的固件代码映像的、具有与位置相关的代码的、多个更新固件代码映像中的一个的计算机可读程序代码。
2.如权利要求1所述的计算机程序产品,其中使计算机处理器选择所述更新固件代码映像的所述计算机可读程序代码,使计算机处理器在接口上指示所述选择。
3.如权利要求1所述的计算机程序产品,其中,使计算机处理器选择所述更新固件代码映像的所述计算机可读程序代码,使计算机处理器从存储在存储器中的多个更新固件代码映像中选择所述的一个更新固件代码映像。
4.如权利要求3所述的计算机程序产品,还包括使计算机处理器从所述存储器复制所述选择的一个更新固件代码映像,来覆盖所述可重写非易失性存储器中的所述确定的固件代码映像的计算机可读程序代码。
5.如权利要求1所述的计算机程序产品,其中,使计算机处理器选择所述更新固件代码映像的所述计算机可读程序代码,使计算机处理器从在接口提供的多个更新固件代码映像中选择所述的一个更新固件代码映像,来覆盖所述可重写非易失性存储器中的所述确定的固件代码映像。
6.如权利要求1所述的计算机程序产品,其中,存储在所述可重写非易失性存储器中的所述多个固件代码映像中至少有一个包含当前操作的代码,并且,所述计算机程序产品还包括:
使计算机处理器确定所述选择的一个更新固件代码映像是否已成功存储到所述可重写非易失性存储器中以覆盖所述确定的固件代码映像的计算机可读程序代码;以及
使计算机处理器标记存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个非更新的固件代码映像,以防止所述标记的固件代码映像在后来被用作当前的所述操作码的计算机可读程序代码。
7.如权利要求1所述的计算机程序产品,其中所述计算机可读程序代码被嵌入到所述非易失性存储器的引导区中。
8.如权利要求1所述的计算机程序产品,其中,存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个包含操作码,并且,其中,所述计算机可读程序代码被嵌入到当前操作的所述固件代码映像中。
9.如权利要求1所述的计算机程序产品,其中所述计算机可读程序代码被嵌入到所述更新固件代码映像中的至少一个中。
10.一种可与其中嵌入计算机可读程序代码的可编程计算机一起使用的计算机程序产品,用于更新存储在可重写非易失性存储器中的固件,所述可重写非易失性存储器能够存储多个固件代码映像,其中,存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个包含当前操作的代码,包括:
使计算机处理器确定存储在所述可重写非易失性存储器中的多个固件代码映像中哪一个要被更新的计算机可读程序代码;
使计算机处理器用更新固件代码代替所述确定的要被更新的固件代码映像的计算机可读的程序代码;
使计算机处理器确定所述更新固件代码映像是否已成功存储到所述可重写非易失性存储器中以覆盖所述确定的固件代码映像的计算机可读程序代码;以及
使计算机处理器标记存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个非更新的固件代码映像,以防止所述标记的固件代码映像在后来被用作当前操作的所述固件代码映像。
11.一种可与其中嵌入计算机可读程序代码的可编程计算机一起使用的计算机程序产品,包括:
使计算机处理器提供多个具有与位置相关的代码的更新固件代码映像的计算机可读程序代码,所述与位置相关的代码指定可重写非易失性存储器的位置,每个所述固件代码映像与位置相关的代码指定与所述多个更新固件代码映像中其它任何一个所述固件代码映像所不同的、所述可重写非易失性存储器的位置,以使每个所述更新固件代码映像适合于代替存储在所述非易失性存储器中的不同的固件代码映像。
12.一种装置,包括:
计算机处理器;以及
存储用于操作所述计算机处理器的计算机可读程序代码的可重写非易失性存储器,所述计算机可读程序代码包含多个固件代码映像,所述固件代码映像具有与位置相关的计算机可读程序代码,并且包含使所述的计算机处理器完成以下任务的计算机可读程序代码:
确定存储在所述可重写非易性存储器中的多个固件代码映像中哪一个是要被更新的;以及
选择适合于代替所述确定的要被更新的固件代码映像的、具有与位置相关的代码的多个更新固件代码映像中的其中一个。
13.如权利要求12所述的装置,还包括一个接口,其中,使所述计算机处理器选择所述更新固件代码映像的所述计算机可读程序代码,使所述计算机处理器在所述接口指示所述选择。
14.如权利要求12所述的装置,还包括一个存储器,并且,其中,使所述计算机处理器选择所述更新固件代码映像的所述的计算机可读程序代码,使所述计算机处理器从存储在所述存储器中的多个更新固件代码映像中选择所述的一个更新固件代码映像。
15.如权利要求14所述的装置,还包括使所述计算机处理器从所述存储器中复制所述选择的一个更新固件代码映像来覆盖所述可重写非易失性存储器中的所述确定的固件代码映像的计算机可读程序代码。
16.如权利要求12所述的装置,其中,所述计算机可读程序代码还包括:
使所述计算机处理器确定所述选择的一个更新固件代码映像是否已成功存储在所述可重写非易失性存储中来覆盖所述确定的固件代码映像的计算机可读程序代码;以及
使所述计算机处理器标记存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个非更新的固件代码映像,以防止所述标记的固件代码映像在后来被用作当前操作的代码映像的计算机可读程序代码。
17.如权利要求12所述的装置,其中,存储在所述可重写非易失性存储器中的所述计算机可读程序代码还包括一个引导区,并且,其中,所述计算机可读程序代码被嵌入到所述非易失性存储器的引导区中。
18.如权利要求12所述的装置,其中,所述用于确定多个固件代码映像中哪一个要被更新、以及用于选择所述多个更新固件代码映像中的其中一个的所述计算机可读程序代码,被嵌入到所述当前操作的固件代码映像中。
19.一种装置,包括:
计算机处理器;
存储用于操作所述计算机处理器的固件计算机可读程序代码的可重写非易失性存储器,所述固件计算机可读程序代码包含多个固件代码映像,所述固件代码映像具有与位置相关的计算机可读程序代码;
接口;以及
用于临时存储嵌入到在所述接口接收到的至少一个更新固件代码映像中的计算机可读程序代码的存储器,所述计算机可读程序代码使所述计算机处理器完成以下任务:
确定存储在所述可重写非易失性存储器中的所述多个固件代码映像中哪一个是要被更新的;以及
选择适合于代替所述确定的要被更新的固件代码映像的、具有与位置相关的代码的多个更新固件代码映像中的一个。
20.一种装置,包括:
计算机处理器;以及
存储用于操作所述计算机处理器的计算机可读程序代码的可重写非易失性存储器,所述计算机可读程序代码包含多个固件代码映像,并且包含使所述计算机处理器完成以下任务的计算机可读程序代码:
确定存储在所述可重写非易失性存储器中的所述多个固件代码映像中哪一个是要被更新的;
用更新固件代码映像代替所述确定的要被更新的固件代码映像;
确定所述更新固件代码映像是否已成功存储到所述可重写非易失性存储器中,以覆盖所述确定的固件代码映像;以及
标记存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个非更新的固件代码映像,以防止所述标记的固件代码映像在后来被用作当前操作的代码映像。
21.一种用于更新存储在可重写非易失性存储器中的固件的方法,所述可重写非易失性存储器能够存储多个固件代码映像,所述固件代码映像具有与位置相关的代码,包含以下步骤:
确定存储在所述可重写非易失性存储器中的多个固件代码映像中的哪一个是要被更新的;以及
选择适合于代替所述确定的要被更新的固件代码映像的、具有与位置相关的代码的多个更新固件代码映像中的一个。
22.如权利要求21所述的方法,其中,所述选择所述更新固件代码映像的步骤还包括在接口指示所述选择。
23.如权利要求21所述的方法,其中,所述选择所述更新固件代码映像的步骤包括从存储在存储器中的多个更新固件代码映像中选择所述的一个更新固件代码映像。
24.如权利要求23所述的方法,还包括下面的步骤:从所述存储器中复制所述选择的一个更新固件代码映像来覆盖所述可重写非易失性存储器中的所述确定的固件代码映像。
25.如权利要求21所述的方法,其中,存储在所述可重写非易失性存储器中的所述多个固件代码映像中至少一个包含当前操作的代码,并且,所述方法还包括以下步骤:
确定所述选择的一个更新固件代码映像是否已成功存储到所述可重写非易失性存储器中,以覆盖所述确定的固件代码映像;以及
标记存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个非更新固件代码映像,以防止所述标记的固件代码映像在后来被作用当前操作的代码映像。
26.一种用于更新存储在可重写非易失性存储器中的固件的方法,所述可重写非易失性存储器能够存储多个固件代码映像,其中,存储在所述可重写非易失性存储器中的所述多个固件代码映像中至少一个包含当前操作的代码,包括以下步骤:
确定存储在所述可重写非易失性存储器中的多个固件代码映像中的哪一个是要被更新的;
用更新固件代码映像代替所述确定的要被更新的固件代码映像;
确定所述更新固件代码映像是否已成功存储到所述可重写非易失性存储器中,以覆盖所述确定的固件代码映像;以及
标记存储在所述可重写非易失性存储器中的所述多个固件代码映像中的至少一个非更新的固件代码映像,以防止所述标记的固件代码映像在后来被用作当前操作的所述固件代码映像。
27.一种提供用于更新存储在可重写非易失性存储器中的固件的固件的方法,所述可重写非易失性存储器能够存储多个固件代码映像,包括:
提供多个具有与位置相关的代码的更新固件代码映像,所述与位置相关的代码指定可重写非易失性存储器的位置,每个所述固件代码映像的与位置相关的代码指定与所述多个更新固件代码映像中其它任何一个固件代码映像所不同的所述可重写非易失性存储器的位置,以使每个所述更新固件代码映像适合于代替存储在非易失性存储器中的不同的固件代码映像。
CNB031566987A 2002-09-13 2003-09-08 用于固件更新的方法和装置 Expired - Lifetime CN1282078C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/242,750 2002-09-13
US10/242,750 US7089547B2 (en) 2002-09-13 2002-09-13 Firmware updating

Publications (2)

Publication Number Publication Date
CN1495610A true CN1495610A (zh) 2004-05-12
CN1282078C CN1282078C (zh) 2006-10-25

Family

ID=31991474

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031566987A Expired - Lifetime CN1282078C (zh) 2002-09-13 2003-09-08 用于固件更新的方法和装置

Country Status (3)

Country Link
US (1) US7089547B2 (zh)
CN (1) CN1282078C (zh)
TW (1) TWI224748B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100345115C (zh) * 2004-07-23 2007-10-24 芯邦科技(深圳)有限公司 一种具有兼容配置功能的存储控制芯片
CN100351795C (zh) * 2004-11-18 2007-11-28 国际商业机器公司 使用预定状态机更新数据存储设备中的元件的方法和装置
CN100351794C (zh) * 2004-11-18 2007-11-28 国际商业机器公司 使用预定状态机更新数据存储设备中的元件的方法和装置
CN100371909C (zh) * 2005-05-10 2008-02-27 展讯通信(上海)有限公司 嵌入式系统中rom代码的修改方法
CN100371908C (zh) * 2005-05-10 2008-02-27 展讯通信(上海)有限公司 一种嵌入式系统中rom代码的修改方法
CN102339227A (zh) * 2010-07-28 2012-02-01 环旭电子股份有限公司 多固件嵌入式系统及其固件更新方法
CN102426529A (zh) * 2011-10-26 2012-04-25 中兴通讯股份有限公司 固件更新的方法、装置及系统
CN101714094B (zh) * 2008-09-29 2013-04-17 佳能株式会社 包括图像形成装置和服务器的系统及系统控制方法
CN104699410A (zh) * 2013-12-04 2015-06-10 联想(北京)有限公司 一种信息处理方法及电子设备
CN105225204A (zh) * 2014-06-26 2016-01-06 优视科技有限公司 代码定位方法及装置
CN105408858A (zh) * 2013-07-31 2016-03-16 惠普发展公司,有限责任合伙企业 根据第一代码生成第二代码
CN103917949B (zh) * 2011-07-02 2017-06-09 英特尔公司 使用管理引擎的部件更新方法和装置
CN107003876A (zh) * 2014-11-10 2017-08-01 哈廷电子有限公司及两合公司 固件更新
CN108595199A (zh) * 2018-04-19 2018-09-28 济南浪潮高新科技投资发展有限公司 一种一键升级嵌入式系统固件的方法
CN109154893A (zh) * 2016-04-11 2019-01-04 江森自控消防有限合伙公司 具有分布式文件系统的火灾检测系统
CN110192179A (zh) * 2017-01-20 2019-08-30 惠普发展公司,有限责任合伙企业 更新固件
CN110389774A (zh) * 2018-04-16 2019-10-29 英飞凌科技股份有限公司 使用备份固件映像的低功率设备恢复

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984434B1 (en) * 2003-05-21 2011-07-19 Altera Corporation Nondestructive patching mechanism
US6996673B2 (en) * 2003-08-21 2006-02-07 International Business Machines Corporation Method and apparatus for managing inventory and door status during firmware update of an automated data storage library
TWI224729B (en) * 2003-12-15 2004-12-01 Mediatek Inc Method for determining program code
US7546596B2 (en) * 2004-03-29 2009-06-09 International Business Machines Corporation Non-disruptive method, system and program product for overlaying a first software module with a second software module
US20050235076A1 (en) * 2004-04-14 2005-10-20 Winarski Daniel J Targeted communications for microcode updates using dedicated LUNs
US8347285B2 (en) * 2004-12-16 2013-01-01 Intel Corporation Embedded agent for self-healing software
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
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
US20090129593A1 (en) * 2005-05-30 2009-05-21 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method for operating the same
US8037474B2 (en) * 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
US7522168B2 (en) * 2005-09-27 2009-04-21 Sony Computer Entertainment Inc. Cell processor task and data management
US7734827B2 (en) * 2005-09-27 2010-06-08 Sony Computer Entertainment, Inc. Operation of cell processors
US8141076B2 (en) * 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US7506123B1 (en) 2005-09-27 2009-03-17 Sony Computer Entertainment Inc. Method and system for performing memory copy function on a cell processor
US8316220B2 (en) * 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US7975269B2 (en) * 2005-09-27 2011-07-05 Sony Computer Entertainment Inc. Parallel processor methods and apparatus
US7820010B2 (en) * 2005-12-15 2010-10-26 Kimberly-Clark Worldwide, Inc. Treated tissue products having increased strength
US8595747B2 (en) * 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
US20070220335A1 (en) * 2006-02-28 2007-09-20 Gollub Marc A Hardware function isolating during slow mode initial program loading
US8996784B2 (en) * 2006-03-09 2015-03-31 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US9395968B1 (en) * 2006-06-30 2016-07-19 American Megatrends, Inc. Uniquely identifying and validating computer system firmware
US7797696B1 (en) 2006-06-30 2010-09-14 American Megatrends, Inc. Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure
US7590835B1 (en) 2006-06-30 2009-09-15 American Megatrends, Inc. Dynamically updating a computer system firmware image
US8261133B1 (en) * 2006-08-04 2012-09-04 Oracle America, Inc. Protection and recovery of non-redundant information stored in a memory
US8776037B2 (en) * 2007-01-04 2014-07-08 International Business Machines Corporation Apparatus and method to update multiple devices disposed in a computing system
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
US20090083725A1 (en) * 2007-09-20 2009-03-26 Zhenghong Wang Firmware upgrading method for an interface card
US7895428B2 (en) * 2007-09-28 2011-02-22 International Business Machines Corporation Applying firmware updates to servers in a data center
TWI393939B (zh) * 2007-10-02 2013-04-21 Top Victory Invest Ltd 液晶顯示設備及控制該液晶顯示設備運作的方法
US8245217B2 (en) * 2007-10-12 2012-08-14 Microsoft Corporation Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
US20090271780A1 (en) * 2008-04-24 2009-10-29 Moschip Semiconductor Technology Limited Automatic complete firmware upgrade
US20090292941A1 (en) * 2008-05-22 2009-11-26 Nec Laboratories America, Inc. Proof-guided error diagnosis (ped) by triangulation of program error causes
CN101339597B (zh) * 2008-08-28 2011-10-05 飞天诚信科技股份有限公司 一种升级读写器固件的方法、系统和设备
KR20100070899A (ko) * 2008-12-18 2010-06-28 한국전자통신연구원 가상 파티션 기법을 이용한 노드 갱신 시스템 및 그 제어방법
US8623494B2 (en) 2008-12-29 2014-01-07 Otter Products, Llc Protective cushion cover for an electronic device
EP2382538A4 (en) * 2009-01-29 2012-06-06 Hewlett Packard Development Co LOADING A PLURALITY OF APPLICATION BOXES ON A BLADE SERVER
US9104521B2 (en) * 2009-03-16 2015-08-11 Tyco Electronics Subsea Communications Llc System and method for remote device application upgrades
US8965458B2 (en) 2009-08-21 2015-02-24 Otter Products, Llc Protective cushion cover for an electronic device
US20110099556A1 (en) * 2009-10-22 2011-04-28 International Business Machines Corporation Updating system for a microcontroller and associated methods
US9025317B2 (en) 2010-03-17 2015-05-05 Otter Products, Llc Multi-material protective case for sliding/articulating/rotating handheld electronic devices
US9549598B2 (en) 2010-10-12 2017-01-24 Treefrog Developments, Inc. Housing for encasing an electronic device
CA2814206C (en) 2010-10-12 2018-09-18 Gary Rayner Housing for encasing an object
US8706955B2 (en) * 2011-07-01 2014-04-22 Apple Inc. Booting a memory device from a host
TWI448966B (zh) * 2011-07-04 2014-08-11 Realtek Semiconductor Corp 用於具有內建網路單元之嵌入式系統裝置的網路單元置換方法以及嵌入式系統裝置
US9037779B2 (en) * 2011-12-19 2015-05-19 Sandisk Technologies Inc. Systems and methods for performing variable flash wear leveling
US9241551B2 (en) 2012-06-13 2016-01-26 Otter Products, Llc Protective case with compartment
US9092300B2 (en) 2013-04-18 2015-07-28 Ottr Products, Llc Peripheral device and method for updating firmware thereof
US9220328B2 (en) 2013-05-18 2015-12-29 Otter Products, Llc Waterproof protective case for an electronic device
US9300078B2 (en) 2013-08-23 2016-03-29 Otter Products, Llc Waterproof housing for mobile electronic device and waterproof adapter for accessory device
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US9577697B2 (en) 2015-05-27 2017-02-21 Otter Products, Llc Protective case with stylus access feature
US9857975B2 (en) 2015-06-26 2018-01-02 International Business Machines Corporation Non-volatile memory drive partitions within microcontrollers
US9960521B2 (en) 2016-02-24 2018-05-01 Otter Products, Llc Connector for fluidly sealing an aperture of a protective case
TWI602124B (zh) * 2017-01-20 2017-10-11 神雲科技股份有限公司 用於風扇轉速控制的基板管理控制器韌體更新方法
WO2018138789A1 (ja) * 2017-01-25 2018-08-02 三菱電機株式会社 組み込み装置及びファームウェア更新方法
JP2018120422A (ja) * 2017-01-25 2018-08-02 ルネサスエレクトロニクス株式会社 車載通信システム、ドメインマスタ、及びファームウェア更新方法
US10963592B2 (en) 2019-02-05 2021-03-30 Western Digital Technologies, Inc. Method to unlock a secure digital memory device locked in a secure digital operational mode
US11232210B2 (en) 2019-03-26 2022-01-25 Western Digital Technologies, Inc. Secure firmware booting
US10997297B1 (en) 2019-12-06 2021-05-04 Western Digital Technologies, Inc. Validating firmware for data storage devices
KR20210079601A (ko) * 2019-12-20 2021-06-30 주식회사 실리콘웍스 펌웨어를 업데이트하는 터치 시스템 및 방법
US20210389937A1 (en) * 2020-06-12 2021-12-16 Western Digital Technologies, Inc. Systems And Methods For Fixing Incompatibilities In Field Firmware Updates
KR20220005852A (ko) * 2020-07-07 2022-01-14 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US20220197746A1 (en) * 2020-12-18 2022-06-23 Advanced Micro Devices, Inc. Combination bios with a/b recovery
EP4075266A1 (de) * 2021-04-12 2022-10-19 Elektrobit Automotive GmbH Verfahren, computerprogramm und vorrichtung zum durchführen eines bootvorgangs eines systems

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878256A (en) * 1991-10-16 1999-03-02 International Business Machine Corp. Method and apparatus for providing updated firmware in a data processing system
US6357021B1 (en) * 1999-04-14 2002-03-12 Mitsumi Electric Co., Ltd. Method and apparatus for updating firmware
US6754828B1 (en) * 1999-07-13 2004-06-22 Intel Corporation Algorithm for non-volatile memory updates
US6708231B1 (en) * 1999-08-12 2004-03-16 Mitsumi Electric Co., Ltd. Method and system for performing a peripheral firmware update
US7055148B2 (en) * 2000-12-07 2006-05-30 Hewlett-Packard Development Company, L.P. System and method for updating firmware
JP2003025688A (ja) * 2001-07-12 2003-01-29 Fujitsu Ltd プリンタのファームウエアインストール方法、プリンタ及びプリンタシステム
US20030074657A1 (en) * 2001-10-12 2003-04-17 Bramley Richard A. Limited time evaluation system for firmware
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100345115C (zh) * 2004-07-23 2007-10-24 芯邦科技(深圳)有限公司 一种具有兼容配置功能的存储控制芯片
CN100351795C (zh) * 2004-11-18 2007-11-28 国际商业机器公司 使用预定状态机更新数据存储设备中的元件的方法和装置
CN100351794C (zh) * 2004-11-18 2007-11-28 国际商业机器公司 使用预定状态机更新数据存储设备中的元件的方法和装置
CN100371909C (zh) * 2005-05-10 2008-02-27 展讯通信(上海)有限公司 嵌入式系统中rom代码的修改方法
CN100371908C (zh) * 2005-05-10 2008-02-27 展讯通信(上海)有限公司 一种嵌入式系统中rom代码的修改方法
CN101714094B (zh) * 2008-09-29 2013-04-17 佳能株式会社 包括图像形成装置和服务器的系统及系统控制方法
CN102339227A (zh) * 2010-07-28 2012-02-01 环旭电子股份有限公司 多固件嵌入式系统及其固件更新方法
US9747094B2 (en) 2011-07-02 2017-08-29 Intel Corporation Component update using management engine
CN103917949B (zh) * 2011-07-02 2017-06-09 英特尔公司 使用管理引擎的部件更新方法和装置
CN102426529A (zh) * 2011-10-26 2012-04-25 中兴通讯股份有限公司 固件更新的方法、装置及系统
CN105408858A (zh) * 2013-07-31 2016-03-16 惠普发展公司,有限责任合伙企业 根据第一代码生成第二代码
US10360148B2 (en) 2013-07-31 2019-07-23 Hewlett-Packard Development Company, L.P. Generating a second code from a first code
CN105408858B (zh) * 2013-07-31 2019-11-12 惠普发展公司,有限责任合伙企业 用于计算系统的方法和系统
CN104699410A (zh) * 2013-12-04 2015-06-10 联想(北京)有限公司 一种信息处理方法及电子设备
CN105225204A (zh) * 2014-06-26 2016-01-06 优视科技有限公司 代码定位方法及装置
CN105225204B (zh) * 2014-06-26 2018-04-13 优视科技有限公司 代码定位方法及装置
CN107003876A (zh) * 2014-11-10 2017-08-01 哈廷电子有限公司及两合公司 固件更新
CN109154893A (zh) * 2016-04-11 2019-01-04 江森自控消防有限合伙公司 具有分布式文件系统的火灾检测系统
CN110192179A (zh) * 2017-01-20 2019-08-30 惠普发展公司,有限责任合伙企业 更新固件
CN110389774A (zh) * 2018-04-16 2019-10-29 英飞凌科技股份有限公司 使用备份固件映像的低功率设备恢复
CN110389774B (zh) * 2018-04-16 2023-10-27 英飞凌科技股份有限公司 电子设备、胎压监控系统和方法
CN108595199A (zh) * 2018-04-19 2018-09-28 济南浪潮高新科技投资发展有限公司 一种一键升级嵌入式系统固件的方法

Also Published As

Publication number Publication date
CN1282078C (zh) 2006-10-25
TWI224748B (en) 2004-12-01
TW200404255A (en) 2004-03-16
US20040054883A1 (en) 2004-03-18
US7089547B2 (en) 2006-08-08

Similar Documents

Publication Publication Date Title
CN1282078C (zh) 用于固件更新的方法和装置
CN1097225C (zh) 对光盘驱动器微控制器和光盘驱动器更新程序代码的方法
EP0559487B1 (en) Handling data in a system having a processor for controlling access to a plurality of data storage disks
US6990611B2 (en) Recovering data from arrays of storage devices after certain failures
CN101821727B (zh) 管理更新以创建虚拟机复制品
US6816950B2 (en) Method and apparatus for upgrading disk drive firmware in a RAID storage system
US6907602B2 (en) Method for updating firmware of computer device
US6681389B1 (en) Method for providing scaleable restart and backout of software upgrades for clustered computing
US7849356B2 (en) Parity data management system apparatus and method
CN1304946C (zh) 启动和启动代码更新方法
US8245187B2 (en) Disk array apparatus
US20040158775A1 (en) Nonvolatile memory
CN1464386A (zh) 嵌入式系统中固件程序在线升级的实现方法
JP2000090011A (ja) メモリ書き換え方法及びコンピュ―タシステム
US7171518B2 (en) Data storage system recovery from disk failure during system off-line condition
JPH06208438A (ja) 機械のコントロールステーション用計算機
CN1755629A (zh) 能够更新存储的程序的信息处理装置
JP4248164B2 (ja) ディスクアレイのエラー回復方法、ディスクアレイ制御装置及びディスクアレイ装置
CA2746602C (en) Partial fault tolerance in an embedded appliance
CN1567199A (zh) 交叉式固件升级方法
CN114398087A (zh) 一种提高单片机更新程序后运行稳定性的方法及单片机
EP2490122A2 (en) Hardware turnkey mobility
JPH1185412A (ja) ディスクアレイ装置制御方法およびディスクアレイ装置
WO2018150820A1 (ja) 情報処理装置
US6665830B2 (en) System and method for building a checksum

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1064466

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1064466

Country of ref document: HK

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20061025