CN103562875B - 故障保护固件更新 - Google Patents
故障保护固件更新 Download PDFInfo
- Publication number
- CN103562875B CN103562875B CN201280026787.8A CN201280026787A CN103562875B CN 103562875 B CN103562875 B CN 103562875B CN 201280026787 A CN201280026787 A CN 201280026787A CN 103562875 B CN103562875 B CN 103562875B
- Authority
- CN
- China
- Prior art keywords
- renovator
- map section
- program
- application
- firmware
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000009434 installation Methods 0.000 claims abstract description 20
- 230000005611 electricity Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
一种更新电子装置的方法。所述装置具有被划分成至少三个非重叠部分,即引导程序映象部分、更新器映象部分和应用映象部分的非易失性存储器。所述方法包括擦除所述非易失性存储器的应用映象部分,接收固件更新,将所述固件更新写入到所述应用映象部分内,对所述电子装置重新引导,判断应用程序和更新器程序之一处于所述应用映象部分内,在判断应用程序处于所述应用映象部分内时执行所述应用程序,在判断更新器程序处于所述应用映象部分内时擦除所述非易失性存储器的更新器映象部分,并且将所述更新器程序从应用映象部分移到更新器映象部分。
Description
技术领域
本发明涉及嵌入装置中的固件的更新。具体而言,本发明涉及借助最小的存储器覆盖区对嵌入装置中的固件进行更新的故障保护系统和方法。
背景技术
嵌入装置是一种将所有用于实现特定目的的必要硬件和机械部件都集成到专用硬件组件内的计算机系统。将嵌入系统内的可执行代码称为“固件”。所述固件被写入到非易失性存储器内,例如,闪速存储器或其他基于块的电子可擦除可编程随机存取存储器(EEPROM)技术。
在不采用任何专用装置的情况下现场更新这些装置中的固件是常规的做法。要么从可拆卸介质中读出所述固件,要么通过通信路径从另一基于微处理器的系统接收所述固件。
更新嵌入装置内的固件的动作涉及嵌入装置擦除一个存储块,之后将替换固件写入到该存储内。一个块能够存储整个可执行固件的重要部分。从可拆卸介质中或者从来自外部系统的通信流中读出所述替换固件。
在所述更新过程中,如果发生了断电或者失去了与外部系统或者可拆卸介质的通信,那么将使得所述装置处于没有有效固件的状态,因此处于不可用状态。因此,必须将所述装置返回到维修中心,或者抛弃。
有两种常用的方案来避免因固件更新过程中的故障而使得装置不可用的问题。第一种方案是将接收到的固件缓存在另一存储器内,例如随机存取存储器(RAM)。于是能够在擦除现有的固件之前对这一映象进行检验。尽管其针对通往装置的固件流的中断提供了保护,但是这一方案并不能提供全面的故障保护。从装置擦除了其先前的固件开始到完成新固件的写入的这段时间内的任何断电都将使装置无法使用。这一方案还需要足够大的外部缓存器来接收和检验固件,这使得其在成本敏感应用中不受欢迎。
第二种方案是保存完全冗余的固件副本。只有在检验表明新的固件得到了正确编程之后才擦除最初的固件。这一方案能够实现全面的故障保护,但是其要求所述装置具有大约是第一种方案所需的存储量的两倍的存储量。这在成本敏感或存储容量有限的系统中是不可接受的。
发明内容
在一个实施例中,本发明提供了一种对电子装置进行更新的方法。所述装置具有被划分成至少三个非重叠部分,即引导程序映象部分、更新器映象部分和应用映象部分的非易失性存储器。所述方法包括擦除所述非易失性存储器的应用映象部分,接收固件更新,将所述固件更新写入到所述应用映象部分内,对所述电子装置重新引导,判断应用程序和更新器程序之一处于所述应用映象部分内,在判断应用程序处于所述应用映象部分内时执行所述应用程序,在判断更新器程序处于所述应用映象部分内时擦除所述非易失性存储器的更新器映象部分,并且将所述更新器程序从应用映象部分移到更新器映象部分。
在另一实施例中,本发明提供了一种电子装置。所述电子装置包括接口、非易失性存储器和控制器。将所述接口配置为与所述电子装置外的第二装置通信。所述非易失性存储器具有由第一可写入块构成的应用映象部分和由第二可写入块构成的更新器映象部分。将所述控制器耦合至所述接口和非易失性存储器,并且将其配置为接收来自所述接口的更新器程序更新,并将所述更新器程序更新写入到应用映象部分内,还将其配置为对写入到所述应用映象部分内的更新器程序更新进行验证,并且将所述更新器程序更新从所述应用映象部分移到所述更新器映象部分。
通过考虑详细描述和附图,本发明的其他方面将变得显而易见。
附图说明
图1是嵌入装置的方框图。
图2是图1的嵌入装置的非易失性存储器的存储图。
图3是说明更新器映象与应用映象的关系的图示。
图4是更新器程序的操作的流程图。
图5是嵌入装置的起动操作的流程图。
具体实施方式
在详细解释本发明的任何实施例之前,要理解本发明在其应用方面不限于以下描述中阐述或在以下附图中例示的部件构造和布置的细节。本发明能够有其他实施例并通过各种方式实践或执行。
图1示出了嵌入电子装置100的方框图。嵌入装置100包括控制器105(例如,微处理器、微控制器、ASIC等)、非易失性存储器110(例如,闪速存储器、电可擦除可编程只读存储器(EEPROM)等)、接口115(例如,无线接口(WiFi、蓝牙等)、USB接口等)以及随机存取存储器120(RAM)。控制器100通过接口115与处于嵌入装置100的外部的装置通信,并运行存储在存储器110内的程序。控制器100还向存储器110内写入数据(例如,映像更新)。存储器110和120可以集成到控制器105内,也可以是独立的部件。
图2示出了针对存储器110的固件结构200。存储器110包括多个可写入块205。将每一可写入块205的开始和结束称为块边界210。存储器110包括引导程序映象部分、更新器映象部分220和应用映象部分225。映象部分215-225中的每者开始和结束于块边界230,它们不共享任何可写入块205(即,非重叠)。
这一设计适用于具有至少三块可擦除闪速存储(即,可写入块)或者其他基于块的EEPROM存储的存储器110。所示出的实施例包括六个块205。
将一个或多个块205分配给三个映象部分:引导程序映象部分215、更新器映象部分220和应用映象部分225。映象215-225可以具有任何数量的块205,可以留下一些块205不进行分配。唯一的限制条件是更新器映象部分220的尺寸小于等于应用映象部分225的尺寸,并且必须有至少三个可独立擦除的块205(有至少一个块205用于三个部分:引导程序映象部分215、更新器映象部分220和应用映象部分225中的每者)。
由于每一映象部分215-225开始和终止于块边界230,因而能够在不映象任何其他映象215-225的情况下擦除任何映象215-225。
引导程序映象部分215含有固定复位向量表240和引导程序代码部分245。固定复位向量表240位于存储器110的开始处。在一些实施例中,固定复位向量表240位于存储器110的末尾处。在起动的同时,控制器105访问固定复位向量表240,并获得指向位于引导代码部分245内的引导程序的开始部分的向量或指针。如下文所述,引导程序是判断是否执行位于更新器映象部分220或应用映象部分225内的程序的可执行程序。
在所示出的实施例中,更新器映象部分220在与引导程序映象部分215相邻的块边界210上开始,其开端是更新器报头部分250,随后继之以更新器代码部分255。应用映象部分225在与更新器映象部分220相邻的块边界210上开始,并以应用代码部分260为开端。在应用代码部分260之后跟随着结束于块边界210的应用报头部分265。在所示的实施例中,应用报头部分265结束于存储器110的最后一个块边界210处。
更新器报头部分250和应用报头部分265包括指示有效程序是否分别处于更新器代码部分255和应用代码部分260内的标志。此外,更新器报头部分250和应用报头部分265包括指向每一代码部分255和260的相应程序的开端的指针。
在替代实施例中,应用映象部分225开始于与引导程序映象部分215相邻处并以应用报头部分265为开端,更新器映象部分220以更新器报头部分250终止于最后一个存储块205的末尾处。
在一些实施例中,可以将处于映象部分215-225之间的或者之后的(例如,处于更新器映象部分220和应用映象部分225之间的)一个或多个块205用于存储其他数据。
图3示出了位于应用代码部分260内的应用程序300和位于更新器代码部分255内的更新器程序305的关系。应用程序300包括一个或多个应用例程310,并且其可以包括一个或多个应用子例程315。类似地,更新器程序305包括一个或多个更新器例程320,并且可以包括一个或多个更新器子例程325。
为了减少应用程序300和更新器程序305之间的代码复制,应用程序300可以通过跳转至更新器例程320和子例程320而采用更新器程序305中的代码。可以将应用程序300静态链接至更新器程序305(例如,采用软件开发工具包中的链接器工具),或者可以将应用程序300动态链接至更新器程序305(例如,输出一个接口表,应用程序300可以通过读取所述接口表确定在运行时间调用的具体地址)。
在更新器程序305的更新过程中(如下文所述),擦除应用程序300。为了使更新器程序305能够在一旦擦除了应用程序300的情况下运行,不使更新器程序305链接至应用程序300(即,不调用应用程序300)。
图4A和4B示出了用于接收更新器程序305的或者应用程序300的更新的故障保护方法。为了避免一旦在装置100的更新过程中发生了错误(例如,在更新中间断电)而使得嵌入装置100变得不可用,在擦除旧的更新器程序305之前将新的更新器程序305(包括更新器报头信息)存储在应用映象部分225内,对其进行检验,并使其处于生效状态。
在装置100接收到来自主机或用户的对应用程序300或者更新器程序305进行更新的请求时启动所述方法(步骤400)。如果在接收到固件更新请求时应用程序300正在运行,那么调用更新器程序305中的子例程,从而将所有的处理都从应用程序300转移至更新器程序305(步骤405)。接下来,传递来自主机的更新参数(例如,以无线的方式或者通过可拆卸介质)(步骤410)。所述更新参数包括对哪一程序正在接收更新的指示(例如,应用程序300或更新器程序305)、程序数据的起始地址以及数据的尺寸。之后控制器105判断所述更新是针对应用程序300的还是针对更新器程序305的(步骤415)。如果映象地址和尺寸对应于更新器程序305,那么计算偏移量(步骤420)。这一偏移量是必须要对指定的存储地址进行修改的量,由此使所接收到的更新器程序305暂时位于应用映象部分225内。
如果映象地址和尺寸对应于应用程序300,那么存储零偏移量(步骤425)。如果请求有效,那么擦除应用映象部分225(步骤430),从而提供足够的空的存储空间来保存通过所述尺寸参数识别的数据。擦除过程将固有地将应用报头标识为无效。其避免了一旦在对装置100重新引导时使用应用程序300。
之后,环路开始传送程序。只有没有错误,所述环就一直继续,直到传送完成为止。在对该程序全部传送并写入完之前,为了避免一旦在微处理器重新引导时采用所述应用映象,将对所传送的映象的报头数据(例如,更新器映象报头250或应用映象报头265)进行高速缓存,而不是将其直接写入到存储器110内。
控制器105检查是否存在任何错误(即,对更新进行验证)(步骤435)。如果没有错误,那么接收来自主机或者可拆卸介质的固件单元(步骤440)。这一单元是能够有效率地传送和写入的少量的数据。其尺寸将取决于传送机制和有关控制器105的细节。可以设想,一些系统可以采用小到单个字节或者大到整个程序的传送单位。控制器105持续向存储器110的应用代码部分260内写入数据(步骤445)。接下来,控制器105检查传送是否完成(步骤450)。如果传送未完成,那么处理将通过误差的检查(步骤435)、下一单元的接收(步骤440)和单元的写入(步骤445)而继续。
一旦传送完成(步骤450),那么在将映象写入到存储器110内时对映象进行检验(步骤455)。在所示的实施例中,这一操作是采用MD5校验和完成的。它和以前的技术的区别在于,只有在将校验和写入到存储器110内之后才对校验和进行校验,而不是在写入之前在中间缓存器内对其进行校验。在备选实施例中,可以采用诸如CRC的其他技术进行验证。之后,将映象报头从高速缓存数据写入到应用报头部分265当中(步骤460),并对装置100重新引导(步骤465)。如果检测到了错误(步骤435),那么对装置100重新引导(步骤465),其将重新起动所述更新过程。
图5示出了在嵌入装置100加电或者重新引导的同时执行的方法。所述方法装入应用程序300,或者将新的更新器程序305从临时存储器复制到应用映象部分225内并运行所述新的更新器程序305。
为了允许将固定向量表处理的中断传给更新器映象部分220中的程序或者应用映象部分225中的程序,在RAM 120中创建作为固定向量表240的镜象的向量表。引导程序中断处理器跳转至在RAM 120固定向量表中识别出的处理器。
首先,对控制器105和存储器110初始化(步骤500)。接下来,对应用映象部分225进行有效性检验(步骤505)。在一些实施例中,这只是对标志值的简单检查。如果应用映象部分225无效(步骤505),那么对更新器映象部分220进行有效性检查(步骤510)。在一些实施例中,这也只是对标志值的简单检查。
在有效程序(即应用程序300或暂时存储在应用映象部分225中的更新器程序305)有效,并且应用报头部分265有效时,应用映象部分225有效。在存储在更新器代码部分255中的更新器程序305有效,并且更新器报头部分250有效时,更新器映象部分220有效。
如果更新器映象部分220无效,那么装置就不能进行引导。这种情况只能是由装置100的部件故障导致的。在这种情况下,装置100进入差错状态(步骤515),其可以包括差错状态的指示(例如,闪烁的LED)。如果更新器映象部分220有效(但是在步骤505中应用映象部分225无效),那么控制器105跳转至更新器映象部分220中的更新器程序(步骤520)并执行更新。
如果应用映象部分225有效(步骤505),那么还要对应用映象报头进行询问,以判断在应用映象部分225中是否存在暂时存储的更新器程序305(步骤525)。如果应用映象部分225保存着有效的应用程序300,那么控制器105跳转至应用程序300(步骤530)。
如果在应用映象部分225中找到了有效的更新器程序305,那么控制器105擦除现有的更新器映象部分220(步骤535)。假设装置从这一点重新引导直到应用映象部分225被擦除,那么控制器105重复所述过程。
之后,控制器105将暂时存储在应用映象部分225中的更新器程序305复制到更新器映象部分220中(步骤540)。之后,控制器进行逐字节比较(步骤545),以确保更新器程序305得到了正确地复制。如果逐字节比较不匹配,那么重复所述擦除(步骤535)和复制(步骤540)。如果逐字节比较匹配(步骤545),那么将更新器映象报头从高速缓存写入到更新器报头部分250内(步骤550)。在其他实施例中,采用其他验证方法,例如,校验和、CRC等。
接下来,擦除应用报头部分265(步骤555)。其避免了一旦发生重新引导而再次发生所述擦除/复制过程(步骤535和540)。
之后,控制器105跳转至更新器程序305(步骤520),并执行更新,以获得应用程序300的新的副本。
因而,有效更新器程序305总是存在;其要么处于更新器映象部分220内,要么处于应用映象部分225内,从而确保了装置100总是能够工作,即使是在更新过程中发生错误的情况下(例如,装置100重新引导或者更新中断)。
在如下权利要求中阐述了本发明的各种特征和优点。
Claims (15)
1.一种更新电子装置的方法,所述电子装置具有被划分成至少三个非重叠部分,即引导程序映象部分、更新器映象部分和应用映象部分的非易失性存储器,所述方法包括:
擦除所述非易失性存储器的所述应用映象部分;
接收固件更新;
将所述固件更新写入到所述应用映象部分内,所述固件更新包括应用程序和更新器程序之一;
对所述电子装置重新引导;
判断被写入所述应用映象部分内的所述固件更新是应用程序还是更新器程序;
在判断所述被写入所述应用映象部分内的所述固件更新是应用程序时,执行处于所述应用映象部分中的程序;
在判断所述被写入所述应用映象部分内的所述固件更新是更新器程序时,擦除所述非易失性存储器的所述更新器映象部分;
将固件更新更新器程序从所述应用映象部分移到所述更新器映象部分,并且在将所述更新器程序从所述应用映象部分移到所述更新器映象部分之后获得新的应用程序。
2.根据权利要求1所述的方法,还包括:
在将所述固件更新写入到所述应用映象部分内之后,并且在对所述电子装置重新引导之前,对所述应用映象部分中的所述固件更新进行验证。
3.根据权利要求2所述的方法,还包括:
在对所述固件更新进行验证之后,并且在对所述电子装置重新引导之前,写入应用映象部分。
4.根据权利要求3所述的方法,其中,
如果所述固件更新是更新器程序更新,那么在写入所述应用映象部分并对其进行验证之后擦除所述更新器映象部分。
5.根据权利要求1所述的方法,还包括:
在将所述更新器程序从所述应用映象部分移到所述更新器映象部分之后,对所述更新器映象部分中的所述更新器程序进行验证。
6.根据权利要求5所述的方法,还包括:
在对所述更新器映象部分中的所述更新器程序进行验证之后,写入更新器映像报头,并且擦除应用映象部分。
7.根据权利要求1所述的方法,其中,
所述应用程序调用所述更新器程序中的例程。
8.根据权利要求1所述的方法,其中,
所述更新器程序不调用所述应用程序中的例程。
9.一种电子装置,所述电子装置包括:
被配置为与所述电子装置外部的第二装置通信的接口;
非易失性存储器,其具有
由第一可写入块构成的应用映象部分,其包含应用程序,以及
由第二可写入块构成的更新器映象部分,其包含更新器程序;以及
耦合至所述接口和所述非易失性存储器的控制器,其被配置为接收来自所述接口的更新器程序更新,并在擦除所述应用程序之后将所述更新器程序更新写入到所述应用映象部分内,还被配置为对写入到所述应用映象部分内的所述更新器程序更新进行验证,并且在擦除了所述更新器程序部分之后将所述更新器程序更新从所述应用映象部分移到所述更新器映象部分,并且在将所述更新器程序从所述应用映象部分移到所述更新器映象部分之后获得新的应用程序。
10.根据权利要求9所述的电子装置,其中,
所述非易失性存储器包括引导程序映象部分,所述引导程序映象部分具有引导程序,所述引导程序用于判断在所述更新器映象部分和所述应用映象部分内是否存在有效程序。
11.根据权利要求10所述的电子装置,其中,
当在所述应用映象部分中存在有效程序时,所述引导程序执行所述应用映象部分中的程序。
12.根据权利要求10所述的电子装置,其中,
当在所述应用映象部分内不存在有效程序时,所述引导程序执行所述更新器映象部分中的程序。
13.根据权利要求9所述的电子装置,其中,
所述控制器被配置为:在将所述更新器程序从所述应用映象部分移到所述更新器映象部分之后获得新的应用程序。
14.根据权利要求9所述的电子装置,其中,
所述控制器被配置为:在将所述更新器程序从所述应用映象部分移到所述更新器映象部分之后,对所述更新器映象部分中的所述更新器程序进行验证。
15.根据权利要求14所述的电子装置,其中,
所述控制器被配置为:在将所述更新器映象部分中的所述更新器程序移到所述更新器映象部分并对其进行验证之后,写入更新器映象部分,并且擦除应用映象部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/081,274 US8595716B2 (en) | 2011-04-06 | 2011-04-06 | Failsafe firmware updates |
US13/081,274 | 2011-04-06 | ||
PCT/US2012/032453 WO2012138951A1 (en) | 2011-04-06 | 2012-04-06 | Failsafe firmware updates |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103562875A CN103562875A (zh) | 2014-02-05 |
CN103562875B true CN103562875B (zh) | 2016-08-24 |
Family
ID=45977059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280026787.8A Active CN103562875B (zh) | 2011-04-06 | 2012-04-06 | 故障保护固件更新 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8595716B2 (zh) |
CN (1) | CN103562875B (zh) |
WO (1) | WO2012138951A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5939896B2 (ja) * | 2012-06-12 | 2016-06-22 | キヤノン株式会社 | 画像形成装置 |
DE102012012509B4 (de) * | 2012-06-22 | 2021-02-04 | Giesecke+Devrient Mobile Security Gmbh | Verfahren und Vorrichtung zum Austausch des Betriebssystems eines ressourcenbeschränkten tragbaren Datenträgers |
US8788839B1 (en) * | 2012-10-10 | 2014-07-22 | Google Inc. | Securely replacing boot loaders |
TW201441932A (zh) * | 2013-04-19 | 2014-11-01 | Nuvoton Technology Corp | 處理裝置與系統程式更新方法 |
KR102261815B1 (ko) * | 2014-10-30 | 2021-06-07 | 삼성전자주식회사 | 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
US9977914B1 (en) * | 2016-02-25 | 2018-05-22 | Sprint Communications Company L.P. | Electronic device security through boot cycles |
US20180081666A1 (en) * | 2016-03-11 | 2018-03-22 | Oleksii Surdu | Reliable and Secure Firmware Update for Internet of Things (IoT) Devices |
US10097563B2 (en) | 2016-05-04 | 2018-10-09 | Gbs Laboratories, Llc | Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices |
US10846099B2 (en) * | 2016-10-07 | 2020-11-24 | Blackberry Limited | Selecting a boot loader on an electronic device |
US10402273B2 (en) | 2016-12-14 | 2019-09-03 | Microsoft Technology Licensing, Llc | IoT device update failure recovery |
US10416991B2 (en) * | 2016-12-14 | 2019-09-17 | Microsoft Technology Licensing, Llc | Secure IoT device update |
US10715526B2 (en) | 2016-12-14 | 2020-07-14 | Microsoft Technology Licensing, Llc | Multiple cores with hierarchy of trust |
CN109542491B (zh) * | 2017-09-21 | 2022-04-05 | 西部数据技术公司 | 用于后台固件更新的方法和装置 |
JP6959153B2 (ja) * | 2018-01-19 | 2021-11-02 | 株式会社Pfu | 情報処理装置、情報処理方法、及びプログラム |
TWI676933B (zh) * | 2018-07-05 | 2019-11-11 | 慧榮科技股份有限公司 | 韌體更新方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442067B1 (en) * | 2000-05-23 | 2002-08-27 | Compaq Information Technologies Group, L.P. | Recovery ROM for array controllers |
US6601212B1 (en) * | 2000-03-29 | 2003-07-29 | Hewlett-Packard Development Company, Lp. | Method and apparatus for downloading firmware to a non-volatile memory |
EP1624373A1 (en) * | 2004-08-06 | 2006-02-08 | Telsey S.p.A. | Method and system for updating software of a communication apparatus in a broadband network |
CN101127000A (zh) * | 2006-08-17 | 2008-02-20 | 国际商业机器公司 | 促进灾难恢复的装置和方法 |
US7971199B1 (en) * | 2004-05-03 | 2011-06-28 | Hewlett-Packard Development Company, L.P. | Mobile device with a self-updating update agent in a wireless network |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210854A (en) | 1989-06-14 | 1993-05-11 | Digital Equipment Corporation | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version |
IT1254937B (it) | 1991-05-06 | 1995-10-11 | Aggiornamento dinamico di memoria non volatile in un sistema informatico | |
JPH07210395A (ja) | 1994-01-10 | 1995-08-11 | Fujitsu Ltd | ファームウェアメンテナンス方式 |
US5568641A (en) | 1995-01-18 | 1996-10-22 | Hewlett-Packard Company | Powerfail durable flash EEPROM upgrade |
US5701492A (en) | 1996-03-29 | 1997-12-23 | Canon Kabushiki Kaisha | Fail-safe flashing of EPROM |
US6560701B1 (en) | 1997-02-10 | 2003-05-06 | International Business Machines Corporation | Alternate boot record |
US6308265B1 (en) | 1998-09-30 | 2001-10-23 | Phoenix Technologies Ltd. | Protection of boot block code while allowing write accesses to the boot block |
US6486883B1 (en) | 1999-06-18 | 2002-11-26 | Phoenix Technologies, Ltd. | Apparatus and method for updating images stored in non-volatile memory |
US6708231B1 (en) | 1999-08-12 | 2004-03-16 | Mitsumi Electric Co., Ltd. | Method and system for performing a peripheral firmware update |
US6640334B1 (en) | 1999-09-27 | 2003-10-28 | Nortel Networks Limited | Method and apparatus of remotely updating firmware of a communication device |
US6622246B1 (en) | 1999-11-12 | 2003-09-16 | Xerox Corporation | Method and apparatus for booting and upgrading firmware |
US6584559B1 (en) | 2000-01-28 | 2003-06-24 | Avaya Technology Corp. | Firmware download scheme for high-availability systems |
JP2001209543A (ja) | 2000-01-28 | 2001-08-03 | Nec Ic Microcomput Syst Ltd | フラッシュ・マイコンにおけるプログラム書き換え方法 |
US20030182414A1 (en) | 2003-05-13 | 2003-09-25 | O'neill Patrick J. | System and method for updating and distributing information |
US6832373B2 (en) * | 2000-11-17 | 2004-12-14 | Bitfone Corporation | System and method for updating and distributing information |
CA2357382A1 (en) | 2001-09-17 | 2003-03-17 | Soma Networks, Inc. | Software update method, apparatus and system |
US7299463B2 (en) * | 2001-09-28 | 2007-11-20 | Intel Corporation | Method for atomically updating a plurality of files |
JP2004152279A (ja) * | 2002-10-08 | 2004-05-27 | Matsushita Electric Ind Co Ltd | プログラム更新方法および端末装置 |
AU2003287532A1 (en) | 2002-11-05 | 2004-06-07 | Bitfone Corporation | Firmware update system for facilitating firmware update in mobile handset related applications |
KR100880783B1 (ko) * | 2003-09-03 | 2009-02-02 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘 피 | 전자 장치에서의 3-단계 부팅 프로세스 |
US7797693B1 (en) | 2003-12-12 | 2010-09-14 | Hewlett-Packard Development Company, L.P. | NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices |
KR100578143B1 (ko) | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템 |
US20060259207A1 (en) | 2005-04-20 | 2006-11-16 | Denso Corporation | Electronic control system for automobile |
JP2008046791A (ja) | 2006-08-14 | 2008-02-28 | Fujitsu Ltd | 記憶装置、ファームウェア更新方法、及び制御装置 |
CN101512485A (zh) | 2006-09-29 | 2009-08-19 | 诺基亚公司 | 用于作为后台任务更新固件的方法和装置 |
KR101169124B1 (ko) | 2006-10-10 | 2012-07-26 | 엑사플롭 엘엘씨 | 파워 서플라이 마이크로 컨트롤러의 업데이트 |
WO2009044416A1 (en) * | 2007-10-03 | 2009-04-09 | Power-One Italy S.P.A. | Method for reprogramming applications in embedded devices and related device |
TWI363298B (en) | 2008-02-29 | 2012-05-01 | Hon Hai Prec Ind Co Ltd | Communication device and firmware update method thereof |
JP2009230407A (ja) | 2008-03-21 | 2009-10-08 | Toshiba Corp | データの更新方法、メモリシステムおよびメモリデバイス |
US20090320012A1 (en) * | 2008-06-04 | 2009-12-24 | Mediatek Inc. | Secure booting for updating firmware over the air |
US8689209B2 (en) * | 2008-08-04 | 2014-04-01 | Red Bend Ltd. | Updating content without using a mini operating system |
GB2465193A (en) | 2008-11-10 | 2010-05-12 | Symbian Software Ltd | Detecting updated files in a firmware over the air update using CRC values |
TW201027324A (en) | 2009-01-14 | 2010-07-16 | Giga Byte Tech Co Ltd | Embedded electronic device free from being stuck in update failure and method of making the same |
JP5383516B2 (ja) * | 2010-01-06 | 2014-01-08 | キヤノン株式会社 | 画像形成装置及びそのファームウェア更新方法、並びにプログラム |
US20120079474A1 (en) * | 2010-09-24 | 2012-03-29 | Stephen Gold | Reimaging a multi-node storage system |
-
2011
- 2011-04-06 US US13/081,274 patent/US8595716B2/en active Active
-
2012
- 2012-04-06 WO PCT/US2012/032453 patent/WO2012138951A1/en active Application Filing
- 2012-04-06 CN CN201280026787.8A patent/CN103562875B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601212B1 (en) * | 2000-03-29 | 2003-07-29 | Hewlett-Packard Development Company, Lp. | Method and apparatus for downloading firmware to a non-volatile memory |
US6442067B1 (en) * | 2000-05-23 | 2002-08-27 | Compaq Information Technologies Group, L.P. | Recovery ROM for array controllers |
US7971199B1 (en) * | 2004-05-03 | 2011-06-28 | Hewlett-Packard Development Company, L.P. | Mobile device with a self-updating update agent in a wireless network |
EP1624373A1 (en) * | 2004-08-06 | 2006-02-08 | Telsey S.p.A. | Method and system for updating software of a communication apparatus in a broadband network |
CN101127000A (zh) * | 2006-08-17 | 2008-02-20 | 国际商业机器公司 | 促进灾难恢复的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012138951A1 (en) | 2012-10-11 |
US8595716B2 (en) | 2013-11-26 |
CN103562875A (zh) | 2014-02-05 |
US20120260244A1 (en) | 2012-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103562875B (zh) | 故障保护固件更新 | |
CN101650662B (zh) | 一种嵌入式系统的存储器件的固件启动及升级方法 | |
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN103164342B (zh) | 数据可用性的挂载时协调 | |
JP5113700B2 (ja) | ファームウェア更新装置及び方法 | |
US6601132B2 (en) | Nonvolatile memory and method of writing data thereto | |
US7512749B2 (en) | Safe software revision for embedded systems | |
CN102298545B (zh) | 一种系统启动引导处理方法及装置 | |
US8775758B2 (en) | Memory device and method for performing a write-abort-safe firmware update | |
CN107239411B (zh) | 一种车载控制器内存管理方法及系统 | |
US20080104361A1 (en) | Storage Device, Memory Managing Apparatus, Memory Managing Method, and Program | |
CN101482837B (zh) | 闪存文件系统纠错方法和装置 | |
EP2551765A1 (en) | Methods and systems for preboot data verification | |
CN101567217A (zh) | 一种安全烧写闪存的方法及数据写入方法 | |
CN102104750B (zh) | 一种网络电视自动升级的方法 | |
CN112015447B (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN1924821A (zh) | 固件更新系统与方法 | |
CN112912859A (zh) | 逻辑到物理地址转译映射的基于区带的重构 | |
CN116755735A (zh) | 嵌入式软件在线升级方法、装置、腹膜透析仪、存储介质 | |
EP2733612A1 (en) | Information processing device, method, and program | |
JP2005182812A (ja) | コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法 | |
US20220413048A1 (en) | Apparatus and system for debugging solid-state disk (ssd) device | |
US10180887B1 (en) | Adaptive power cycle sequences for data recovery | |
CN115686946A (zh) | 固件更新方法、固件更新装置和车辆 | |
US8020048B2 (en) | Power-on self test program management apparatus and its management method and program |
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 |