固件更新系统及方法

文档序号:6457594阅读:176来源:国知局
专利名称:固件更新系统及方法
技术领域
本发明涉及一种固件更新系统及方法,特别是涉及一种比对文件标头 信息并据以更新部分文件系统的固件更新系统及方法。
背景技术
嵌入式系统(embedded system)为一种整合软件及硬件且具有特定功 能的计算机系统。嵌入式系统的软件亦称为固件,并包括执行特定功能的 指令集。许多电子装置如个人数字助理(personal digital assistant, PDA)、电话系统、复印机、升降梯…等是应用嵌入式系统。由于嵌入式系 统应用的范围极广大,且业界致力于扩展嵌入式系统的功能,因此如何更 新固件为目前相当重要的课题。
现今更新固件的方法将电子装置连接至个人计算机,再从个人计算机 下载完整的映像文件(image)至电子装置。接着比对已下载的映像文件及 电子装置原有的程序代码,并更新不相同部份的映像文件。然而此种更新 固件的方法具有以下缺点
第一、需将个人计算机的整个映像文件传输至嵌入式系统才可得知需 要更新哪些部分的映像文件。因此当固件大小增加时,传输时间相对地提 高许多。
第二、不需更新的程序代码亦会传输至电子装置,因此而相当浪费时间。
第三、由于整个嵌入式系统皆位于同一映像文件中,因此映像文件中 不常更新的部份如核心码(kernel)或开机码(boot code)亦会传输至电 子装置中并进行比对。如此不仅浪费频宽更降低更新效率。

发明内容
本发明是有关于一种固件更新系统及方法,是于更新文件系统前藉由 第一装置的传送模块及第二装置的比对模块相互沟通,以于第二装置找出需要更新的文件系统。第二装置只将需要更新的文件系统合并并传送至第 一装置,使第一装置的自我更新模块更新文件系统。
根据本发明的第一方面,提出一种固件更新系统,包括第一装置及第 二装置。第一装置包括第一储存单元、传送模块及自我更新模块。第一储 存单元用以储存第一映像文件。第一映像文件具有第一标头、第一文件系 统及第二文件系统。传送模块用以输出第一文件头。自我更新模块用以根 据第二映像文件更新第一映像文件。第二装置包括第二储存单元、比对模 块及合并模块。第二储存单元用以储存第二文件头及第三文件系统。比对 模块用以接收第 一文件头并比对第 一标头及第二标头。合并模块用以合并 第二文件头及第三文件系统以输出第二映像文件。自我更新模块根据第二 映像文件将第 一文件系统更新为第三文件系统。
根据本发明的第二方面,提出一种固件更新方法,用以更新第一装置 的第一映像文件。第一映像文件具有第一标头、第一文件系统及第二文件 系统。固件更新方法包括以下步骤。首先,将第一标头传送至第二装置。 第二装置具有第二文件头及第三文件系统。接着,于第二装置比对第一文 件头及第二标头。然后,于第二装置合并第二文件头及第三文件系统成第 二映像文件。其次,将第二映像文件输出至第一装置。再者,根据第二映 像文件将第 一映像文件的第 一文件系统更新为第三文件系统。
为使本发明的上述内容能更明显易懂,下文特举一较佳实施例,并结 合附图详细说明如下。


