CN101667133B - 固件更新方法和使用该方法更新固件的芯片 - Google Patents
固件更新方法和使用该方法更新固件的芯片 Download PDFInfo
- Publication number
- CN101667133B CN101667133B CN200910204033A CN200910204033A CN101667133B CN 101667133 B CN101667133 B CN 101667133B CN 200910204033 A CN200910204033 A CN 200910204033A CN 200910204033 A CN200910204033 A CN 200910204033A CN 101667133 B CN101667133 B CN 101667133B
- Authority
- CN
- China
- Prior art keywords
- firmware
- chip
- primary controller
- control module
- memory
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
提供了一种固件更新方法和使用该方法更新固件的芯片。该芯片包括控制单元以及存储用于控制单元的原始固件的第一存储器,并且还包括:第二存储器;以及主控器,用于检查是否存在用于控制单元的更新的固件,并且当存在更新的固件时将该更新的固件写入第二存储器中以供控制单元使用。所述芯片和固件更新方法能够简化固件更新过程,从而减少固件更新成本和时间。
Description
技术领域
本发明涉及一种固件更新方法和使用该方法更新固件的芯片。更具体地,本发明涉及一种能够简化固件更新过程并且减少固件更新成本和时间的固件更新方法以及使用该方法更新固件的芯片。
背景技术
目前,诸如网络集线器之类的设备中的很多芯片都包括微控制器单元(MCU)以及存储用于该MCU的固件的只读存储器(ROM),该固件是在对芯片进行流片(tape out)时固化在ROM中的。图1示出了这种传统芯片的示意性框图。如图1所示,芯片100包括通过ROM总线彼此连接的ROM101和MCU 102。当激活芯片100时,MCU 102读取存储在ROM 101中的固件,然后利用该固件来执行操作。
在芯片使用过程中,为了修正硬件的缺陷或固件中的错误、给芯片增加新的功能、或者进一步优化固件以提高芯片的性能,常常需要对固件进行更新。然而,在传统芯片中,用于MCU 102的固件被固化在ROM 101中,不能通过直接对ROM 101进行擦除和写入来更新该固件,因此,往往需要对整个芯片进行重新流片以便将ROM中的原始固件替换为更新的固件。这样的固件更新过程较为复杂,且成本高、时间长。
因此,需要一种改进的固件更新方法和使用该方法更新固件的芯片,以便简化固件更新过程,从而减少固件更新成本和时间。
发明内容
考虑到以上问题而做出了本发明。本发明的一个目的是提供一种芯片,其能够在需要更新固件时,利用简化的固件更新过程来更新固件,而不需要被重新流片,从而减少固件更新成本和时间。
本发明的另一目的是提供一种固件更新方法,其能够简化固件更新过程,从而减少固件更新成本和时间。
根据本发明的一个方面,提供了一种芯片,该芯片包括控制单元以及存储用于控制单元的原始固件的第一存储器,并且还包括:第二存储器;主控器(master),用于检查是否存在用于控制单元的更新的固件,并且当存在更新的固件时将该更新的固件写入第二存储器中以供控制单元使用,并设置控制信号;以及复用器,用于从主控器接收该控制信号,当该控制单元复位后,该复用器根据该控制信号选择性地将从第一存储器输出的该原始固件或从第二存储器输出的该更新的固件提供给该控制单元。
根据本发明的另一方面,提供了一种固件更新方法,用于包括控制单元、存储用于该控制单元的原始固件的第一存储器、第二存储器、复用器以及主控器的芯片,该方法包括以下步骤:由主控器检查是否存在用于控制单元的更新的固件;以及当存在更新的固件时,由主控器将该更新的固件写入第二存储器中以供控制单元使用,并设置控制信号;复位该控制单元;以及通过复用器从主控器接收该控制信号,当该控制单元复位后,根据该控制信号选择性地将从第一存储器输出的该原始固件或从第二存储器输出的更该新的固件提供给该控制单元。
在根据本发明的实施例的芯片和固件更新方法中,当需要更新用于芯片中的控制单元的固件时,将更新的固件直接写入与存储原始固件的只读存储器不同的存储器中,使得控制单元能够利用该更新的固件来执行操作,由此既达到了更新固件的目的,又消除了对芯片进行重新流片的需要,并且减少了固件更新成本和时间。
附图说明
通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目的、特征、优点将会变得更加清楚,其中:
图1示出了传统芯片的示意性框图;
图2是根据本发明的实施例的芯片的示意性框图;
图3是示出根据本发明的实施例的芯片更新方法的流程图。
具体实施方式
下面将参照附图来描述根据本发明的实施例的芯片和芯片更新方法。
图2示出了根据本发明的实施例的芯片的示意性框图,该芯片可以是诸 如网络集线器之类的设备中的独立芯片、或者是这种独立芯片的一部分。如图2所示,芯片200包括只读存储器(ROM)201、主控器(master)202、静态随机存取存储器(SRAM)203、多路复用器(MUX)204以及微控制器单元(MCU)205。主控器202连接到位于芯片200外部的外部存储器400。
外部存储器400用于存储更新的固件,该更新的固件用于替换芯片200中的原始固件,以便修正硬件的缺陷或固件中的错误、给芯片200增加新的功能、或者进一步优化固件以提高芯片200的性能等。外部存储器400可以是只读存储器或者其它可用来存储固件的存储器。根据需要,外部存储器400可以位于芯片200外部的任何位置,优选地位于与芯片200相同的电路板上。当需要更新芯片200中的原始固件(具体地说,用于MCU 205的原始固件)时,芯片制造商或者用户可以将所准备的更新的固件存储到外部存储器400中。可以经由网络将该更新的固件下载到外部存储器400中,也可以将该更新的固件在本地直接写入外部存储器400中。
ROM 201存储用于MCU 205的原始固件,即,在最初对芯片200进行流片时固化在其中的用于MCU 205的固件。当芯片200被激活时,ROM 201响应于MCU 205的读取固件的请求而将该原始固件输出到MUX 204。
主控器202检查是否存在用于MCU 205的更新的固件,并且当确定存在更新的固件时,将该更新的固件写入SRAM 203中。具体地,当例如通过向芯片200加电或施加使能信号而激活芯片200时,主控器203与外部存储器400通信,并且确定在外部存储器400中是否存储了用于MCU 205的更新的固件。如果存在更新的固件,则主控器202将该更新的固件从外部存储器400写入SRAM 203中,然后设置用于控制MUX 204的输出的控制信号SEL,例如,将SEL设为1,以表示存在更新的固件。在开始上述检查操作之前,主控器203还向MCU 205施加复位信号RESET,以使其处于复位状态,从而防止其执行固件读取操作。在完成所述检查操作之后,主控器202去除施加到MCU 205上的复位信号,使得MCU 205退出复位状态并且开始读取固件。在本实施例中,主控器202在每次激活芯片200时都自动地执行所述检查操作以及随后的写入操作,然而本发明不限于此。也可以在激活芯片200之后,主控器202在预定时刻或者以预定周期执行所述检查操作以及随后的写入操作。或者,也可以额外地提供能够与该主控器202通信的用户接口,使得主控器202可响应于用户经由该用户接口发出的指令而执行所述检查操作以及随后的写入操作。主控器202可以用硬件、软件、固件、或者它们中的两个或更多个的组合来实现,但优选地利用硬件来实现。
SRAM 203用于存储由主控器202写入的更新的固件。此外,SRAM 203还响应于来自MCU 205的读取固件的请求而将存储在其中的所述更新的固件输出到MUX 204。SRAM 203的容量可以根据实际需要而变化,例如可以为12K字节。应当认识到,尽管在这里使用了SRAM来存储更新的固件,但 这仅仅是说明性的,而不是限制性的。实际上,也可以使用快闪存储器(flashmemory)或者其它能够用来存储固件的可读写存储器来存储所述更新的固件。
MUX 204选择性地将从ROM 201输出的原始固件或从SRAM 203输出的更新的固件提供给MCU 205。具体地,当MUX 204从主控器202接收到用于控制MUX 204的输出的控制信号SEL时,若SEL信号已经被设置,例如,SEL信号被设为1,则表示存在更新的固件,MUX 204将从SRAM 203输出的更新的固件提供给MCU 205,否则,若SEL信号未被设置,例如,SEL信号为0,则表示不存在更新的固件,MUX 204将从ROM 201输出的原始固件提供给MCU 205。
MCU 205读取来自ROM 201的原始固件或者来自SRAM 203的更新的固件,并且根据所读取的固件执行操作。具体地,当激活芯片200时,由于主控器202将复位信号RESET施加到MCU 205,因此MCU 205进入复位状态。当主控器202完成所述检查操作之后,主控器202去除施加到MCU 205的复位信号,使得MCU 205退出复位状态,并且向ROM 201和SRAM 203二者发出读取固件的请求。如上所述,响应于该请求,ROM 201和SRAM 203分别将原始固件和更新的固件输出到MUX 204,然后MUX 204根据从主控器202接收到的控制MUX 204的输出的控制信号SEL而选择性地将所述原始固件或更新的固件提供给MCU 205。随后,MCU利用从MUX 204提供的这一固件来执行操作。
可以看到,在根据本发明的实施例的芯片200中,除了存储原始固件的ROM 201以外,还设置了主控器202和可读写存储器203。当存在更新的固件时,主控器202将该更新的固件写入可读写存储器203中,使得MCU 205利用该更新的固件而不是原始固件来执行操作,由此,达到了更新固件的目的,而不需要对芯片200进行重新流片以更新ROM 201中的固件。这简化了固件更新过程,从而减少了固件更新成本和时间。
应当认识到,上面描述的芯片200的结构是示意性的,也可以根据需要而设计其它结构。例如,可以将SRAM 203置于芯片200外部,并且利用高速数据总线来将SRAM 203分别与主控器202、MUX 204和MCU 205相连接。此外,尽管在上文所述的芯片中,主控器202在执行所述检查操作之前向MCU205施加复位信号,并且在完成所述检查操作之后去除该复位信号,但这不 是必需的,也可以不事先施加该复位信号,而是在完成所述检查操作并且确定存在更新的固件之后再向MCU 205施加一复位信号,以使其开始读取固件。
下面,将参照图3来描述根据本发明的实施例的固件更新方法。该固件更新方法可以由图2所示的芯片200执行。
如图3所示,当激活芯片200时,在步骤S301中,主控器202向MCU205施加复位信号RESET,以使其进入复位状态。接下来,在步骤S302中,主控器202检查是否存在用于MCU 205的更新的固件。具体地,主控器202与外部存储器400通信,并且确定在外部存储器400中是否存储了用于MCU205的更新的固件。当在步骤S302中确定存在更新的固件时,在步骤S303中,主控器202将该更新的固件从外部存储器400写入SRAM 403。
在执行了步骤S303之后,在步骤S304中,主控器202去除施加到MCU205上的复位信号,并且设置向MUX204发送的用于控制MUX 204的输出的控制信号SEL,例如,SEL信号被设为1。
另一方面,当在步骤S302中确定不存在更新的固件时,在步骤S305中,主控器202去除施加到MCU 205上的复位信号,而不设置向MUX 204发送的控制信号SEL,例如,SEL信号为0。
接下来,在步骤S306中,由于施加到MCU 205上的复位信号被去除,因此MCU 205退出复位状态,并且向ROM 201和SRAM 203二者发送读取固件的请求。响应于该请求,ROM 201将存储在其中的原始固件输出到MUX204,SRAM 203将存储在其中的更新的固件输出到MUX 204。
随后,在步骤S307中,MUX 204选择性地将从ROM 201输出的原始固件或从SRAM 203输出的更新的固件提供给MCU 205。具体地,当MUX 204从主控器202接收到已被设置的控制信号SEL时,例如,SEL信号被设为1,MUX 204将从SRAM 203输出的更新的固件提供给MCU 205。另一方面,当MUX 204从主控器202接收到未被设置的控制信号SEL时,例如,SEL信号为0,MUX 204将从ROM 201输出的原始固件提供给MCU 205。由此,MCU 205可以在主控器202的控制下,利用从ROM 201输出的原始固件或从SRAM 203输出的更新的固件来执行操作。
本领域技术人员应当认识到,上文所述的方法不是限制性的。例如,尽管在上文所述的方法中,在步骤S301向MCU 205施加复位信号,并且在步 骤S304或S305去除该复位信号,但这不是必需的,也可以不执行这两个步骤,而是在完成所述检查操作并且确定存在更新的固件之后再向MCU 205施加一复位信号,以使其开始读取固件。
可以看到,在根据本发明的实施例的固件更新方法中,当存在更新的固件时,主控器202将该更新的固件写入与只读存储器201不同的可读写存储器203,使得MCU 205能够利用该更新的固件来执行操作。因此,不再需要像传统技术那样对芯片200进行重新流片,从而简化了固件更新过程,节省了固件更新成本和时间。
应当注意,尽管在上文中以芯片为例描述了本发明,但是本发明的应用不限于芯片,而是可以广泛应用于存在更新固件的需要的其它设备或器件。
尽管在这里示出和描述了本发明的示例性实施例,但是本领域技术人员应当理解,在不背离权利要求及其等同物中限定的本发明的范围和精神的情况下,可以对这些示例性实施例做出各种形式和细节上的变化。
Claims (12)
1.一种芯片,包括控制单元以及存储用于控制单元的原始固件的第一存储器,其特征在于,该芯片还包括:
第二存储器;以及
主控器,用于检查是否存在用于控制单元的更新的固件,并且当存在更新的固件时将该更新的固件写入第二存储器中以供控制单元使用,并设置控制信号;
复用器,用于从主控器接收该控制信号,当该控制单元复位后,该复用器根据该控制信号选择性地将从第一存储器输出的该原始固件或从第二存储器输出的该更新的固件提供给该控制单元。
2.如权利要求1所述的芯片,其中,主控器通过与位于芯片外部的第三存储器通信并且确定在第三存储器中是否存储了所述更新的固件,来执行所述检查。
3.如权利要求1所述的芯片,其中,主控器在每次激活芯片时都自动地执行所述检查。
4.如权利要求1所述的芯片,其中,在激活芯片之后,主控器在预定时刻或以预定周期执行所述检查。
5.如权利要求1所述的芯片,其中,主控器响应于用户的指令而执行所述检查。
6.如权利要求1所述的芯片,其中复用器用于响应于来自控制单元的读取固件的请求,当该控制信号为1时,将更新的固件提供给控制单元。
7.一种固件更新方法,用于包括控制单元、存储用于该控制单元的原始固件的第一存储器、第二存储器、复用器以及主控器的芯片,该方法包括以下步骤:
由主控器检查是否存在用于控制单元的更新的固件;
当存在更新的固件时,由主控器将该更新的固件写入第二存储器中以供控制单元使用,并设置控制信号;
复位该控制单元;以及
通过复用器从主控器接收该控制信号,当该控制单元复位后,根据该控制信号选择性地将从第一存储器输出的该原始固件或从第二存储器输出的更该新的固件提供给该控制单元。
8.如权利要求7所述的固件更新方法,其中,主控器通过与位于芯片外部的第三存储器通信并且确定在第三存储器中是否存储了所述更新的固件,来执行所述检查。
9.如权利要求7所述的固件更新方法,其中,主控器在每次激活芯片时都自动地执行所述检查。
10.如权利要求7所述的固件更新方法,其中,在激活芯片之后,主控器在预定时刻或以预定周期执行所述检查。
11.如权利要求7所述的固件更新方法,其中,主控器响应于用户的指令而执行所述检查。
12.如权利要求7所述的固件更新方法,还包括以下步骤:
当该控制信号为1时,响应于来自控制单元的读取固件的请求而将存储在第二存储器的更新的固件提供给控制单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910204033A CN101667133B (zh) | 2009-09-30 | 2009-09-30 | 固件更新方法和使用该方法更新固件的芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910204033A CN101667133B (zh) | 2009-09-30 | 2009-09-30 | 固件更新方法和使用该方法更新固件的芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101667133A CN101667133A (zh) | 2010-03-10 |
CN101667133B true CN101667133B (zh) | 2012-09-05 |
Family
ID=41803758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910204033A Active CN101667133B (zh) | 2009-09-30 | 2009-09-30 | 固件更新方法和使用该方法更新固件的芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101667133B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541582A (zh) * | 2010-12-30 | 2012-07-04 | 上海三旗通信科技股份有限公司 | 基于高通基带芯片的固件更新的优化方法 |
CN102945173B (zh) * | 2012-10-31 | 2016-06-29 | 青岛海信宽带多媒体技术有限公司 | 用户程序在线升级***和升级方法 |
KR102261815B1 (ko) * | 2014-10-30 | 2021-06-07 | 삼성전자주식회사 | 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
CN104618888B (zh) * | 2014-12-24 | 2018-04-06 | 惠州Tcl移动通信有限公司 | 一种移动终端nfc芯片固件更新***及方法 |
CN106708567B (zh) * | 2016-12-06 | 2020-07-31 | 英业达科技有限公司 | 固件更新方法及*** |
CN109375958A (zh) * | 2018-09-20 | 2019-02-22 | 锐捷网络股份有限公司 | 一种固件加载方法及电路板 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585926A (zh) * | 2001-09-17 | 2005-02-23 | 索马网络公司 | 软件更新方法、设备和*** |
CN1783001A (zh) * | 2004-11-29 | 2006-06-07 | 华为技术有限公司 | 一种基本输入输出***启动的方法 |
CN101271396A (zh) * | 2008-04-15 | 2008-09-24 | 威盛电子股份有限公司 | 电子装置及其在线更新固件的方法 |
-
2009
- 2009-09-30 CN CN200910204033A patent/CN101667133B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585926A (zh) * | 2001-09-17 | 2005-02-23 | 索马网络公司 | 软件更新方法、设备和*** |
CN1783001A (zh) * | 2004-11-29 | 2006-06-07 | 华为技术有限公司 | 一种基本输入输出***启动的方法 |
CN101271396A (zh) * | 2008-04-15 | 2008-09-24 | 威盛电子股份有限公司 | 电子装置及其在线更新固件的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101667133A (zh) | 2010-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598632B (zh) | 一种光模块的固件升级方法及装置 | |
CN101667133B (zh) | 固件更新方法和使用该方法更新固件的芯片 | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
CN103777972B (zh) | 基于现场可编程门阵列的***、配置方法以及升级方法 | |
TWI595364B (zh) | 自動修復映像檔的方法及伺服器系統 | |
JP6225431B2 (ja) | マイクロプログラムを更新可能な光トランシーバ | |
US7856614B2 (en) | Programmable system-on-chip apparatus and method for updating firmware | |
CN102855146A (zh) | 固件更新***及方法 | |
EP3518097A2 (en) | Firmware updating method and electronic device using the same | |
CN101169729A (zh) | 嵌入式***及其更新应用程序的方法 | |
CN115658160A (zh) | 基于多核异构soc的多操作***升级方法、装置及*** | |
CN112925569A (zh) | 一种固件数据处理方法、装置、设备及存储介质 | |
CN108121560A (zh) | 差分包升级方法、装置、终端及计算机可读存储介质 | |
CN103501327A (zh) | 基于移动终端应用的下载方法和装置 | |
CN102081526B (zh) | 基本输入/输出***架构 | |
US11449329B2 (en) | Vehicle control device and program update system | |
CN107621943A (zh) | 一种fpga动态批量烧写***及方法 | |
CN110618828B (zh) | 一种数据更新方法及装置 | |
CN116560688B (zh) | 用于域控制器的软件更新方法 | |
CN108664275A (zh) | 备份配置参数的方法、***及存储介质 | |
CN102226888A (zh) | 框架加载方法及设备 | |
KR20150072963A (ko) | 다중시스템 및 이의 부팅 방법 | |
CN109697077B (zh) | 硬盘固件启动方法、装置及设备 | |
CN111447514B (zh) | 无源光网络sfp ont的eeprom***以及其数据更新控制方法 | |
US6301709B1 (en) | Circuit pack system with semi-or fully-automatic upgrade capability |
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 |