更新固件的方法及装置制造方法及图纸

技术编号:2918962 阅读:190 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭露了一种具有可更新的固件的装置,装置包括:一非易失性内存,用以储存固件;一频率使能控制器,用于一频率非使能信号未被发送时,根据一频率来源信号产生一频率信号,并且当频率非使能信号被发送时,将频率信号暂停;一微控制器,耦接至非易失性内存,用以根据固件及频率信号来执行装置运作,并且发送一触发信号以初始固件的一更新程序;以及一更新控制器,耦接至微控制器、频率使能控制器及非易失性内存,用以发送频率非使能信号,并用以在触发信号被发送时,更新固件。本发明专利技术提供的装置及其更新方法,可在固件更新时避免微控制器产生的时序错误或程序错误;在更新程序中不需要使用到易失性内存,提高了整体系统的效能及稳定性。

【技术实现步骤摘要】

本专利技术是有关于一种具有微控制器的装置,特别是关于一种用来更新微控制器的固件的方法及装置。
技术介绍
在我们现代化的高科技社会中,各式各样的计算机及电子装置种类是很丰富的。很多这些装置的核心部分都是一个微控制器,其可被视为这些装置的“大脑”。一般而言,微控制器是根据机器码(machine code)(或称为固件代码(firmware code))以执行所需的运作。固件是为一设置在微控制器中的电子指令集(electronic instruction set),用来使微控制器执行所需功能并达到其设计目标。举例来说,基本的电子表中的固件较简单,主要是用来追踪时间并处理使用者所需的闹钟及铃声等功能。移动电话的固件则较为复杂,能提供使用者界面、移动电话传送/接收协议、音频处理算法及其它功能等等。对于更为复杂的电子装置而言,往往需要定期地更新固件。这类固件不仅包含正常运作所需的指令集,也包含使用者设定及内建的较次要数据。因此经由更新固件便可以更新某些特性或前述的各种数据,改变装置的设置,同时也可以修复机器码中所存在的错误(或称为“臭虫(bug)”)。一般来说,固件是储存在电子装置的非易失性内存(non-volatile memory)中,并可从非易失性内存中被读取。使用非易失性内存的主要原因是非易失性内存可以保证当装置重新启动后,储存在内部的固件及相关设置仍能保存完好而不致因断电而消失,但是非易失性内存比易失性内存昂贵。因此大多数的装置会采用非易失性内存来储存固件,而采用易失性内存来储存其它次要的程序。图1为用来更新固件相关技术的微控制器架构100的示意图。如图所示,一个典型的用以更新微控制器固件的架构100是包括微控制器110、易失性内存120、非易失性内存130、闪存更新(flash update)控制器140及多工器150。一般而言,固件代码是经由多工器150从非易失性内存130中读出,Update_enable信号最初被选取以允许非易失性内存130所储存的数据(亦即固件)被送至微控制器110中。同时,微控制器110所执行的次要的程序会被储存在易失性内存120中;Data_in信号及Data_out信号分别代表用来存取非易失性内存130的数据流的数据输入路径及数据输出路径。图2为使用图1所示的微控制器架构100来进行固件更新程序的流程图。当固件需要被更新时(步骤210),通过发出Data_path_stop信号可以中止易失性内存120的数据传输路径(步骤220),如此一来,所有其它的软件程序都不能对易失性内存120进行存取。接着,微控制器110会读取非易失性内存130中的固件代码,并将固件代码复制到易失性内存120中(步骤230)。然后,微控制器110会通过改变多工器150的Update_enable信号来将固件读取来源(firmware fetching source)由非易失性内存130改为易失性内存120(步骤240),以将易失性内存120视为新的固件读取来源。接着,微控制器110会将控制信号送至闪存更新控制器140。当闪存更新控制器140接收到控制信号时,会对非易失性内存130进行固件代码更新(步骤250),同时,微控制器110会重新开始程序。亦即,当固件更新完成后,微控制器110会将固件读取来源改回非易失性内存130(步骤260),并恢复易失性内存120的数据传输。图2所示的程序虽然可以用来更新固件,但是此种作法仍具有一些缺点。首先,此种作法需要使用到一个易失性内存120,而且在更新程序中需要对易失性内存120进行独占存取。在更新程序期间,易失性内存120的数据传输路径会被中止,以避免其它程序对易失性内存120进行存取,并且对微控制器110执行固件更新造成潜在的影响。若在更新程序期间,还有其它组件需要使用到易失性内存120,则会导致系统的整体效能大幅降低。其次,现有的固件代码是自非易失性内存130被复制到易失性内存120中,而在更新程序期间自易失性内存120中读出。因此在更新程序期间,易失性内存120必须分配一部分特定空间来储存固件代码。使得微控制器110的其它程序无法使用到易失性内存120的完整空间,因此减少了易失性内存120的有效使用空间。更且,将固件由一个内存复制到另一个内存的操作本身是一个麻烦又耗时的步骤,并且需要占用微处理器的数个机器码步骤或频率周期才能执行完毕。这些额外增加的程序或机器码步骤本身即具有相当的困难度,因此更容易造成整体系统的不稳定或死机。再次,某些程序必须将使用者的某些特定数据储存在非易失性内存130中,然而在更新程序期间,微控制器110存取却无法非易失性内存130,如此一来,可能会使这些程序产生错误,进而降低系统的性能,甚至导致系统死机。
技术实现思路
为解决以上技术问题,本专利技术提供了一种具有可更新的固件的装置及更新固件的方法。本专利技术提供了一种具有可更新的固件的装置,包括一非易失性内存,用以储存固件;一频率使能控制器,用以在一频率非使能信号未被发送时,根据一频率来源信号产生一频率信号,并且当频率非使能信号被发送时将频率信号暂停;一微控制器,耦接至非易失性内存,用以根据固件及频率信号来执行装置运作,并且发送一触发信号以初始固件的一更新程序;以及一更新控制器,耦接至微控制器、频率使能控制器及非易失性内存,用以发送频率非使能信号,并用以在触发信号被发送时,更新固件。本专利技术提供了一种用以更新固件的方法,方法包括提供一非易失性内存,用以储存固件;当一频率非使能信号未被发送时,根据一频率来源信号产生一频率信号;当频率非使能信号被发送时,将频率信号暂停;提供一微控制器,用以根据固件及频率信号来执行装置运作;利用微控制器发送一触发信号以初始固件的一更新程序;利用一更新控制器发送频率非使能信号以暂停频率信号,因此在触发信号被发送时,暂停微控制器的装置运作;以及在频率非使能信号被发送之后,更新固件。本专利技术提供的一种具有可更新的固件的装置及更新固件的方法,通过固件的一更新程序将微控制器的频率信号暂停于微控制器的完整指令周期的结束时间点,可以避免微控制器产生的时序错误或程序错误。在更新程序中不需要使用到易失性内存,因此不会对易失性内存进行独占存取,增加了易失性内存的有效使用空间,提高了整体系统的效能及系统的稳定性。附图说明图1为更新固件的相关技术的微控制器架构的示意图。图2为图1所示的微控制器架构的固件更新程序的流程图。图3为本专利技术一实施例的更新固件的装置的示意图。图4为一微控制器的操作时序图。图5为本专利技术一实施例的更新固件的方法的流程图。具体实施例方式为了解决上述的问题,本专利技术揭露了一种用来更新固件的方法及装置。请参照图3,其为本专利技术一实施例的更新固件的装置300的示意图。如图所示,装置300包括一微控制器310、一频率使能控制器320、一更新控制器330及一非易失性内存(non-volatile memory)340。接下来将说明装置300中每一个元件及相关的运作。请参阅图3,微控制器310耦接至非易失性内存340,并根据位于非易失性内存340中的固件来执行装置运作。微控制器310仅在频率信号产生时才会执行装置运作,而在其它情形下,暂停(pause)运作。当频率非使能(disa本文档来自技高网
...

【技术保护点】
一种具有可更新的固件的装置,其特征在于,该装置包括:一非易失性内存,用以储存所述的固件;一频率使能控制器,用以在一频率非使能信号未被发送时,根据一频率来源信号产生一频率信号,并且当所述的频率非使能信号被发送时,将所述的频率信 号暂停;一微控制器,耦接至所述的非易失性内存,用以根据所述的固件及所述的频率信号来执行装置运作,并且发送一触发信号以初始所述的固件的一更新程序;以及一更新控制器,耦接至所述的微控制器、所述的频率使能控制器及所述的非易失性内存 ,用以发送所述的频率非使能信号,并用以在所述的触发信号被发送时,更新所述的固件。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:叶裕隆
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1