图1示出了依照本发明较佳实施例的一种固件更新系统的示意图2示出了第三映像文件的示意图3示出了图2的映像文件记录巻标的示意图4示出了依照本发明较佳实施例的固件更新方法的流程图;以及
图5示出了图4中更新为第三标头的详细流程图。
附图符号说明
100:固件更新系统
110:第一装置111:第一-储存单元
112:传送模块113:自我更新模块114:第--映像文件
115 第--标头
116.第--文件系统
117第二二文件系统
120第二装置
121第二二储存单元
122比对模块123合并模块124第二-才示头
125:第三-文件系统
130'第三-映像文件
131.第三-标头
132:映像文件检查值133:识别码134版本码135映像文件尺寸字段136映i象文件记录巻标137保留位138、 143子映像文件标签
139、 144子映像文件位移字段
140、 145子映像文件尺寸字段
141、146子映像文件检查值
142、 147子映像文件版本码
具体实施例方式
请参照图1,其示出了依照本发明较佳实施例的一种固件更新系统的示
意图。固件更新系统100包括第一装置110及第二装置120。第一装置110 及第二装置120例如分别为嵌入式装置及个人计算机,或者例如分别为个
8人计算机及远程服务器。
第一装置110包括第一储存单元111、传送模块112及自我更新模块
113。第一储存单元111例如是只读存储器(read-only memory, ROM )、快 闪只读存储器(flash ROM )或电可擦除可编程只读存储器 (electrically-erasable programmable ROM, EEPROM )。第一储存单元111 用以储存第一映像文件114。第一映像文件114具有第一标头115、第一文 件系统116及第二文件系统117。第一文件系统116及第二文件系统117例 如为程序代码且较佳地为不同功能的程序代码。第一文件头115具有第一 文件系统116及第二文件系统117的信息。于本实施例中,是以第一文件 系统116为需被更新的程序代码且第二文件系统117为不需被更新的程序 代码为例做说明。传送模块112用以输出第一标头115至第二装置120。自 我更新模块113用以自第二装置120接收第二映像文件(未示出于图中), 并根据第二映像文件更新第一映像文件114。
第二装置120包括第二储存单元121、比对模块122及合并模块123。 第二储存单元121用以储存第二标头124及第三文件系统125。第二文件头 124具有第三文件系统125的信息。第三文件系统125例如是程序代码且为 第一装置110欲更新的程序代码。比对模块122用以自第一装置110接收 第一文件头115,并比对第一标头115及第二标头124。合并模块123用以 合并第二标头124及第三文件系统125成第二映像文件,并输出第二映像 文件至第一装置110。自我更新模块113根据第二映像文件将第一映像文件 114的第一文件系统116更新为第三文件系统125。
本实施例的固件更新系统100是于更新文件系统前藉由传送模块112 与比对模块122相互沟通。第一装置110仅需将第一文件头115由传送模 块112输出至第二装置120的比对模块122,即可找出需要被更新的文件系 统。因此,可大幅减少比对第一装置110及第二装置120的文件系统所耗 费的时间。此外,藉由第二装置120的合并模块123将需要被更新的文件 系统及文件头合并成新的映像文件。第一装置110的自我更新模块113根 据新的映像文件更新旧的映像文件。第一装置110仅接收需要被更新的文 件系统及文件头,因此可大幅提升更新效率。再者,不需更新的文件系统 不会被传输至第一装置110,藉此可节省更新时间。
于本实施例中,第 一装置110例如是通过连接端口 ( com por t )如RS-2 32
9或通用序列总线(universal serial bus, USB)等方式直接连接至第二装 置120。另外,第一装置110亦可通过网络适配卡(network interface card, NIC)与第二装置120的小型文件传输协议(trivial file transfer protocol, TFTP)服务器实现通讯。
自我更新模块113根据第三文件系统125及第二文件系统117将第一 文件头115更新为第三标头131 (示出于图2)。第三文件头131、第三文件 系统125及第二文件系统117为第三映像文件130 (示出于图2)。
请参照图2及3,图2示出了第三映像文件的示意图,图3示出了图 2的映像文件记录巻标的示意图。如图2所示,第三映像文件130包括第三 标头131、第三文件系统125及第二文件系统117。于本实施例中,第三标 头131包4舌映l象文件^r查值(image checksum) 132、识别码(vender ) 133、 片反本(reversion)码134、映{象文件尺寸(image size)字#殳135、映J象 文件记录巻标(image record tag) 136及保留(reversed)位137。
映像文件检查值132用以检查第三映像文件130的完整性。映像文件 捡查值132例如为4位,然映像文件检查值132的位数不限于此。
识别码133用以记录制造商信息。识别码133例如为一常数。于本实 施例中,识别码133为4位,然其位数不限于此。
版本码134用以记录第三映像文件130的版本。于本实施例中,版本 码134为4位,然其位^:不限于此。
映像文件尺寸字段135用以记录第三映像文件130的大小。于本实施 例中,映像文件尺寸字段135为4位,然其位数不限于此。
映像文件记录巻标136用以记录第三文件系统125及第二文件系统117 的信息。如图3所示,映像文件记录巻标136包括第一子映像文件标签138、 第一子映像文件位移字段139、第一子映像文件尺寸字段140、第一子映像 文件检查值141、第一子映像文件版本码142、第二子映像文件标签143、 第二子映像文件位移字段144、第二子映像文件尺寸字段145、第二子映像 文件检查值146及第二子映像文件版本码147。
第一子映像文件标签138及第二子映像文件巻标143分别用以记录第 三文件系统125及第二文件系统117的代号,以识别程序代码功能。第一 子映像文件标签138及第二子映像文件标签143分别为一常数。于本实施 例中,子映像文件标签138及143分别为4位,然其位数不限于此。
10第一子映像文件位移字段139用以记录第三文件系统125位于第三文 件头131之后的相对位置。第二子映像文件位移字段144用以记录第二文 件系统117位于第三文件头131之后的相对位置。于本实施例中,子映像 文件位移字段139及144分别为4位,然其位数不限于此。
第一子映像文件尺寸字段140及第二子映像文件尺寸字段145分别用 以记录第三文件系统125及第二文件系统117的大小。于本实施例中,子 映像文件尺寸字段140及145分别为4位,然其位数不限于此。
第一子映像文件检查值141及第二子映像文件检查值146分别用以检 查第三文件系统125及第二文件系统117的完整性。于本实施例中,子映 像文件检查值141及146分别为4位,然其位数不限于此。
第一子映像文件版本码142及第二子映像文件版本码147分别用以记 录第三文件系统125及第二文件系统117的版本。于本实施例中,子映像 文件版本码142及147分别为4位,然其位数不限于此。
如图2所示,保留位137用以将第三标头131保留至一固定大小。于 本实施例中,保留位137是将第三标头131保留至1024位,然保留位137 亦可保留至其它位数。
于本实施例中,映像文件记录巻标136虽以二个子映像文件标签(138 及143)、 二个子映像文件位移字段(139及144 )、 二个子映像文件尺寸字 段(140及145 )、两个子映像文件检查值(141及146 )及两个子映像文件 版本码U42及147)为例作说明,然并非用以限缩本发明的技术范围。于 实际应用时,若第三映像文件130还包括一第四文件系统,则映像文件记 录巻标136还包括第三子映像文件标签、第三子映像文件位移字段、第三 子映像文件尺寸字段、第三子映像文件检查值及及第三子映像文件版本码。
另外,在此虽以第三映像文件130为例作说明,然第一映像文件114 及第二映像文件亦具有相似的数据形态。也就是说,第一映像文件114及 第二映像文件分别具有映像文件检查值、识别码、版本码、映像文件尺寸 字段、映像文件记录巻标及保留位。其中,映像文件记录巻标包括子映像 文件标签、子映像文件位移字段、子映像文件尺寸字段、子映像文件检查 值及子映像文件版本码。
判定第一映像文件114是否需要被更新,是以比对模块122比对第一 文件头115的版本码及第二标头124的版本码。若第一映像文件114需要被更新,则比对模块122再比对记录第一文件系统116版本的子映像文件 版本码、记录第二文件系统117版本的子映像文件版本码及记录第三文件 系统12 5版本的子映像文件版本码,以找出需要被更新的文件系统。
以下结合流程图说明固件更新方法。请参照图4,其示出了依照本发明 较佳实施例的固件更新方法的流程图。并请同时结合图1 ~图3的组件标号。 首先,实施步骤S410,第一装置110的传送模块112将第一文件头115传 送至第二装置120。
接着,实施步骤S420,第二装置120的比对模块122比对第一文件头 115及第二标头124。
然后,实施步骤S430,第二装置120的合并模块123合并第二文件头 124及第三文件系统125成第二映像文件。
其次,实施步骤S440,将第二映像文件输出至第一装置110。
再者,实施步骤S450,第一装置110的自我更新模块113根据第二映 像文件,将第一映像文件114的第一文件系统116更新为第三文件系统125。
最后,实施步骤S460,根据第二文件系统117及第三文件系统125将 第一文件头115更新为第三标头131。第三文件头131、第三文件系统125 及第二文件系统117为第三映像文件130。
请参照图5,其示出了图4中更新第一标头为第三标头的详细流程图。 首先,实施步骤S461,根据第三文件系统125的代号更新第三标头131的 第一子映像文件标签138。
然后,实施步骤S462,根据第三文件系统125位于第三文件头131之 后的相对位置,更新第三文件头131的第一子映像文件位移字段139。此外, 由于第三映像文件130较佳地将所有文件系统连续地储存,所以第二文件 系统117的储存位置亦会改变。因此,实施步骤S463,根据第二文件系统 117位于第三文件头131之后的相对位置,更新第三文件头131的第二子映 像文件位移字段144。
其次,实施步骤S464,根据第三文件系统125的大小更新第三标头131 的第一子映像文件尺寸字段140。接着,实施步骤S465,根据第三映像文 件130的大小更新第三标头131的映像文件尺寸字段135。
然后,实施步骤S466,根据第三标头131的第一子映像文件检查值141 检验第三文件系统125的完整性。此外,如步骤S467所示,根据第三标头131的映像文件检查值132检验第三文件映像文件130的完整性,以确保第 一装置110可读取并执行第三映像文件130。
其次,如步骤S468所示,根据第三文件系统125的版本更新第三标头 131的第一子映像文件版本码142。然后,如步骤S469所示,更新第三标 头131的版本码134。
上述依照本发明较佳实施例的固件更新系统及方法中,第 一 装置的传 送模块将第一映像文件的第一标头传送至第二装置的比对模块,使比对模 块找出需要更新的文件系统。另外,第二装置的合并模块只将需要更新的 文件系统及文件头合并成第二映像文件,并传送至第一装置。如此一来, 第一装置的自我更新模块可根据第二映像文件更新第一映像文件。因此具 有下列部分优点
第一、可快速地找出需要被更新的文件系统。标头的尺寸极小,因此 藉由传输并检查标头的方式找出需要被更新的文件系统系相当快速。
第二、减少传输的文件系统大小以增加更新效率。第二装置仅传送第 一装置需更新的文件系统,因此可有效地减少传输的文件系统大小。此外, 更可有效地增加更新效率。
第三、组态弹性。开发人员可自行组态欲更新或改变的部分文件系统, 因此提高了开发时的弹性及效率。
第四、节省频宽。第二装置仅需传送第一装置需更新的文件系统,因 此可有效地节省频宽。
综上所述,虽然本发明已以一较佳实施例披露如上,然其并非用以限 定本发明。本领技术人员在不脱离本发明的精神和范围的前提下可作各种 的更动与润饰。因此,本发明的保护范围以本申请的权利要求为准。
1权利要求
1. 一种固件更新方法,用以更新一第一装置的一第一映像文件,该第一映像文件具有一第一标头、一第一文件系统及一第二文件系统,该固件更新方法包括下列步骤(a)将该第一标头传送至一第二装置,该第二装置具有一第二文件头及一第三文件系统;(b)于该第二装置比对该第一文件头及该第二标头;(c)于该第二装置合并该第二文件头及该第三文件系统成一第二映像文件;(d)将该第二映像文件输出至该第一装置;以及(e)根据该第二映像文件,将该第一映像文件的该第一文件系统更新为该第三文件系统。
2. 如权利要求1所述的固件更新方法,其中该步骤(b)包括下列步骤比对该第一标头的版本及该第二标头的版本;以及若该第 一标头的版本及该第二标头的版本不相同,则比对该第 一文件系统的版本、该第二文件系统的版本及该第三文件系统的版本。
3. 如权利要求1所述的固件更新方法,其中还包括下列步骤(f )根据该第三文件系统及该第二文件系统,将该第一标头更新为一第三标头,该第三标头、该第二文件系统及该第三文件系统为一第三映像文件。
4. 如权利要求3所述的固件更新方法,其中该步骤(f )包括下列步骤根据该第三文件系统的代号,更新该第三标头的 一 第 一 子映像文件标签。
5. 如权利要求3所述的固件更新方法,其中该步骤(f )包括下列步骤根据该第三文件系统位于该第三文件头之后的相对位置更新该第三文件头的一第一子映像文件,位移字段;以及根据该第二文件系统位于该第三文件头之后的相对位置以及该第三文件头的一第二子映像文件,位移字段。
6. 如权利要求3所述的固件更新方法,其中该步骤(f )包括下列步骤根据该第三文件系统的大小,更新该第三标头的一第一子映像文件尺寸字段。
7. 如权利要求3所述的固件更新方法,其中该步骤(f )包括下列步骤根据该第三文件系统的版本,更新该第三标头的 一 第 一子映像文件版本码。
8. 如权利要求3所述的固件更新方法,其中该步骤(f )包括下列步骤根据该第三标头的 一第 一子映像文件检查值,检验该第三文件系统的完整性。
9. 如权利要求3所述的固件更新方法,其中该步骤(f )包括下列步骤更新该第三标头的 一版本码。
10. 如权利要求3所述的固件更新方法,其中该步骤(f)包括下列步骤根据该第三映像文件的大小,更新该第三标头的一映像文件尺寸字段。
11. 如权利要求3所述的固件更新方法,其中该步骤(f)包括下列步骤根据该第三标头的 一检查值,检验该第三映像文件的完整性。
12. —种固件更新系统,包括一第一装置,包括一第一储存单元,用以储存一第一映像文件,该第一映像文件具有一第一标头、 一第一文件系统及一第二文件系统;一传送模块,用以输出该第一标头;及一自我更新模块,用以根据一第二映像文件更新该第一映像文件;以及一第二装置,包括一第二储存单元,用以储存一第二标头及一第三文件系统;一比对^^块,用以接收该第 一标头并比对该第 一标头及该第二标头;及一合并模块,用以合并该第二标头及该第三文件系统以输出该第二映像文件,该自我更新模块根据该第二映像文件将该第一文件系统更新为该第三文件系统。
13. 如权利要求12所述的固件更新系统,其中该比对模块比对该第一文件系统的版本、该第二文件系统的版本及该第三文件系统的版本,以找出需要被更新的文件系统。
14. 如权利要求12所述的固件更新系统,其中该自我更新模块根据该第三文件系统及该第二文件系统将该第 一文件头更新为 一第三标头,该第三标头、该第二文件系统及该第三文件系统为 一第三映像文件。
15. 如权利要求14所述的固件更新系统,其中该第三标头包括一映像文件检查值,用以检查该第三映像文件的完整性。
16. 如权利要求14所述的固件更新系统,其中该第三标头包括一版本码,用以记录该第三映像文件的版本。
17. 如权利要求14所述的固件更新系统,其中该第三标头包括一映像文件尺寸字段,用以记录该第三映像文件的大小。
18. 如权利要求14所述的固件更新系统,其中该第三标头包括一识别码,用以记录制造商信息;以及一保留位,用以将该第三标头保留至一固定大小。
19. 如权利要求14所述的固件更新系统,其中第三文件头还包括一映像文件记录巻标,用以记录该第二文件系统及该第三文件系统的化息。
20. 如权利要求19所述的固件更新系统,其中该映像文件记录巻标包括一第 一 子映像文件巻标用以记录该第三文件系统的代号;以及一第二子映像文件巻标,用以记录该第二文件系统的代号。
21. 如权利要求19所述的固件更新系统,其中该映像文件记录巻标包括一第 一子映像文件位移字段,用以记录该第三文件系统位于该第三文件头之后的相对位置;以及一第二子映像文件位移字段,用以记录该第二文件系统位于该第三文件头之后的相对位置。
22. 如^l利要求19所述的固件更新系统,其中该映4象文件记录巻标包括一第一子映像文件尺寸字段,用以记录该第三文件系统的大小;以及一第二子映像文件尺寸字段,用以记录该第二文件系统的大小。
23. 如;k利要求19所述的固件更新系统,其中该映l象文件记录巻标包括一第一子映像文件检查值,用以检查该第三文件系统的完整性;以及一第二子映像文件检查值,用以检查该第二文件系统的完整性。
24. 如权利要求19所述的固件更新系统,其中该映像文件记录巻标包括一第一子映像文件版本码,用以记录该第三文件系统的版本;以及一第二子映像文件版本码,用以记录该第二文件系统的版本。全文摘要
一种固件更新方法,用以更新第一装置的第一映像文件。第一映像文件具有第一标头、第一文件系统及第二文件系统。固件更新方法包括以下步骤。首先,将第一标头传送至第二装置。第二装置具有第二文件头及第三文件系统。接着,于第二装置比对第一文件头及第二标头。然后,于第二装置合并第二文件头及第三文件系统成第二映像文件。其次,将第二映像文件输出至第一装置。再者,根据第二映像文件将第一映像文件的第一文件系统更新为第三文件系统。
文档编号G06F17/30GK101499060SQ20081000149
公开日2009年8月5日 申请日期2008年1月29日 优先权日2008年1月29日
发明者钟氏强 申请人:广达电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1