一种嵌入式设备的固件升级方法及嵌入式系统的制作方法

文档序号:8258060阅读:498来源:国知局
一种嵌入式设备的固件升级方法及嵌入式系统的制作方法
【技术领域】
[0001]本发明涉及嵌入式设备技术领域,特别涉及一种嵌入式设备的固件升级方法及嵌入式系统。
【背景技术】
[0002]嵌入式设备的构成,是以嵌入式处理芯片为主,配合相关的支撑硬件和应用程序,共同组成一个软硬件于一体的可独立工作的设备。相比于手机或者平板电脑等高智能设备,所谓的嵌入式设备往往是更为简单的小型电子设备,不具备高智能操作系统,但依然可以通过内置的应用程序来实现诸多实用功能。例如,心率带/脉搏表或类似的小型可穿戴电子设备,均属于嵌入式设备。
[0003]嵌入式设备中应用程序的升级,需要利用系统中的启动器(bootloader)触发下载的流程,使系统开始下载应用程序的固件升级包。另外在一些情况下,启动器本身也需要下载更新,但启动器一般保存在嵌入式芯片的闪存中,属于系统的一部分,一旦在闪存中擦除系统即会崩溃;所以常规的系统难以完成自身的更新替换。
[0004]现有的一些嵌入式设备,选择将启动器保存在RAM当中,得以避免升级启动器时擦除闪存中的系统部分,导致系统崩溃的情况;使得系统能够完成启动器的更新替换。但是这种方案的缺陷在于,一旦启动器升级过程中设备意外掉电,便会导致启动器丢失,系统重新上电后失去启动器,同样会造成崩溃。也就是启动器的升级存在巨大的风险。
[0005]另一些现有的嵌入式设备采用设置双启动器的方式。这样即使升级过程中一个启动器丢失,另一个备用的启动器依然可以维持系统运行,安全性比较高。不过这种方案的缺陷是,双启动器导致系统过于复杂,而且启动器的升级频率极低,设置双启动器使得系统不得不具有不必要的冗余。
[0006]可见现有技术的缺陷是,无法在不增加系统复杂程度的前提下,稳定的实现启动器升级,并且不受到掉电的影响。现有技术中不存在嵌入式设备的系统能够简捷且安全的实现启动器的升级。

【发明内容】

