首页> 中国专利> 一种基于UBoot的自动升级的控制方法及系统

一种基于UBoot的自动升级的控制方法及系统

摘要

本发明公开了一种基于UBoot的自动升级的控制方法,包括:系统进行初始化,检测若连接U盘或网络服务器,则检测U盘或网络服务器是否存在脚本文件且脚本文件是否有效,若是,则根据该脚本文件编辑UBoot指令;系统根据解析编辑后的UBoot指令,检测若存在待升级的软件,则检测若有该待升级的软件的新版本的源文件,则根据该源文件对该待升级的软件进行升级,完成系统的升级。应用本发明,解决了当前需要对系统进行自动升级需求的问题。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-29

    授权

    授权

  • 2013-07-10

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20111125

    实质审查的生效

  • 2013-06-05

    公开

    公开

说明书

技术领域

本发明涉及系统更新领域,具体涉及一种基于UBoot的自动升级的控制 方法及系统。

背景技术

电子行业已进入了“后PC”时代,大大小小的嵌入式系统已深入到生 产和生活的方方面面。而且,随着芯片技术的飞速发展,不管是消费类通用 产品(手机/PMP等),还是行业专用设备(税控机/开票机等),都在采用 32位以上的硬件平台,并使用操作系统。这样的硬件、软件架构决定了系统 的软件层次会比较复杂,需要引导程序、操作系统、文件系统、多格式数据 分区等。图1是当前典型的嵌入式系统存储分配的示意图。

UBoot是目前使用最为广泛的开源引导程序(bootloader),支持大多 数的主流32位硬件平台和主流操作系统的引导。它有丰富的指令和外设驱 动,可满足绝大多数此类系统的需要。采用UBoot做引导的系统,在开发阶 段会开放控制台操作,通过在其Debug模式下手动执行指令来实现各种辅助 功能,如访问U盘、网络加载程序、读写Flash和内存、设置环境变量等。 产品定型后,控制台操作会关闭,这样就给操作系统、文件系统等的升级带 来麻烦。譬如某些专用产品(如税控机/开票机)中,需要自动升级其中的操 作系统、文件系统这两个部分。另外,对于这类产品,还需要有方便的不依 赖于操作系统的硬件故障定位方法等需求。此外,通用的UBoot可能还需要 嵌入一些设备特有的特殊操作,故UBoot自身也面临需要升级的需求。这样 就需要有一个安全、快速、方便的系统级升级方法,能够在产品阶段由服务 人员快速的完成对各级系统软件的升级。另外,对于这类产品,批量生产和 维护过程中,还需要一个便捷的不依赖于操作系统的硬件故障诊断的方法, 即可以自动引导便携式存储器中的故障诊断程序,完成故障诊断,而不影响 原有固化好的系统的运行。总体来说,需要系统具有一个有安全控制的升级 系统软件和引导故障诊断程序的“后门”。UBoot具有丰富的辅助调试指令, 通过不同的指令组合完全可以实现前述的一些升级和加载需求。因此,当前 需要一种基于UBoot的自动升级的技术方案,能够在产品阶段通过UBoot 的指令组合执行来解决上述问题。

发明内容

本发明所要解决的技术问题在于提供一种基于UBoot的自动升级的控制 方法及系统,以解决当前需要对系统进行自动升级需求的问题。

为了解决上述问题,本发明提供了一种基于UBoot的自动升级的控制方 法,包括:

系统进行初始化,检测若连接U盘或网络服务器,则检测U盘或网络 服务器是否存在脚本文件且脚本文件是否有效,若是,则根据该脚本文件编 辑UBoot指令;

系统根据解析编辑后的UBoot指令,检测若存在待升级的软件,则检测 若有该待升级的软件的新版本的源文件,则根据该源文件对该待升级的软件 进行升级,完成系统的升级。

进一步地,上述方法还可包括:所述根据脚本文件编辑UBoot指令的步 骤,包括:嵌入升级文件检测、脚本文件解密、指令解析、指令执行和提示 的各指令。

进一步地,上述方法还可包括:所述系统检测若存在待升级的软件,则 检测若有该待升级的软件的新版本的源文件,则根据该源文件对该待升级的 软件进行升级的步骤,包括:对脚本文件进行解密,检测是否存在待升级的 软件,若有,则判断U盘或网络服务器上是否有该待升级的软件的新版本的 源文件,若有,则根据该源文件对该待升级的软件进行升级,完成系统的升 级并提示升级成功。

进一步地,上述方法还可包括:所述系统判断若未连接U盘或网络服务 器,U盘或网络服务器没有脚本文件,或者脚本文件为无效;或者所述系统 根据解析编辑后的UBoot指令,检测若不存在待升级的软件或者U盘或网络 服务器不存在该待升级的软件的新版本的源文件,则提示错误,结束检测过 程,并运行原系统。

进一步地,上述方法还可包括:系统根据解析编辑后的UBoot指令,判 断若有待加载的程序,则加载该程序并运行。

