实时更新固件的系统和方法技术方案

技术编号:14487778 阅读:6712 留言:0更新日期:2017-01-28 19:44
本发明专利技术涉及实时更新固件的系统和方法。一种固件控制的系统包括存储器和处理器。存储器包括:用以保存用于执行关键功能的非可编程代码的第一存储块,以及用以保存用于执行普通功能的可编程代码的第二和第三存储块。在操作期间,该第二和第三存储块中的可编程代码正在被执行的一个是激活存储块。在接收到新的可编程代码之后,处理器识别非激活存储块,在其中存储该新的可编程代码,以及在使用该非可编程代码继续执行该关键功能的同时切换以执行该新的可编程代码。

【技术实现步骤摘要】

本专利技术涉及一种固件控制系统和用于更新固件控制系统的固件的方法。
技术介绍
图1示出一种用于执行至少一个关键功能和至少一个普通功能的固件控制系统100。系统100例如可以是用于提供电源至负载102的电源管理系统。系统100的至少一个关键功能包括实时控制功能、关键系统保护功能、系统启动功能等中的一个,而系统100的至少一个普通功能包括整理(housekeeping)功能、低优先级通信功能、系统初始化功能等中的一个。系统100由存储在存储器106中且由处理器108执行的固件104控制。图2示出了系统100中的固件104的结构。固件104包括:固件数据110、用于执行至少一个关键功能的非可编程代码组112,以及用于执行至少一个普通功能的可编程代码组114。非可编程代码组在固件更新期间更新。图3示出了更新图1中的固件104的传统方法200的流程图。在步骤202接收到固件更新请求时,在步骤204,系统100需要掉电或被旁路。在步骤206,新的固件存储在存储器106中,覆写固件104。在新固件在步骤208中存储在存储器106中之后,在步骤210系统100被重置以确保新固件正确操作。然而,掉电和重置电源管理系统100对于连续负载操作请求带来了风险和高成本,特别是对于关键负载(例如,数据服务器、医疗设备、交通调度系统等。因此,期望找到一种实时更新固件的方法以减少冗余备份系统投资的开销。附图说明参考下面的优选实施例的描述结合附图可以最佳地理解本专利技术及其目的和优点,在附图中:图1是传统的用于向负载提供电源的电源管理系统的示意框图;图2示出图1的系统中的固件的结构;图3是更新图1的系统中的固件的传统方法的流程图;图4是根据本专利技术一个实施例的用于实时固件更新的系统的示意框图;图5是根据本专利技术另一实施例的图4中的系统的存储器的框图;图6是根据本专利技术又一实施例的图4中的系统的存储器的框图;图7是根据本专利技术一个实施例的将固件的新的可编程代码组保存至具有图4或5的存储器的图4的系统中的方法的流程图;图8是根据本专利技术一个实施例的将固件的新的可编程代码组保存至具有图6中的存储器的图4的系统中的方法的流程图;图9是根据本专利技术一个实施例的切换图4的系统以使用新固件进行操作的方法的流程图;以及图10是根据本专利技术一个实施例的重置图4中的系统的方法的流程图。具体实施方式下面结合附图给出的具体描述意图作为本专利技术当前优选的实施例的说明,并不意图表示可以实践本专利技术的唯一形式。应理解,不同的实施例可以实现相同或等同功能,意图将这些实施例包含在本专利技术的精神和范围内。在附图中,遍及整个附图使用相同的数字指示相同的元件。另外,术语“包括”、“包含”或其任何其他变形,意图覆盖非排他性的包含,从而使得包括一列元件或步骤的模块、电路、装置组件、结构和方法步骤,其并不仅仅包括这些项,而是可以包括没有明确列出的或这些模块、电路、装置组件或方法步骤所固有的其他元件或步骤。由“包括”引领的元件或步骤在没有更多的限制的情况下,并不排除额外的相同元件或步骤(包括所述元件或步骤)的存在。在一个实施例中,本专利技术提供了一种固件控制的系统,其中所述固件包括用于执行至少一个关键功能的非可编程代码组以及用于执行至少一个普通功能的可编程代码组。所述系统包括存储器,所述存储器具有:用于存储该非可编程代码组的第一存储块,以及包括激活存储块和非激活存储块的第二和第三存储块。激活存储块存储由系统执行的第一可编程代码组,而非激活存储块存储当前未被系统执行的第二可编程代码组。所述系统还包括连接至所述存储器的处理器。所述处理器包括用于接收新的可编程代码组和固件更新请求的输入单元。所述处理器还包括:连接至输入单元的处理单元,用于执行该非可编程代码组以及存储在激活存储块中的所述第一可编程代码组;以及连接至输入单元的编程单元。编程单元识别非激活存储块,并在非激活存储块中存储该新的可编程代码组。在将该新的可编程代码组存储在非激活存储块中之后,处理单元基于固件更新请求从执行存储在激活存储块中的第一可编程代码组切换至执行非激活存储块中的该新的可编程代码组。在另一实施例中,本专利技术提供一种更新固件控制系统的固件的方法,其中所述固件包括用于执行至少一个关键功能的非可编程代码组和用于执行至少一个普通功能的可编程代码组。所述系统包括存储器,所述存储器具有用于存储该非可编程代码组的第一存储块,以及包括存储第一可编程代码组的激活存储块和存储第二可编程代码组的非激活存储块的第二和第三存储块,其中第一存储块中的非可编程代码和存储在激活存储块中的第一可编程代码组在由系统执行。所述方法包括:识别非激活存储块,在非激活存储块中存储新的可编程代码组,以及在存储该新的可编程代码组之后,基于固件更新请求从执行存储在激活存储块中的第一可编程代码组切换至执行存储在非激活存储块中的该新的可编程代码组,其中所述系统在所述存储和切换步骤期间连续执行所述至少一个关键功能。现在参考图4,示出了根据本专利技术一个实施例的用于实时固件更新的固件控制系统300的框图。固件控制系统300包括存储器302和连接至存储器302的处理器304。系统300由固件控制,所述固件包括用于执行至少一个关键功能的非可编程代码组、用于执行至少一个普通功能的可编程代码组、以及固件数据组。在一个优选实施例中,存储器302包括用于存储非可编程代码组的第一存储块306,分别用于存储第一和第二可编程代码组的第二和第三存储块308和310,以及用于存储固件数据组的第四存储块312。在一个优选实施例中,第一和第二可编程代码组分别包括用于执行第一和第二可编程代码组的基本数据组,例如第一和第二可编程代码组中的一些预定义的初始值变量、常量。在操作中,第二和第三存储块包括:一个激活存储块,其中的可编程代码组当前正在由系统300执行;以及一个非激活存储块,其中的可编程代码组未在被系统300执行。例如,若第二存储块308中的第一可编程代码组在被系统300执行,则第二存储块308是激活存储块而第三存储块310是非激活存储块。存储在第四存储块312中的该固件数据组包括用于至少一个关键功能的非可编程数据组以及用于至少一个普通功能的可编程数据组。处理器304包括:用于接收新的可编程代码组和固件更新请求的输入单元314;以及处理单元316,其连接至输入单元314,用于执行存储在第一存储块306中的非可编程代码组以及存储在当前是激活存储块的第二存储块308中的第一可编程代码组。在一个优选实施例中,新的可编程代码组包括用于执行新的可编程代码组的新的基本数据组,例如在新的可编程代码组中的一些预定的初始值变量、常量。在一个优选实施例中,固件更新请求包括在存储器302中存储新的可编程代码组的存储请求。处理器304还包括连接至输入单元314的编程单元318,其中编程单元318识别第三存储块310是非激活存储块,并基于该识别将新的可编程代码组存储至第三存储块310中。在一个优选实施例中,固件包括系统100的引导加载部(bootloader),从而一旦从输入单元314接收到存储请求,就可执行存储新的可编程代码组。引导加载部可位于非可编程代码组中或在可编程代码(例如,第一和第二可编程代码组)中本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201510625898.html" title="实时更新固件的系统和方法原文来自X技术">实时更新固件的系统和方法</a>

【技术保护点】
一种由固件控制的系统,其中所述固件包括用于执行至少一个关键功能的非可编程代码组和用于执行至少一个普通功能的可编程代码组,所述系统包括:存储器,包括:第一存储块,用于存储所述非可编程代码组,以及第二和第三存储块,其包括激活存储块和非激活存储块,其中所述激活存储块存储正由所述系统执行的第一可编程代码组,所述非激活存储块存储当前未被所述系统执行的第二可编程代码组;以及处理器,连接至所述存储器,包括:输入单元,用于接收新的可编程代码组和固件更新请求,处理单元,连接至所述输入单元,用于执行所述非可编程代码组和存储在所述激活存储块中的所述第一可编程代码组,以及编程单元,连接至所述输入单元,其中所述编程单元识别所述非激活存储块,并基于所述识别将该新的可编程代码组存储在所述非激活存储块中,其中在将该新的可编程代码组存储在所述非激活存储块中之后,所述处理单元进行从执行存储在所述激活存储块中的所述第一可编程代码组至执行所述非激活存储块中的该新的可编程代码组的切换。

【技术特征摘要】
1.一种由固件控制的系统,其中所述固件包括用于执行至少一个关键功能的非可编程代码组和用于执行至少一个普通功能的可编程代码组,所述系统包括:存储器,包括:第一存储块,用于存储所述非可编程代码组,以及第二和第三存储块,其包括激活存储块和非激活存储块,其中所述激活存储块存储正由所述系统执行的第一可编程代码组,所述非激活存储块存储当前未被所述系统执行的第二可编程代码组;以及处理器,连接至所述存储器,包括:输入单元,用于接收新的可编程代码组和固件更新请求,处理单元,连接至所述输入单元,用于执行所述非可编程代码组和存储在所述激活存储块中的所述第一可编程代码组,以及编程单元,连接至所述输入单元,其中所述编程单元识别所述非激活存储块,并基于所述识别将该新的可编程代码组存储在所述非激活存储块中,其中在将该新的可编程代码组存储在所述非激活存储块中之后,所述处理单元进行从执行存储在所述激活存储块中的所述第一可编程代码组至执行所述非激活存储块中的该新的可编程代码组的切换。2.如权利要求1的系统,其中所述第二和第三存储块中的一个被配置为默认存储块,其中如果所述处理单元未能识别所述激活存储块,则所述处理单元切换以执行所述默认存储块中的该可编程代码组。3.如权利要求2的系统,还包括:第一寄存器,其存储用于指示所述激活存储块的第一标记,和第二寄存器,其存储用于指示所述默认存储块的第二标记,其中所述处理器还包括连接至所述输入单元的控制单元以及用于设置所述第一和第二标记的所述处理单元,其中基于所述第一标记识别所述激活存储块和所述非激活存储块,且其中基于所述第二标记识别所述默认存储块。4.如权利要求1的系统,其中基于所述固件更新请求执行所述切换,其中所述固件更新请求包括实时更新请求和非实时更新请求,其中所述系统包括第三寄存器,所述第三寄存器用于存储指示所述更新请求是实时更新请求或非实时更新请求的第三标记,其中所述控制单元基于接收到所述固件更新请求设置所述第三标记,其中如果所述第三标记指示实时更新请求,则在所述切换期间所述处理单元禁用除了用在所述非可编程代码中的中断之外的所有的可屏蔽中断,以及如果所述第三标记指示非实时更新请求,则在所述切换期间所述处理单元禁用所有的可屏蔽中断,以及其中如果所述第三标记指示实时更新请求,则所述处理单元在所述切换期间初始化除所述非可编程代码之外的所述系统,以及如果所述第三标记指示非实时更新请求,在所述切换期间初始化所述系统。5.如权利要求1的系统,其中所述存储器还包括用于存储固件数据的第四存储块,其中所...

【专利技术属性】
技术研发人员:叶万富周序伟
申请(专利权)人:飞思卡尔半导体公司
类型:发明
国别省市:美国;US

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

1