[0007]有鉴于此,本发明的目的在于提供一种嵌入式设备的固件升级方法及嵌入式系统,通过重新构造嵌入式系统的整体结构,从而简捷且安全的实现启动器的升级。
[0008]为实现上述目的,有如下技术方案:
[0009]一种嵌入式设备的固件升级方法,所述方法包括:
[0010]自嵌入式芯片闪存的上电起始位起划分出触发区;将启动器分解为触发器和下载器,将所述触发器保存到所述触发区中;
[0011]从嵌入式芯片闪存中划分出彼此独立擦写的下载区和应用区;将所述下载器保存至下载区;将应用程序保存至所述应用区,并在所述应用区中保存引导器;
[0012]当出现针对应用区的下载指令,则触发器触发所述下载区中的下载器更新应用固件;当出现针对下载区的下载指令,则所述触发器触发所述应用区中的引导器更新下载器固件。
[0013]所述从嵌入式芯片闪存中划分出彼此独立擦写的下载区和应用区具体为:
[0014]从嵌入式芯片闪存中划分出第一区作为下载区,并将所述下载区的地址范围发送至触发器;
[0015]从嵌入式芯片闪存中划分出第二区作为应用区,并将所述应用区的地址范围发送至触发器。
[0016]所述触发器触发所述下载区中的下载器更新应用固件具体为:
[0017]触发器从所述下载区的地址范围中调用所述下载器,并令所述下载器根据应用区的下载指令,进行应用固件的下载。
[0018]所述触发器触发所述应用区中的引导器更新下载器固件具体为:
[0019]触发器从所述应用区的地址范围中调用所述引导器,并令所述引导器根据下载区的下载指令,进行下载器固件的下载。
[0020]所述方法还包括:
[0021]从嵌入式芯片闪存中划分出第三区作为驱动区,并将所述驱动区的地址范围发送至触发器;将驱动程序保存至所述驱动区;
[0022]当出现针对驱动区的下载指令,触发器从所述下载区的地址范围中调用所述下载器,并令所述下载器根据驱动区的下载指令,进行驱动固件的下载。
[0023]一种嵌入式系统,所述系统具体为:
[0024]在嵌入式芯片闪存的上电起始位起划分出触发区;将启动器分解为触发器和下载器,将所述触发器保存到所述触发区中;从嵌入式芯片闪存中划分出彼此独立擦写的下载区和应用区;将所述下载器保存至下载区;将应用程序保存至所述应用区,并在所述应用区中保存引导器;
[0025]所述触发器用于,在出现针对应用区的下载指令时,触发所述下载区中的下载器更新应用固件;或在出现针对下载区的下载指令时,触发所述应用区中的引导器更新下载器固件。
[0026]所述系统还包括:
[0027]分区模块,用于在嵌入式芯片闪存的上电起始位起划分出触发区;从嵌入式芯片闪存中划分出第一区作为下载区,并将所述下载区的地址范围发送至触发器;从嵌入式芯片闪存中划分出第二区作为应用区,并将所述应用区的地址范围发送至触发器。
[0028]所述触发器触发所述下载区中的下载器更新应用固件具体为:
[0029]触发器从所述下载区的地址范围中调用所述下载器,并令所述下载器根据应用区的下载指令,进行应用固件的下载。
[0030]所述触发器触发所述应用区中的引导器更新下载器固件具体为:
[0031]触发器从所述应用区的地址范围中调用所述引导器,并令所述引导器根据下载区的下载指令,进行下载器固件的下载。
[0032]所述分区模块还用于:
[0033]从嵌入式芯片闪存中划分出第三区作为驱动区,并将所述驱动区的地址范围发送至触发器;将驱动程序保存至所述驱动区;
[0034]则所述触发器还用于,在出现针对驱动区的下载指令时,从所述下载区的地址范围中调用所述下载器,并令所述下载器根据驱动区的下载指令,进行驱动固件的下载。
[0035]通过以上技术方案可知,本发明存在的有益效果是:通过重新构建系统,将触发器保存在上电起始位的触发区中,避免了系统崩溃的发生,并且不增加系统的复杂程度;独立擦写的下载区和应用区能够实现相互引导下载更新程序,实现稳定的应用程序更新和下载器更新。
【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本发明实施例所述系统结构示意图;
[0038]图2为本发明实施例所述方法流程图。
【具体实施方式】
[0039]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0040]为实现嵌入式设备中安全稳定的启动器升级,防止升级过程中意外掉电导致系统崩溃,并且不额外的增加系统的复杂程度;本实施例中对于嵌入式系统的结构进行了重新的设计和构造。参见图1所示,为本发明实施例所述嵌入式系统的具体实施例。本实施例中所述系统具体结构如以下描述:
[0041]首先,本实施例中将所述启动器(bootloader)拆分为触发器(boot)和下载器(loader)两部分。所述启动器原本用于触发下载的流程,使系统开始下载应用程序的固件升级包;而拆分后,所述触发器将用于触发下载流程开始,下载器则用于引导下载的过程。
[0042]同时本实施例中将利用划分模块自嵌入式芯片闪存的上电起始位起划分出触发区,将所述触发器保存到所述触发区中。所述上电起始位,就是闪存重新上电后首先开始运行的存储位置。本实施例中从上电起始位开始,取连续的若干存储空间作为触发区,所述触发区的大小应不小于触发器的大小;并且所述触发区独立擦写,这保证了触发区中保存的触发器不会在闪存其他内容更新时被擦除。
[0043]因为所述触发器是为系统运行的起点,系统运行以及固件的升级流程均由触发器触发开启,所以一旦闪存中触发器被擦除,系统即会崩溃。这也是现有技术当中,各种导致系统崩溃情况的主要原因所在。而且一般的启动器升级过程当中,主要是对启动器中的下载器进行升级,触发器本身往往不发生变化。
[0044]所以本实施例中,将启动器拆分,并且将所述触发器独立的保存在触发区中,所产生的影响有两个:一是将触发器保存在一个独立的触发区中,保证了触发器不被误删,使触发器的安全性得到保障,不受其他任何闪存擦写操作的影响;二是触发区位于上电起始位,所以一旦系统上电,触发器就能够被自动执行,无需通过其他程序来查询触发器的位置,使得触发器的执行不受到其他程序的限制。
[0045]这样一来,无论闪存中执行任何擦写操作,或者发生意外掉电导致任何程序的丢失,触发器始终安全的保存在触发区中,一旦重新上电就能够被有效执行。本实施例中通过上述的设计规避了系统崩溃的风险。
[0046]然后,本实施例中还将利用划分模块从嵌入式芯片闪存中划分出彼此独立擦写的下载区和应用区。所述启动器的另一部分一一下载器即保存在所述下载区中;而系统中的应用程序均被早存在应用区中。所述下载区和应用区也是彼此独立擦写的。
[0047]由于下载区和应用区存在彼此独立擦写的特点,所以利用下载区中的下载器可以引导下载应用区中的应用程序,完成应用区中内容的擦写与程序更新;这一点基本等同于现有技术中应用程序固件升
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1