进一步地,上述方法还可包括:所述系统是基于UBoot指令中fatload、 erase和cp控制升级和加载的过程。

本发明还提供了一种基于UBoot的自动升级的控制系统,包括:

初始化模块,用于对系统进行初始化,检测若连接U盘或网络服务器, 则检测U盘或网络服务器是否存在脚本文件且脚本文件是否有效,若是,则 根据该脚本文件编辑UBoot指令;

检测模块,用于根据解析编辑后的UBoot指令,检测若存在待升级的软 件,则检测是否有该待升级的软件的新版本的源文件;及

升级模块,用于根据检测模块检测到的源文件对所述待升级的软件进行 升级。进一步地,上述系统还可包括:所述初始化模块根据脚本文件编辑的 UBoot指令,包括:嵌入升级文件检测、脚本文件解密、指令解析、指令执 行和提示的各指令。

进一步地,上述系统还可包括:所述检测模块检测若存在待升级的软件, 则检测是否有该待升级的软件的新版本的源文件,具体是指:所述检测模块 对脚本文件进行解密,检测若存在待升级的软件后,则判断U盘或网络服务 器上是否有该待升级的软件的新版本的源文件。

进一步地,上述系统还可包括:所述检测模块,还用于根据解析编辑后 的UBoot指令,检测若不存在待升级的软件,或者U盘或网络服务器不存在 该待升级的软件的新版本的源文件,则提示错误,结束检测过程,并运行原 系统。

与现有技术相比,应用本发明,解决了当前需要对系统进行自动升级需 求的问题,通过UBoot指令的不同组合,就可以实现其他功能,如:从U盘 中加载一个不依赖操作系统的用户程序到内存,完成特殊功能(硬件故障诊 断等),但不影响系统中原有固化好的程序;清理系统数据分区,排除“数 据分区紊乱”的故障;修改UBoot环境变量和引导参数;从U盘中加载操作 系统启动等。升级过程自动完成,并有错误和成功提示;脚本文件经过加密 处理,保证其合法性和有效性,以及升级的安全性;基于UBoot指令实现下 载和升级,升级参数的设定,非常灵活方便。

附图说明

图1是当前典型的嵌入式系统存储分配的示意图。

图2为本发明的基于UBoot的自动升级的控制方法的流程图。

图3本发明的基于UBoot的自动升级的控制系统的结构示意图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步说明。

本发明的通过UBoot做引导程序的嵌入式系统的系统升级和程序加载的 方法,用于对系统中的操作系统、文件系统,甚至UBoot本身进行系统级升 级,还用于在产品阶段方便的自动加载故障诊断程序以完成硬件故障诊断。 通过读取连接到系统USB接口的U盘上的控制脚本文件和待升级文件(或待 加载程序),可实现自动快速升级。控制脚本可以根据需要自由编辑,不同的 控制脚本可实现不同的操作(操作系统升级、文件系统升级、UBoot自身升 级、加载故障诊断程序执行诊断等),并且升级后自动引导新的操作系统, 或加载新的文件系统,系统无需重新启动。

本发明的方法,既可以在产品售后维护过程中灵活、方便的实现产品的 系统软件的升级,又可以加载U盘上的故障诊断程序到系统内存执行诊断而 不影响原有系统,还可以在研发、生产过程中辅助实现一些特殊的功能,如 清除系统数据分区等。总之,此方法允许在产品阶段运行UBoot所有标准指 令,指令可以实现的功能都可以实现。

升级或程序加载所用的控制脚本文件,经过了加密,且升级过程有加解 密控制和设备、文件有效性检测、校验功能,保证了升级或加载过程的安全 性。

如图2所示,本发明的基于UBoot的自动升级的控制方法,包括:

步骤210、系统进行初始化,检测若连接U盘或网络服务器,则检测U 盘或网络服务器是否存在脚本文件且脚本文件是否有效,若是,则根据该脚 本文件编辑UBoot指令

所述脚本文件中包括UBoot指令码,通过脚本文件中指令码对系统的 UBoot指令进行编辑。

所述根据脚本文件编辑UBoot指令的步骤,包括:嵌入升级文件检测、 脚本文件解密、指令解析、指令执行和提示的各指令。

步骤220、系统根据解析编辑后的UBoot指令,检测若存在待升级的软 件,则检测若有该待升级的软件的新版本的源文件,则根据该源文件对该待 升级的软件进行升级,完成系统的升级。

所述系统检测若存在待升级的软件,则检测若有该待升级的软件的新版 本的源文件,则根据该源文件对该待升级的软件进行升级的步骤,包括:对 脚本文件进行解密,检测是否存在待升级的软件,若有,则判断U盘或网络 服务器上是否有该待升级的软件的新版本的源文件,若有,则根据该源文件 对该待升级的软件进行升级,完成系统的升级并提示升级成功。

