一种设备固件升级方法和装置的制造方法_2

文档序号:9375316阅读:来源:国知局
过程中出现断电给用户带来的影响,提升用户体验度。
[0056]为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
【附图说明】
[0057]为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0058]图1示出了本发明实施例提供的一种设备固件升级方法所涉及的一种实施系统的结构示意图;
[0059]图2示出了本发明实施例1所提供的一种设备固件升级方法流程图;
[0060]图3示出了本发明实施例2所提供的一种设备固件升级方法的具体流程图;
[0061]图4示出了本发明实施例3所提供的一种设备固件升级装置的结构示意图。
【具体实施方式】
[0062]下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0063]考虑到相关的文件系统中,在对设备的固件进行升级的过程中,如果由于异常情况断电关机(例如:设备电量不足导致断电关机),此次固件升级失败,导致设备中的固件不完整,当该设备再次启动时,由于其固件不完整而不能正常引导设备中的应用程序/操作系统等软件启动,导致设备不能正常使用。这种情况下,用户只能将设备返回厂商进行维修,影响用户的正常使用,降低了用户对设备的使用体验度。基于此,本发明实施例提供了一种设备固件升级方法和装置。
[0064]参见图1,其示出了本发明实施例提供的设备固件升级方法所涉及的一种实施系统的结构示意图,该系统包括:设备10和运行在设备10中的固件11 ;固件11包括多个引导分区12、一个内核分区13和一个根文件系统分区14 ;
[0065]其中,设备10在启动时,会从设备的多个引导分区12中确定正常的引导分区12,然后运行确定的引导分区12,并由运行的引导分区12读取内核分区13的数据来启动设备的内核,如果设备的内核可以正常启动,那么就通过内核读取并挂载根文件系统分区14中的数据,启动设备的根文件系统分区14,如果设备的根文件系统14可以正常启动,那么就通过根文件系统14启动设备的操作系统,从而完成设备的启动,但在设备没有正常关机或者在固件升级时因异常情况导致固件升级终止的情况下,那么在进行设备的开机操作后,与正常启动一样,设备会从设备的多个引导分区12中确定正常的引导分区12,然后运行确定的引导分区12,并由运行的引导分区12读取内核分区13的数据来启动设备的内核,但由于设备固件升级失败或者设备没有正常关机时,都有可能造成内核的损坏,那么此时设备中损坏的内核或者根文件系统是不能被使用而启动操作系统的,那么此时运行的引导分区12就会读取网络配置,通过网络获取固件的镜像文件,对设备的固件进行升级操作,在升级完成后就可以保证固件11中的多个引导分区12、内核分区13和根文件系统分区14都是完整正常且可以正常使用的,从而可以对设备的系统进行引导和启动。
[0066]设备10,可以是现有的任何在启动时需要固件引导并启动所安装的操作系统的移动终端或者嵌入式设备,这里不再一一赘述。
[0067]实施例1
[0068]参见图2,本实施例提供一种设备固件升级方法,该方法包括如下步骤:
[0069]步骤200、当获取到设备的启动指令时,从设备的多个引导分区中确定正常的引导分区。
[0070]设备的启动指令,用于使设备开机并引导设备的系统启动;可以是设备在关机状态下,用户通过设备的开关按键向设备发出的指令,也可以是设备在升级之后,为了启用新升级的固件或者操作系统,设备在升级完毕之后会执行一个启动指令,自行重新启动,从而在启动设备时加载升级后的固件或者操作系统,使用户可以使用新升级的固件和操作系统。
[0071]引导分区,就是设备中固件的一部分,在设备启动后,最先启动的固件部分,作用与计算机中的B10S(基本输入输出系统,Basic Input Output System)类似,用于对设备的硬件进行初始化、为设备的操作系统提供底层的硬件接口、和从内核分区中读取内核数据并引导内核启动。
[0072]在移动终端或者嵌入式设备中,引导分区一般采用U-Boot (通用引导装载器,Universal Boot Loader)分区,来引导并启动移动终端或者嵌入式设备,当然,在移动终端或者嵌入式设备中也可以采用如ARMboot等可以实现U-Boot相同功能的其他引导分区,这里不再一一赘述。
[0073]设备在启动后,会对预设的多个引导分区中的每个引导分区逐一进行校验,当确定多个引导分区中的任一引导分区校验成功时,就可以确定该校验成功的引导分区为正常的引导分区,从而运行该正常的引导分区。
[0074]就是说,设备预先设置有至少两个引导分区,这些引导分区的数据相同而且起的作用也是相同的,在设备启动后,会先校验多个引导分区中的第一引导分区,当第一引导分区校验成功时,就运行第一引导分区,而不会继续对后面的多个引导分区进行校验,当第一引导分区校验不成功时,设备就会继续校验第二引导分区的数据,当第二引导分区校验成功时,就运行第二引导分区,也不会继续对后面的多个引导分区进行校验,当第二引导分区校验不成功时,设备就会继续校验后面的引导分区,直到校验出数据正确的引导分区后,运行该校验正确的引导分区。
[0075]步骤202、通过运行确定的引导分区判断设备的固件是否需要升级。
[0076]固件是指运行于设备中底层的软件,用于提供移动终端或者嵌入式系统的硬件和启动后运行的应用程序/操作系统等软件之间的接口。
[0077]通常情况下,固件会存储于移动终端或者嵌入式系统中的电可擦除只读存储器(Electrically Erasable Programmable ROM, EEPROM)或闪存(FLASH)芯片中。
[0078]设备中的固件,除了包括引导分区之外,还包括内核分区和根文件系统分区。
[0079]内核分区,可以向设备中的操作系统提供基本的功能,是操作系统工作的基础,包括一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的功能模块(如时钟管理、进程调度等)以及关键性数据结构,在启动系统时需要由引导分区进行启动并常驻内存向操作系统提供相应的功能。
[0080]根文件系统分区,是安装在设备中的操作系统的运行基础,根文件系统分区中的根文件系统(比如设备中Bin目录下的文件)在设备的内核挂载后由内核第一个挂载,用于对操作系统中的其他文件和服务进行启动和挂载。
[0081]步骤204、如果是,下载固件的镜像文件,使用下载的镜像文件对设备的固件升级。
[0082]从步骤200和步骤202的对固件中引导分区、内核分区和根文件系统分区的描述可以看出,引导分区中的数据正确,就可以启动内核分区中的数据,而内核分区中的数据正确可以正常启动时,就可以挂载根文件系统分区中的文件,而根文件系统启动后,就可以对设备中的操作系统中的文件和服务进行启动和挂载,从而完成设备的启动操作。但是当内核分区和根文件系统分区中的数据和文件有损坏时,设备的固件就不能对设备中的操作系统中的文件和服务进行启动和挂载,就不能完成系统的启动,那么在这种情况下就需要下载固件的镜像文件。
[0083]综上所述,本实施例提供的设备固件升级方法,当获取到设备的启动指令时,运行设备的多个引导分区中确定正常的引导分区,然后通过运行确定的引导分区判断设备的固件是否需要升级,在确定设备的固件需要升级时,就可以下载固件的镜像文件对设备的固件进行升级;即使在对设备的固件进行升级的过程中,由于异常情况断电关机而导致设备的固件升级失败的情况下,只要设备的固件中设置的多个引导分区中有一个可以正常使用,就可以引导设备进行固件的升级,完成固件的升级操作,而完整的固件就可以正常引导设备中的应用程序/操作系统等软件启动,使用户可以正常使用设备,而无需将设备返回厂商进行维修,从而缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
[0084]相对于现有技术的固件中只设置有一个引导分区且不能对引导分区进行升级的情况,在本实施例中提出的设备的固件,由于设置有多个引导分区,所以使用下载的镜像文件对设备的固件升级步骤包括以下步骤(I)至(4):
[0085](I)从多个
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1