一种系统升级方法及装置的制造方法_2

文档序号:9910776阅读:来源:国知局
据头信息,所述系统数据包括第一系统数据和第二系统数据,所述数据头信息包括第一系统数据头信息和第二系统数据头信息。
[0039]系统数据被预先存储在emmc(EmbeddedMulti Media Card)、nand flash等存储设备中,这类存储设备可读写且掉电数据不丢失,从而保证数据系统数据不被丢失,并且可以被更新或修改。
[0040]启动引导程序Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中然后跳转到操作系统所在的空间,启动操作系统运行。本实施例中,设置了两类Bootloader。其中,第一启动引导程序用于读取系统数据的数据头信息。第二类Bootloader存储于系统数据中。
[0041]在本实施例中,智能设备中烧录的系统数据包括两份,两份系统数据在初始时完全一致,后续的系统运行或者更新,都是在两份系统数据的基础上进行。如果出现更新失败造成其中一份数据不完整,系统也可以利用另一份数据进行运行,并且对不完整的数据进行更新或者修复。
[0042]因此,当任意一个时刻触发系统开机时,两份操作系统的数据可能完全一致,也可能不同,其中一份与另一份相比,版本更新。
[0043]步骤S102:分别校验所述第一系统数据头信息和第二系统数据头信息的完整性和版本信息,依据所述校验结果,确定所述第一系统数据和第二系统数据中数据完整且版本较新的系统数据为待加载系统数据,另一系统数据为待更新系统数据。
[0044]步骤S103:加载所述待加载系统数据到动态内存。
[0045]步骤S104:所述待加载系统数据中的启动引导程序判断当前启动模式类型。
[0046]在本实施例中,每一份系统数据中都设置了各自的Bootloader,作为本方案中的第二类Bootloader,在此定义为第二 Bootloader。加载哪一个系统数据,则由哪一个系统数据中的Boo 11 oader执行判断启动模式类型的过程。
[0047]启动模式包括两种,一种是开机模式,也就是设备正常的开机操作。另一种是升级模式,也就是系统在更新了系统数据后重新启动的模式。Bootloader可以通过系统历史信息来判断当前是哪一种模式。
[0048]步骤S105:当所述当前启动模式为升级模式时,将包含有所述升级模式及所述待更新系统数据标识的信息发送给处理器,以使得所述处理器对所述待更新系统数据进行升级。
[0049]如果为升级模式,则将待更新数据的标识发送给系统的处理器,由处理器完成对待更新系统数据的升级。
[0050]在本实施例中,待更新系统数据的标识可以为A、B等带有标识性的字母或者其他符号或数字,当处理器接收到该标识后,能够根据预先存储的标识与数据的对应的关系,确定是那一份系统数据需要被更新,进而执行更新操作。
[0051]当升级成功后,该方法还包括重新启动系统,进而使得系统重新执行上述步骤S101-步骤S105,将升级后的系统数据加载进来,以实现系统的升级。
[0052]步骤S106:当所述当前启动模式为开机模式时,将包含有所述开机模式的信息发送给处理器,以使得所述处理器控制系统启动。
[0053]本申请实施例公开的系统升级方法中,在系统内设置两份系统数据,第一启动引导程序判断两份数据中的完整且版本较新的一份作为当前需要加载的待加载系统数据,从而保证系统加载的到的系统数据是完整的并且是版本较新的,而将另一份数据进行升级时,如果升级成功,则该升级后的数据会在系统下一次启动时被加载使用,而如果升级失败,因为还有另外一份完整的数据,虽然版本不是最新,但是并不影响系统的正常启动,从而避免了现有技术中由于系统升级失败导致智能设备无法使用的问题,大大提升了升级过程的稳定性,提升了智能设备的可靠性。
[0054]步骤S102中具体的校验过程以及确定待加载数据和待更新数据的过程如图2所示,包括:
[0055]步骤S201:判断第一系统数据是否完整,记录判断结果为第一判断结果。
[0056]步骤S202:判断第二系统数据是否完整,记录判断结果为第二判断结果。
[0057]步骤S203:判断第一判断结果和第二判断结果是否为不相同,若是,则执行步骤S204,若否,则执行步骤S205。
[0058]步骤S204:确定所述判断结果为完整的系统数据为待加载数据,判断结果为不完整的系统数据为待更新数据。
[0059]步骤S205:当第一判断结果和第二判断结果均为完整时,判断第一系统数据的版本是否高于第二系统数据的版本,若是,则执行步骤S206,若否,则执行步骤S207。
[0060]步骤S206:确定第一系统数据为待加载数据,第二系统数据为待更新数据。
[0061]步骤S207:确定第二系统数据为待加载数据,第一系统数据为待更新数据。
[0062]在本实施例中,如果出现两份数据都完整并且版本一致,则可以任意选择其中一个作为待加载数据,另一个作为待更新数据。
[0063]结合上述实施例的有益效果可以看出,本申请实施例公开的方法中,不会出现两份系统数据都不完整的情况,因为,一旦出现一份不完整,则会通过升级或修复,将其补充完整。从而也保证了升级过程的稳定性。
[0064]在上述实施例中,第一系统数据和第二系统数据可以存储在相同的区域,也可以如图3所示,存储在不同的区域。如图3中,第一系统数据存储于第一存储区域,第二系统数据存储于第二存储区域。每一系统数据中都包含该数据的数据头,Bootloader以及系统的其他数据。第一 Bootloader在读取两份数据的数据头信息时,需要从不同的区域获取。
[0065]但是,本实施例并不限定上述数据存储形式,其仍然可以如图4所示,其中,第一系统数据存储于第一存储区域,第二系统数据存储于第二存储区域。每一系统数据中都包含该数据的数据头以及系统的其他数据。而两份数据的数据头共同存储于第三存储区域,Bootloader在读取两份数据的数据头信息时,从第三存储区域直接获取。
[0066]需要说明的是,当待更新系统数据进行更新后,其数据头信息也会相应的发生变化。
[0067]在上述实施例中,待更新系统数据的标识也直接为该系统数据的存储区域地址,例如当待更新系统数据为第一系统数据时,其存储区域为第一存储区域,则直接将第一存储区域的地址发送给处理器,处理器根据该地址可以找到需要进行更新的系统数据。
[0068]本申请同时公开了一种系统升级装置,其结构如图5所示,包括:第一启动引导模块501和第二启动引导模块502,其中,第一启动引导模块501包括:
[0069]信息读取单元5011,用于第一启动引导程序读取预先设置的系统数据的数据头信息,所述系统数据包括第一系统数据和第二系统数据,所述数据头信息包括第一系统数据头信息和第二系统数据头信息;
[0070]检验单元5012,用于分别校验所述第一系统数据头信息和第二系统数据头信息的完整性和版本信息,
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1