还包括:所述系统判断若未连接U盘或网络服务器,U盘或网络服务器 没有脚本文件,或者脚本文件为无效;或者所述系统根据解析编辑后的UBoot 指令,检测若不存在待升级的软件或者U盘或网络服务器不存在该待升级的 软件的新版本的源文件,则提示错误,结束检测过程,并运行原系统。

进一步包括:系统根据解析编辑后的UBoot指令,判断若有待加载的程 序,则加载该程序并运行。

所述系统可以是基于UBoot指令中fatload、erase和cp控制升级和加载 的过程。本发明不限于fatload、erase和cp,也可通过UBoot指令的其他通 用指令进行控制。

如图3所示,本发明还提供了一种基于UBoot的自动升级的控制系统, 包括:初始化模块301、检测模块302和升级模块303,其中,

初始化模块301,用于对系统进行初始化,检测若连接U盘或网络服务 器,则检测U盘或网络服务器是否存在脚本文件且脚本文件是否有效,若是, 则根据该脚本文件编辑UBoot指令;

检测模块302,用于根据解析编辑后的UBoot指令,检测若存在待升级 的软件,则检测是否有该待升级的软件的新版本的源文件;及

升级模块303,用于根据检测模块302检测到的源文件对所述待升级的 软件进行升级。

所述初始化模块根据脚本文件编辑UBoot指令,包括:嵌入升级文件检 测、脚本文件解密、指令解析、指令执行和提示的各指令。

所述检测模块检测若存在待升级的软件,则检测是否有该待升级的软件 的新版本的源文件,具体是指:所述检测模块对脚本文件进行解密,检测若 存在待升级的软件后,则判断U盘或网络服务器上是否有该待升级的软件的 新版本的源文件。

所述检测模块302,还用于根据解析编辑后的UBoot指令,检测若不存 在待升级的软件,或者U盘或网络服务器不存在该待升级的软件的新版本的 源文件,则提示错误,结束检测过程,并运行原系统

本发明所述的系统升级和程序加载方法,需要系统硬件上具有USB Host 接口,并已将UBoot移植到该系统平台上。UBoot需要打开支持USB Host、 Fat文件系统的配置选项,以通过fatload、fatls等UBoot指令支持对U盘的 访问。按照下述要点实现本发明的方法:

1.定制UBoot:在UBoot启动的一系列初始化步骤即将完成而进入其主 循环之前,加入有关U盘检测、脚本文件检测、脚本文件解密和UBoot指令 解析、升级(或待加载)文件检测、UBoot指令执行的功能,并在前述一系列 功能中加入过程和错误提示(蜂鸣器指示)。

2.脚本文件中的指令码采用标准UBoot支持的指令码,根据需要加入一 个或若干个指令码的组合以实现不同的功能;

3.脚本文件编辑完毕后,需使用加密工具加入校验字段并经过加密处理, 保证其合法性和有效性,以及升级的安全性;

4.基于UBoot指令fatload、erase、cp等实现加载和升级,指令参数,如: 存储起始地址、结束地址,升级文件名、文件大小,升级文件来源(U盘或 网络服务器)等均可以根据需要自由设定,非常灵活方便。

该方法的优点还在于:

1.控制脚本支持所有的标准UBoot指令码。这样,通过UBoot指令的不 同组合,就可以实现很多特殊的功能。如:从U盘中加载一个不依赖操作系 统的用户程序到内存并执行,完成特殊功能(硬件故障诊断等),但不影响 系统中原有固化好的程序;通过UBoot的erase指令清理系统Flash数据分区, 排除“数据分区紊乱”的故障;通过环境变量相关的指令隐式的修改UBoot 环境变量和引导参数;从U盘中加载操作系统并启动等。

2.升级和加载过程自动通过U盘隐式的完成,操作内容用户不可见,并 有错误和成功提示(蜂鸣器提示、指示灯闪烁等)。

3.升级和加载过程的任何错误都会退出升级模式,并正常运行原系统。

4.除了以上功能,还可以升级UBoot引导程序自身。

5.升级和加载的控制脚本,具有检验字段并经过了加密,内容不可见, 具有较好的安全性,可作为系统的一个维护后门。

下面结合具体实例对本发明作进一步说明,其中,一个完整脚本文件的 范例如下(加密之前),用于自动升级UBoot自身:

#此文件名固定为script.txt,用于内核、文件系统升级和硬件检测,只 读;

#执行步骤:1.内核升级;2.FS升级;3.硬件测试;各步均非必需;

#此脚本文件加载到0xE00000,2个升级文件及硬件测试程序加载到 0x8000;

#UBoot升级,根据需要更换UBoot文件名

fatload usb 00x8000UBoot-3010RB-20101010(0.06_APE_12864).bin 0x30000

protect off all

erase 7f0000007f02ffff

cp.b 80007f00000030000

#校验字:4649

注:(#号开始的为注释部分和校验字段,其他为UBoot指令码)

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不 局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范 围应该以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号