著录项信息
| 专利名称 | 在嵌入式操作系统更新失败的情况下仍能开机的电子装置及其方法 |
| 申请号 | CN200910137609.2 | 申请日期 | 2009-04-23 |
| 法律状态 | 授权 | 申报国家 | 中国 |
| 公开/公告日 | 2010-08-18 | 公开/公告号 | CN101807154A |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5;;;G;0;6;F;1;1;/;1;4查看分类表>
|
| 申请人 | 技嘉科技股份有限公司 | 申请人地址 | 中国台湾台北县新店市宝强路6号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 技嘉科技股份有限公司 | 当前权利人 | 技嘉科技股份有限公司 |
| 发明人 | 刘峰哲 |
| 代理机构 | 北京挺立专利事务所(普通合伙) | 代理人 | 叶树明 |
摘要
一种内部具有一嵌入式系统的电子装置,该嵌入式系统包括一开机储存区储存有一开机程序与一启动变量,一第一储存区储存有一嵌入式操作系统,以及一第二储存区用以储存另一嵌入式操作系统。该开机程序的操作系统加载程序能根据该启动变量的值,决定加载该第一储存区或第二储存区中的嵌入式操作系统。该嵌入式操作系统包含一更新程序,该更新程序能根据该启动变量的值,决定将一服务器上的最新版本嵌入式操作系统下载于该第一储存区或第二储存区中,并且在确定下载成功之后去改写该启动变量的值。透过该开机程序、更新程序、与启动变量的配合,使得该电子装置即使在嵌入式操作系统更新失败的情况下仍能正常开机。
1.一种电子装置,其内部具有一嵌入系统,所述嵌入系统包括:
一随机存取内存;及
一非挥发性储存单元,所述非挥发性储存单元包括一开机储存区、一第一储存区以及一第二储存区,所述开机储存区储存有一开机程序以及一启动变量,所述第一储存区储存有一嵌入式操作系统,所述第二储存区用以储存另一嵌入式操作系统;
一处理单元,与所述随机存取内存及所述非挥发性储存单元连接,并能执行所述开机程序与所述嵌入式操作系统;
其特征在于,所述开机程序有一操作系统加载程序,所述操作系统加载程序包括:
读取所述启动变量的值;
在所述启动变量的值为一第一值时,将所述第一储存区中所述的嵌入式操作系统载入所述随机存取内存;以及
在所述启动变量的值为一第二值时,将所述第二储存区中所述的嵌入式操作系统载入所述随机存取内存;
其中,所述嵌入式操作系统还包括一更新程序,所述更新程序包括:
侦测一服务器上的所述嵌入式操作系统是否为最新版本;
在所述服务器上的所述嵌入式操作系统为最新版本时,读取所述启动变量的值;
当所述启动变量的值为所述第一值时,将所述最新版本的嵌入式操作系统以覆写方式下载于所述第二储存区,并在确定写入成功之后,将所述启动变量的值改写成所述第二值;
及
当所述启动变量的值为所述第二值时,将所述最新版本的嵌入式操作系统以覆写方式下载于所述第一储存区,并在确定写入成功之后,将所述启动变量的值改写成所述第一值。
2.一种电子装置,其内部具有一嵌入式系统,该嵌入系统包括:
一随机存取内存;及
一非挥发性储存单元,所述非挥发性储存单元包括一开机储存区、一第一储存区、及一第二储存区,所述开机储存区储存有一开机程序,所述第一储存区储存有一嵌入式操作系统,所述第二储存区储存有一备用嵌入式操作系统;
一处理单元,与所述随机存取内存及所述非挥发性储存单元连接,并能在接收一开机信号之后执行并完成所述开机程序;
其特征在于,所述开机程序有一操作系统加载程序,所述操作系统加载程序包括:
将所述第一储存区中所述的嵌入式操作系统载入所述随机存取内存;
判断所述第一储存区中的所述嵌入式操作系统是否加载成功;及
在所述第一储存区中的所述嵌入式操作系统加载失败时,将所述第二储存区中的所述备用嵌入式操作系统载入所述随机存取内存;
其中,所述第一储存区中的所述嵌入式操作系统还包括一更新程序,所述更新程序能侦测一服务器上的嵌入式操作系统是否为最新版本,并在所述服务器上的嵌入式操作系统为最新版本时,将所述最新版本的嵌入式操作系统以覆写方式下载于所述第一储存区。
3.一种使一电子装置在更新其嵌入式操作系统失败时仍能开机的方法,包括:
在所述电子装置内部的非挥发性储存单元建立一启动变量、一第一储存区与一第二储存区;
提供一加载程序;
使所述电子装置在开机之后,执行所述加载程序;
其特征在于,所述加载程序包括:
a步骤:读取所述启动变量的值;
b步骤:判断所述启动变量的值,并在所述启动变量的值为一第一值时执行c步骤,及在所述启动变量的值为一第二值时执行d步骤;
c步骤:将储存在所述第一储存区中的一嵌入式操作系统载入所述电子装置的一随机存取内存;及
d步骤:将储存在所述第二储存区中的一嵌入式操作系统载入所述随机存取内存;
提供一更新程序;及
使所述电子装置在完成所述加载程序之后,执行所述更新程序,所述更新程序包括:
a′步骤:侦测一服务器上的嵌入式操作系统是否为最新版本;
b′步骤:在所述服务器上的嵌入式操作系统为最新版本时,读取所述启动变量的值;
c′步骤:判断所述启动变量的值,当所述启动变量的值为所述第一值时执行随后的d1′~d3′步骤,当所述启动变量的值为所述第二值时执行随后的e1′~e3′步骤;
d1′步骤:将所述最新版本的嵌入式操作系统以覆写方式下载于所述第二储存区;
d2′步骤:判断是否写入成功,并在确定写入成功之后执行随后的d3′步骤;
d3′步骤:将所述启动变量的值为改写成所述第二值;
e1′步骤:将所述最新版本的嵌入式操作系统以覆写方式下载于所述第一储存区;
e2′步骤:判断是否写入成功,并在确定写入成功之后,执行随后的e3′步骤;及e3′步骤:将所述启动变量的值为改写成所述第一值。
4.一种使一电子装置在更新其嵌入式操作系统失败时仍能开机的方法,包括:
于所述电子装置内部的非挥发性储存单元建立一第一储存区与一第二储存区;
于所述第一储存区储存一嵌入式操作系统;
于所述第二储存区储存另一备用嵌入式操作系统;
提供一加载程序;
使所述电子装置在开机之后,执行所述加载程序;
其特征在于,所述加载程序包括:
a步骤:将所述第一储存区中的所述嵌入式操作系统载入所述电子装置的随机存取内存;
b步骤:判断所述第一储存区中的所述嵌入式操作系统是否加载成功;及c步骤:在所述第一储存区中的所述嵌入式操作系统加载失败时,将所述第二储存区中的所述备用嵌入式操作系统载入所述随机存取内存;
提供一更新程序;及
使所述电子装置在完成所述加载程序之后,执行所述更新程序,所述更新程序包括:
侦测一服务器上是否有最新版本的嵌入式操作系统;及
在所述服务器上的嵌入式操作系统为最新版本时,将所述服务器上的嵌入式操作系统以覆写方式下载到所述第一储存区。
在嵌入式操作系统更新失败的情况下仍能开机的电子装置\n及其方法\n技术领域\n[0001] 本发明与嵌入式电子装置有关,尤其涉及一种在嵌入式操作系统更新失败的情况下仍能正常开机的电子装置。\n背景技术\n[0002] 对于嵌入式电子装置而言,其内部的嵌入式操作系统相当于是运作核心,需要随时保持在最佳状况之下。为达此目的,从远程服务器自动更新其嵌入式操作系统的作法,已为嵌入式电子装置常见的作法。问题在于,下载新版的嵌入式操作系统需要一段时间,若其过程发生一些意外,例如断电,可能会导致下载不完全,或是下载失败。由于一般的作法是将新版嵌入式操作系统直接覆写于储存目前版本嵌入式操作系统的储存区。所以,一旦发生前述的情形,就会陷入目前版本与新版本的嵌入式操作系统都无法使用的窘况,以致于嵌入式电子装置无法开机或正常运作。\n[0003] I229818台湾发明专利揭露了一种更新韧体的方法及装置,其可在一多任务环境的操作系统中,对一键盘控制芯片的韧体进行更新,且此更新过程不会导致操作系统当机或基本输出入系统损毁。\n[0004] I227898台湾发明专利揭露了一种更新光盘系统韧体的方法,其可在该韧体更新成功之后,透过更改该光盘系统中微处理器的程序计数器的数值,确保该微处理器能够正常运作。\n[0005] 上述先前技术透过不同技术手段达到确保一装置内的韧体能够安全地更新完成,但在更新该韧体的过程,难免会发生一些预期之外的状况,例如电源中断,以至于该韧体陷入更新失败又无法复原之窘况,从而导致该装置中由该韧体提供的功能无法运作。这些作法完全不适用于嵌入式操作系统的更新,因为,如上所述地,嵌入式操作系统一旦更新失败,就会导致装置无法运作。\n发明内容\n[0006] 本发明主要目的在于提供一种在嵌入式操作系统更新失败的情况下仍能正常开机的电子装置及其方法。\n[0007] 本发明的电子装置有一嵌入系统,该嵌入式系统包括一处理单元、一随机存取内存、及一非挥发性储存单元。该非挥发性储存单元包括一开机储存区、一第一储存区、及一第二储存区。该开机储存区储存有一开机程序及一启动变量,该第一储存区储存有一嵌入式操作系统。该第二储存区用以储存另一嵌入式操作系统。该开机程序的操作系统加载程序能根据该启动变量的值,决定载入该第一储存区或第二储存区中的嵌入式操作系统。该嵌入式操作系统包含一更新程序,该更新程序能根据该启动变量的值,决定将一服务器上的最新版本嵌入式操作系统下载于该第一储存区或第二储存区中,并且在确定下载成功之后去改写该启动变量的值。\n[0008] 较佳地,当该启动变量值为一第一值时,该开机程序是将该第一储存区中的嵌入式操作系统载入该随机存取内存,而该更新程序是将最新版的嵌入式操作系统以覆写方式下载于该第二储存区。当该启动变量值为一第二值时,该开机程序是将该第二储存区中的嵌入式操作系统载入该随机存取内存,而该更新程序是将最新版的嵌入式操作系统以覆写方式下载于该第一储存区。\n[0009] 由于用于下载最新版嵌入式操作系统的储存区与储存目前版本嵌入式操作系统的并不相同,所以,就算最新版的嵌入式操作系统下载失败,也不会影响到目前版本嵌入式操作系统,以至于在此状况下,该电子装置仍能使用该目前版本嵌入式操作系统来开机。一直到确定最新版的嵌入式操作系统更新成功之后,该电子装置才会使用它来开机。\n[0010] 较佳地,上述电子装置中的第二储存区可预先储存一备用嵌入式操作系统,且该开机程序可改成能将该第一储存区中的嵌入式操作系统载入该随机存取内存,并判断该第一储存区中的嵌入式操作系统是否加载成功,以及在该第一储存区中的嵌入式操作系统加载失败时,将该第二储存区中的备用嵌入式操作系统载入该随机存取内存。而该更新程序则可改成能侦测一服务器上的嵌入式操作系统是否为最新版本,并在该服务器上的嵌入式操作系统为最新版本时,将该最新版本的嵌入式操作系统以覆写方式下载于该第一储存区。在此例子中,虽然每次更新都会将目前版本覆盖掉,但是,只要一发生更新失败,就会用该备用嵌入式操作系统来开机,所以,就算最新版的嵌入式操作系统下载失败,该装置一样能够开机。\n[0011] 相对于先前技术,本发明的电子装置即使在嵌入式操作系统更新失败的状况下,仍能以目前版本或备用的嵌入式操作系统来开机,以确保该电子装置不受更新失败影响而随时可用。\n[0012] 本发明的更详细技术内容,将结合以下的具体实施方式做详细的说明。\n附图说明\n[0013] 图1为本发明电子装置一个较佳实施例的方块图。\n[0014] 图2为图1所示较佳实施例开机程序的操作系统加载程序的简易流程图。\n[0015] 图3为图1所示较佳实施例更新程序的简易流程图。\n[0016] 图4为本发明电子装置的另一较佳实施例的方块图。\n[0017] 图5为图4所示该另一较佳实施例开机程序的操作系统加载程序的简易流程图。\n具体实施方式\n[0018] 图1为本发明电子装置1的一个较佳实施例。该电子装置1泛指内部具有一嵌入式系统2(Embedded System)的装置,例如行动电话、个人数字助理(PDA)、电子书、频宽分享器、上网机、数位家电等等。\n[0019] 该嵌入式系统2包括一处理单元20,一非挥发性储存单元21连接该处理单元20,以及一随机存取内存22同样连接该处理单元20。通常,该嵌入式系统2还有一输出入界面、一个或多个特定应用集成电路芯片。该输出入接口包括用于连接键盘的输入接口、用于连接显示器的输出接口、USB接口、IEEE-1394接口、网络通讯接口、红外线(IrDA)接口、蓝牙(Bluetooth)界面等等。该特定应用集成电路芯片(Application-Specific IC,ASIC)是为实现系统某种特定功能的硬件线路,例如绘图加速器、影像编码或译码芯片等等。该嵌入式系统2可能还有其它相关控制电路,容不赘述。\n[0020] 该处理单元20通常是指一嵌入式微处理器(Embedded Microprocessor Unit,EMPU)、一嵌入式微控制器(Microcontroller Unit,MCU)中的微处理器、一嵌入式数字处理器(Embedded Digital Signal Processor,EDSP)或一嵌入式片上系统(System On Chip,SOC)中的微处理器。广义上,该处理单元20还包括在该嵌入式系统2内所需要的处理器。\n[0021] 该非挥发性储存单元21可选用只读存储器(ROM)或可重复写入与用电抹除的非挥发性内存(Non-Volatile Memory),例如可电抹除只读存储器(EEPROM)或闪存(Flash memory),也可选用前述两者之组合。比较特别的是,该非挥发性储存单元21的储存空间,包括一开机储存区210、一第一储存区211及一第二储存区212。该开机储存区210储存有一开机程序3(bootloader)及一启动变量4。该第一储存区211储存有一嵌入式操作系统\n5(Embedded OS)。该第二储存区212储存有另一嵌入式操作系统6。\n[0022] 该电子装置1的电源被打开或被重置(reset)之后,该处理单元20会去执行该开机程序3。该开机程序3主要包括一初始化程序及一操作系统加载程序。该初始化程序用于将该处理单元20、该非挥发性储存单元21、该随机存取内存22、该输出入界面、及该特定应用集成电路芯片等硬件线路初始化,并进行开机自我测试,以确保该些硬件线路可以正常运作。该操作系统加载程序通常是该开机程序3最后一个执行的程序,用以将该第一储存区211中的嵌入式操作系统5载入该随机存取内存22,并在加载完成之后,将控制权交给该嵌入式操作系统5。\n[0023] 如图2所示,该开机程序3的操作系统加载程序包括:\n[0024] a步骤:读取该启动变量4的值。\n[0025] b步骤:判断该启动变量4的值,并在该启动变量4的值为该第一值时执行c步骤,以及在该启动变量4的值为该第二值时执行d步骤。\n[0026] c步骤:将该第一储存区211中的嵌入式操作系统5载入该随机存取内存22。\n[0027] d步骤:将该第二储存区212中的嵌入式操作系统6载入该随机存取内存22。\n[0028] 在该电子装置1被第1次启动之后,由于该启动变量4被预设为该第一值,所以,该开机程序3会根据上述操作系统加载程序而将该第一储存区211中的嵌入式操作系统5载入该随机存取内存22。\n[0029] 与传统开机程序不同的是,该开机程序3的操作系统加载程序是根据该启动变量\n4的值,从不同的储存区加载嵌入式操作系统。\n[0030] 在该电子装置1被第1次启动时,由于该启动变量4的值是被预设为该第一值,所以,此时被加载的嵌入式操作系统是来自该第一储存区211,也就是图1中的嵌入式操作系统5。\n[0031] 需指出的是在该电子装置1被第1次启动之前,该第二储存区212中其实还没有该嵌入式操作系统6。该嵌入式操作系统6实际上是经由该嵌入式操作系统5的更新程序而从一服务器中下载到该第二储存区212。更详而言之,该嵌入式操作系统包括一更新程序,该更新程序的一个较佳实施例如图3所示,包括:\n[0032] a步骤:侦测一服务器上的嵌入式操作系统是否为最新版本。\n[0033] b步骤:在该服务器上的嵌入式操作系统为最新版本时,读取该启动变量4的值。\n[0034] c步骤:判断该启动变量4的值,当该启动变量4的值为该第一值时执行随后的d1~d3步骤,当该启动变量4的值为该第二值时执行随后的e1~e3步骤。\n[0035] d1步骤:将该最新版本的嵌入式操作系统以覆写方式下载于该第二储存区212,也就是该嵌入式操作系统6。\n[0036] d2步骤:判断是否写入成功,并在确定写入成功之后执行随后的d3步骤。\n[0037] d3步骤:将该启动变量的值为改写成该第二值。\n[0038] e1步骤:将该最新版本的嵌入式操作系统以覆写方式下载于该第一储存区211,也就是将该嵌入式操作系统5覆盖掉。\n[0039] e2步骤:判断是否写入成功,并在确定写入成功之后,执行随后的e3步骤;\n[0040] e3步骤:将该启动变量4的值为改写成该第一值。\n[0041] 与传统更新程序不同的是,上述更新程序是根据该启动变量4的值,将该服务器上的嵌入式操作系统下载到不同的储存区,并只在确定下载成功之后,才去更改该启动变量4的值。更改该启动变量4的值的目的在于促使该开机程序3改变加载来源,例如改加载图1中的嵌入式操作系统6。\n[0042] 在上述例子中,该电子装置1是被第1次启动,该启动变量4的值是被预设为该第一值,且该服务器上已有最新版的嵌入式操作系统。所以此时经由上述更新程序所取得的最新版的嵌入式操作系统是被下载到该第二储存区212中,也就是图1中的嵌入式操作系统6。接着,当确定下载成功之后,该启动变量4的值会被改成第二值,这使得该电子装置1第2次启动时,就不再是从该第一储存区211加载该嵌入式操作系统5,而是从该第二储存区212载入较新版的嵌入式操作系统6。这表示一旦更新了嵌入式操作系统,该电子装置1就会使用新版的嵌入式操作系统来运作。当然,新版的嵌入式操作系统也包含有上述的更新程序,以便在被加载之后,一样能够执行上述的更新程序,用以下载最新版的嵌入式操作系统,如果有的话。\n[0043] 在上述本发明的开机程序3、嵌入式操作系统的更新程序、与启动变量的配合下,该电子装置1每次被启动时,该开机程序3都会从该第一储存区211与第二储存区212选择一个较新版的嵌入式操作系统来加载,而每次被加载嵌入式操作系统也都会执行该更新程序,以将目前的嵌入式操作系统更新为最新版。这使得该电子装置1每次被启动时,都能够在最新版的嵌入式操作系统下运作。\n[0044] 更重要的是,利用该更新程序所取得的最新版本嵌入式操作系统,是被下载到目前闲置中的储存区(指其内的嵌入式操作系统目前并未被加载的那一个储存区,可能是该第一储存区211,也可能是该第二储存区212),而不是下载到储存目前版本嵌入式操作系统的储存区。如此,即使该最新版本嵌入式操作系统下载失败,也不会影响到该目前版本嵌入式操作系统,使得该电子装置1再次开机时,仍能在该目前版本的嵌入式操作系统的控制下正常开启与运作。\n[0045] 图4为本发明另一较佳实施例,与图1不同的是,该开机储存区210中储存的是一开机程序3a,该第一储存区211与第二储存区212中一开始就分别储存有一嵌入式操作系统5a与备用嵌入式操作系统6a,且该备用嵌入式操作系统6a的版本是相同于该嵌入式操作系统5a。\n[0046] 如图5所示,该开机程序3a的操作系统加载程序的一个较佳例子,其包括:\n[0047] a步骤:将该第一储存区211中的嵌入式操作系统5a载入该随机存取内存22;\n[0048] b步骤:判断该第一储存区211中的嵌入式操作系统5a是否加载成功;以及[0049] c步骤:在该第一储存区211中的嵌入式操作系统5a加载失败时,将该第二储存区212中的备用嵌入式操作系统6a载入该随机存取内存22。\n[0050] 与传统开机程序不同的是,该开机程序3a的操作系统加载程序在正常状况下都固定载入该第一储存区211中的嵌入式操作系统。然而,一旦发生加载失败的情况,例如侦测到该第一储存区211中的嵌入式操作系统5a无法解压缩成功,就立即改载入该第二储存区212中的备用嵌入式操作系统6a。由于该备用嵌入式操作系统6a是经确认正常之后才预先储存于该第二储存区212,所以,只要加载它该电子装置1就能够正常运作。\n[0051] 该嵌入式操作系统5a还包括一更新程序,该嵌入式操作系统5a每次被加载之后,就会继续去执行该更新程序。该更新程序会去侦测一服务器上是否有最新版本的嵌入式操作系统,如果有,就将它下载到该第一储存区212,以覆盖掉目前版本的嵌入式操作系统,以上例而言就是图4中的嵌入式操作系统5a。当然,新版的嵌入式操作系统也会包含有该更新程序,以便执行前述的自动更新作业。\n[0052] 重点在于该更新程序每次从该服务器取得的新版的嵌入式操作系统,都是下载到该第一储存区212,并且覆盖掉前一版本的嵌入式操作系统。这表示,该第二储存区212中的备用嵌入式操作系统6a一直未被更动过,而保持在初始可正常使用的状态下。一旦更新失败而导致无法使用该第一储存区212中的嵌入式操作系统时,该备用嵌入式操作系统6a就会被使用来取代该第一储存区212中的嵌入式操作系统。这可确保该电子装置1不会因为更新失败而无法开机运作。\n[0053] 从上述实施例可了解,本发明不但使装置能够支持自动更新嵌入式操作系统的功能,而且能够有效避免因更新失败导致装置无法开机。\n[0054] 无论如何,任何人都可以从上述实施例的说明中获得足够教导,并据而了解到本发明确实具有产业上的实用性及创造性,且本发明在同一领域中均未见有相同或类似技术揭露在先而具足有新颖性,所以本发明确已符合发明专利要件,依法提出申请。
法律信息
- 2015-01-21
- 2010-10-06
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 200910137609.2
申请日: 2009.04.23
- 2010-08-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-07-25
|
2007-01-09
| | |
2
| | 暂无 |
1998-02-28
| | |
3
| |
2007-10-31
|
2006-04-28
| | |
4
| |
2007-06-13
|
2005-12-05
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |