基于usb接口的嵌入式软件升级方法及系统的制作方法

文档序号:6366329阅读:178来源:国知局
专利名称:基于usb接口的嵌入式软件升级方法及系统的制作方法
技术领域
本发明涉及嵌入式系统技术领域,特别涉及一种基于USB接口的嵌入式软件升级方法及系统。
背景技术
嵌入式系统是指完全嵌入到受控器件内部、为特定应用而设计的专用计算机系统,其通常与受控器件集成在一起推出,受限于器件的工作环境要求,嵌入式系统的体积、功耗、性能和功能通常会受到一定限制。由于嵌入式系统是软硬件结合的系统,即使不对硬件进行改动,也能通过软件的升级使嵌入式系统的性能进一步得到提升,因此软件升级是 嵌入式系统后期升级维护的一项重要内容。随着嵌入式系统内容和服务越来越新、越来越丰富,软件升级也变得越来越重要和频繁,软件升级的效率和可靠性往往成为嵌入式系统乃至整个受控器件的性能和可靠性的重要评估指标。现有技术中,嵌入式系统软件升级的一般过程为将升级文件放在U盘上,同时在嵌入式系统中保存有升级管理程序,升级过程中依靠升级管理程序来完成控制。整个升级过程就是将新版本的升级文件拷贝到应用程序的指定位置(有时拷贝的同时也覆盖掉原低版本文件),升级成功后嵌入式系统重启会自动加载新版本文件运行。但是,发明人在实现本发明的过程中发现,受体积和功能的限制,现有技术的嵌入式系统通常不具备错误处理能力,但其在软件升级过程一旦发生任何错误均会直接导致嵌入式系统重新启动,由于嵌入式系统并不对错误进行修正,因而通常不会立即再次尝试升级。在此情况下,对于不覆盖原有文件的升级方式,原文件显然可直接使用继续工作,升级失败的重启显得没有必要,浪费时间;而对于覆盖原有文件的升级方式,由于原有文件已受损,失败重启只会使整个系统无法使用,同样是种没有意义的操作。此外,由于升级管理程序保存在嵌入式系统中,升级时仅更新功能软件无法对管理程序进行更新,一旦管理程序存在错误将导致整个系统无法进行有效的升级,只能通过其他手段替换掉错误的管理程序(如借助其他设备对ROM进行重写)再进行升级。或者当升级涉及到管理程序时,同样需要先通过其他手段升级管理程序,再进行功能软件的升级。上述问题导致嵌入式系统的软件升级过程复杂繁琐、耗费时间且极易发生错误。另外,对于显示装置极其简单甚至是没有显示装置的嵌入式器件(如机顶盒等),由于升级管理程序保存在嵌入式系统中,即使对升级过程中的出错信息进行记录,也很难在显示装置上进行详细的显示,依靠嵌入式系统本身很难分析出错原因和迅速改正错误。

发明内容
(一 )要解决的技术问题针对现有技术的缺点,本发明为了解决现有技术中嵌入式软件升级极易发生错误的问题,提出了一种基于USB接口的嵌入式软件升级方法及系统。( 二 )技术方案
为了实现上述目的,一方面,本发明提供了一种基于USB接口的嵌入式软件升级方法,所述方法包括步骤SI,设备开启,启动操作系统,自动启动运行升级引导程序;S2,升级引导程序加载USB驱动,检测USB接口是否有USB存储器件;如没有发现USB存储器件,则执行步骤S7 ;如发现有USB存储器件,则执行步骤S3 ;S3,进一步扫描USB存储器件,在USB存储器件上查找升级管理程序;如未找到升级管理程序,则执行步骤S7 ;如找到升级管理程序,则执行步骤S4 ;
S4,将升级管理程序拷贝到系统内存,在系统内存中运行启动升级管理程序;如不能成功启动升级管理程序,则向USB存储器件输出相应出错信息后执行步骤S7 ;如成功启动升级管理程序,则执行步骤S5 ;S5,升级管理程序进一步扫描USB存储器件,查找USB存储器件上是否有新版本的升级文件;如未在USB存储器件上找到新版本升级文件或新版本升级文件的版本有效性存在问题,则向USB存储器件输出相应出错信息后执行步骤S7 ;如新版本升级文件有效性无问题,则执行步骤S6;S6,执行升级,将新版本升级文件拷贝到系统闪存中的指定位置;若升级成功,则重启设备后运行新系统执行步骤S7 ;如升级不成功,则根据USB存储器件的出错信息,修改升级管理程序或升级文件后转至步骤SI再次尝试升级;S7,启动其它应用程序,使设备处于正常工作状态。另一方面,本发明还同时提供一种基于USB接口的嵌入式软件升级系统,所述系统包括升级引导模块、升级管理模块和工作模块,所述升级引导模块包括引导模块、USB检测模块、升级管理程序查找模块和升级管理程序启动模块,所述升级管理模块包括升级文件查找模块和升级模块;其中,引导模块,用于在设备开启并启动操作系统后,自动启动运行升级引导程序;USB存储器件检测模块,用于在升级引导程序加载USB驱动后,检测USB接口是否有USB存储器件;如没有发现USB存储器件,则启动工作模块;如发现有USB存储器件,则启动升级管理程序查找模块;升级管理程序查找模块,用于进一步扫描USB存储器件,在USB存储器件上查找升级管理程序;如未找到升级管理程序,则启动工作模块;如找到升级管理程序,则启动升级管理程序运行模块;升级管理程序启动模块,用于将升级管理程序拷贝到系统内存,在系统内存中运行启动升级管理程序;如不能成功启动升级管理程序,则向USB存储器件输出相应出错信息后启动工作模块;如成功启动升级管理程序,则启动升级文件查找模块;升级文件查找模块,用于使升级管理程序进一步扫描USB存储器件,查找USB存储器件上是否有新版本的升级文件;如未在USB存储器件上找到新版本升级文件或新版本升级文件的版本有效性存在问题,则向USB存储器件输出相应出错信息后启动工作模块;如新版本升级文件有效性无问题,则启动升级模块;升级模块,用于将新版本升级文件拷贝到系统闪存中的指定位置;若升级成功,则重启设备后运行新系统启动工作模块;如升级不成功,则根据USB存储器件的出错信息,修改升级管理程序或升级文件后重新启动引导模块再次尝试升级;
工作模块,用于启动其它应用程序,使设备处于正常工作状态。(三)有益效果本发明的技术方案中,将整个升级程序分为系统闪存中的升级引导程序和U盘中的升级管理程序,通过该方式,在升级管理程序存在问题导致升级不成功时,能够很容易的在U盘上进行修改升级管理程序本身。此外,由于升级引导程序很简单、占用空间很小,仅用来启动U盘上的升级管理程序,和软件版本和升级过程没有直接关系,因此其出错的概率很小,也不必频繁修改甚至完全无需修改,这样使升级出错的修正工作变得容易。由于本发明的操作系统启动后,在升级无法正常进行时,会直接启动其它应用程序进入工作状态,可有效减少操作系统重启浪费的时间和对当前工作造成的影响。最后,本发明中将升级过程中出现的任何错误都详细记录在U盘上,随后借助PC进行错误分析和修改,尤其适合机顶盒这样的显示装置简单、存储空间有限的嵌入式系统的错误修正。


图I为本发明的实施例中基于USB接口的嵌入式软件升级方法的处理流程示意图;图2为本发明的实施例中基于USB接口的嵌入式软件升级系统的模块结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。发明提供了一种灵活、方便的基于USB接口的软件升级方法及系统,可以解决当升级管理程序本身出现bug或升级管理程序具有局限性时无法顺利实现USB接口的软件升级功能的问题。本发明把可执行升级管理程序从嵌入式系统软件中独立出来放置到USB存储器件(如U盘等)上,并在设备的嵌入式系统中设置升级引导程序,用来将U盘上的升级管理程序拷贝到系统RAM并运行,实现升级;并且如果由于升级管理程序本身有BUG或由于新老版本差异大而导致升级出错,会自动的把相应出错信息输出到U盘中,便于分析原因和修改。具体地,参见图1,本发明的实施例中基于USB接口的嵌入式软件升级方法包括步骤SI,设备开启,启动操作系统,自动启动运行升级引导程序;S2,升级引导程序加载USB驱动,检测USB接口是否有USB存储器件(如U盘等);如没有发现USB存储器件,则执行步骤S7 ;如发现有USB存储器件,则执行步骤S3 ;S3,进一步扫描USB存储器件,在USB存储器件上查找升级管理程序;如未找到升级管理程序,则执行步骤S7 ;如找到升级管理程序,则执行步骤S4 ;S4,将升级管理程序拷贝到系统内存(如RAM等),在系统内存中运行启动升级管理程序;如不能成功启动升级管理程序,则向USB存储器件输出相应出错信息后执行步骤S7 ;如成功启动升级管理程序,则执行步骤S5 ;S5,升级管理程序进一步扫描USB存储器件,查找USB存储器件上是否有新版本的升级文件;如未在USB存储器件上找到新版本升级文件或新版本升级文件的版本有效性存在问题,则向USB存储器件输出相应出错信息后执行步骤S7 ;如新版本升级文件有效性无问题,则执行步骤S6;S6,执行升级,将新版本升级文件拷贝到系统闪存中的指定位置;若升级成功,则重启设备后运行新系统执行步骤S7 ;如升级不成功,则根据USB存储器件的出错信息,修改升级管理程序或升级文件后转至步骤SI再次尝试升级;S7,启动其它应用程序,使设备处于正常工作状态。下面结合具体的实施例对本发明的方法做进一步的说明。以海信传媒HIT500型 机顶盒软件从3. 2版本升级到4. I版本为例,这两个版本差别很大应用软件在3. 2版本中所在的目录只有一个Aisr/local/app,而4. I版本由于应用种类和数量增多,除了 Aisr/local/app目录外,还新创建了一个目录/usr/local/business用来存储部分应用软件,由于目录Aisr/local/business只是在4. I的系统上创建的,3. 2版本没有,所以3. 2版本的升级管理程序没有创建该目录的相关操作,这样,3. 2版本升级管理程序就不能支持从3. 2版本到4. I版本的升级,如果该升级管理程序是固化在嵌入式系统中的话,那它就不能完成从3. 2到4. I版本升级,只能通过其它方式来完成,比如先升级到一个过渡版本,再从过渡版本升级到4. I版本,但会使得升级过程变得更复杂,耗时长,也增加了升级过程中出问题的几率。此外,由于机顶盒本身只有很简单的显示装置,因此升级过程及出错信息很难通过机顶盒显示屏幕去显示,况且有很多情况是未知的,如升级管理程序带有BUG、新老版本差异大导致兼容性差等,而简单的出错类型提示并不足以使工作人员找到问题所在。采用本发明的方法就可以很好的解决上述问题,以下是该机顶盒软件升级的具体操作步骤I.嵌入式系统中升级之前的软件版本是3. 2,USB设备中的升级管理程序版本也是3. 2,由于3. 2版本升级管理程序没有创建目录八isr/local/business的操作,所以该版本不支持从3. 2到4. I的软件升级。2.由于升级管理程序不是固化在嵌入式系统中,而是在USB设备上,这样,可以单独将USB设备上的3. 2版本升级管理程序进行更新(创建目录/usr/local/business等操作),更新到4. I版本,使得其支持从3. 2版本到4. I版本的软件升级。3.将存储4. I版本升级管理程序的USB设备插入到嵌入式系统中,重启机顶盒就可以完成从3. 2到4. I的软件升级过程了。4.如果升级过程中有问题,可以将USB设备中的升级管理程序再次更新,更新后将USB设备插入到嵌入式系统中,重启系统重新开始升级,直到升级成功。这样,对机顶盒来说,本发明的方法具有以下优势I.由于设置了升级引导程序,升级管理程序本身或U盘存储的有问题,无法正常启动升级管理程序时,系统会继续执行其它应用程序,运行旧版本,使机顶盒仍可以正常使用;2.在执行升级时是访问U盘并将其上的升级管理程序拷贝到RAM中运行的,而不像现有技术那样是从系统的FLASH中拷贝到RAM中运行的,这样一方面节约了 FLASH的存储空间,另一方面,由于升级管理程序放置在U盘上,在升级出错时很容易拿到PC上去分析原因和修改。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是R0M/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种基于USB接口的嵌入式软件升级系统,该系统通常以与方法各步骤相对应的功能模块的形式表示;如图2所示,所述系统包括升级引导模块、升级管理模块和工作模块,所述升级引导模块包括引导模块、USB检测模块、升级管理程序查找模块和升级管理程序启动模块,所述升级管理模块包括升级文件查找模块和升级模块;其中,引导模块,用于在设备开启并启动操作系统后,自动启动运行升级引导程序;USB存储器件检测模块,用于在升级引导程序加载USB驱动后,检测USB接口是否有USB存储器件;如没有发现USB存储器件,则启动工作模块;如发现有USB存储器件,则启 动升级管理程序查找模块;升级管理程序查找模块,用于进一步扫描USB存储器件,在USB存储器件上查找升级管理程序;如未找到升级管理程序,则启动工作模块;如找到升级管理程序,则启动升级管理程序运行模块;升级管理程序启动模块,用于将升级管理程序拷贝到系统内存,在系统内存中运行启动升级管理程序;如不能成功启动升级管理程序,则向USB存储器件输出相应出错信息后启动工作模块;如成功启动升级管理程序,则启动升级文件查找模块;升级文件查找模块,用于使升级管理程序进一步扫描USB存储器件,查找USB存储器件上是否有新版本的升级文件;如未在USB存储器件上找到新版本升级文件或新版本升级文件的版本有效性存在问题,则向USB存储器件输出相应出错信息后启动工作模块;如新版本升级文件有效性无问题,则启动升级模块;升级模块,用于将新版本升级文件拷贝到系统闪存中的指定位置;若升级成功,则重启设备后运行新系统启动工作模块;如升级不成功,则根据USB存储器件的出错信息,修改升级管理程序或升级文件后重新启动引导模块再次尝试升级;工作模块,用于启动其它应用程序,使设备处于正常工作状态。可以看出,本发明的技术方案中,将整个升级程序分为系统闪存中的升级引导程序和U盘中的升级管理程序,通过该方式,在升级管理程序存在问题导致升级不成功时,能够很容易的在U盘上进行修改升级管理程序本身。此外,由于升级引导程序很简单、占用空间很小,仅用来启动U盘上的升级管理程序,和软件版本和升级过程没有直接关系,因此其出错的概率很小,也不必频繁修改甚至完全无需修改,这样使升级出错的修正工作变得容易。由于本发明的操作系统启动后,在升级无法正常进行时,会直接启动其它应用程序进入工作状态,可有效减少操作系统重启浪费的时间和对当前工作造成的影响。最后,本发明中将升级过程中出现的任何错误都详细记录在U盘上,随后借助PC进行错误分析和修改,尤其适合机顶盒这样的显示装置简单、存储空间有限的嵌入式系统的错误修正。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴, 本发明的发明保护范围应由权利要求限定。
权利要求
1.一种基于USB接ロ的嵌入式软件升级方法,其特征在于,所述方法包括步骤 Si,设备开启,启动操作系统,自动启动运行升级引导程序; S2,升级引导程序加载USB驱动,检测USB接ロ是否有USB存储器件;如没有发现USB存储器件,则执行步骤S7 ;如发现有USB存储器件,则执行步骤S3 ; S3,进ー步扫描USB存储器件,在USB存储器件上查找升级管理程序;如未找到升级管理程序,则执行步骤S7 ;如找到升级管理程序,则执行步骤S4 ; S4,将升级管理程序拷贝到系统内存,在系统内存中运行启动升级管理程序;如不能成功启动升级管理程序,则向USB存储器件输出相应出错信息后执行步骤S7 ;如成功启动升级管理程序,则执行步骤S5; S5,升级管理程序进ー步扫描USB存储器件,查找USB存储器件上是否有新版本的升级文件;如未在USB存储器件上找到新版本升级文件或新版本升级文件的版本有效性存在问题,则向USB存储器件输出相应出错信息后执行步骤S7 ;如新版本升级文件有效性无问题,则执行步骤S6 ; S6,执行升级,将新版本升级文件拷贝到系统闪存中的指定位置;若升级成功,则重启设备后运行新系统执行步骤S7 ;如升级不成功,则根据USB存储器件的出错信息,修改升级管理程序或升级文件后转至步骤SI再次尝试升级; S7,启动其它应用程序,使设备处于正常工作状态。
2.根据权利要求I所述的方法,其特征在于,步骤S5中,在向USB存储器件输出相应出错信息时,分别记录不存在新版本升级文件的问题和新版本升级文件的版本有效性问题。
3.根据权利要求I所述的方法,其特征在于,步骤S6中,根据USB存储器件的出错信息,在PC机上对升级管理程序或升级文件进行修改。
4.根据权利要求I所述的方法,其特征在于,所述升级引导程序存储在所述设备的ROM中。
5.根据权利要求I所述的方法,其特征在于,所述设备为机顶盒、电视或移动终端。
6.一种基于USB接ロ的嵌入式软件升级系统,其特征在干,所述系统包括升级引导模块、升级管理模块和工作模块,所述升级引导模块包括引导模块、USB检测模块、升级管理程序查找模块和升级管理程序启动模块,所述升级管理模块包括升级文件查找模块和升级模块;其中, 引导模块,用于在设备开启并启动操作系统后,自动启动运行升级引导程序; USB检测模块,用于在升级引导程序加载USB驱动后,检测USB接ロ是否有USB存储器件;如没有发现USB存储器件,则启动工作模块;如发现有USB存储器件,则启动升级管理程序查找模块; 升级管理程序查找模块,用于进ー步扫描USB存储器件,在USB存储器件上查找升级管理程序;如未找到升级管理程序,则启动工作模块;如找到升级管理程序,则启动升级管理程序运行模块; 升级管理程序启动模块,用于将升级管理程序拷贝到系统内存,在系统内存中运行启动升级管理程序;如不能成功启动升级管理程序,则向USB存储器件输出相应出错信息后启动工作模块;如成功启动升级管理程序,则启动升级文件查找模块; 升级文件查找模块,用于使升级管理程序进ー步扫描USB存储器件,查找USB存储器件上是否有新版本的升级文件;如未在USB存储器件上找到新版本升级文件或新版本升级文件的版本有效性存在问题,则向USB存储器件输出相应出错信息后启动工作模块;如新版本升级文件有效性无问题,则启动升级模块; 升级模块,用于将新版本升级文件拷贝到系统闪存中的指定位置;若升级成功,则重启设备后运行新系统启动工作模块;如升级不成功,则根据USB存储器件的出错信息,修改升级管理程序或升级文件后重新启动引导模块再次尝试升级; 工作模块,用于启动其它应用程序,使设备处于正常工作状态。
7.根据权利要求6所述的系统,其特征在于,在升级文件查找模块向USB存储器件输出相应出错信息时,分别记录不存在新版本升级文件的问题和新版本升级文件的版本有效性问题。
8.根据权利要求6所述的系统,其特征在于,所述系统进ー步包括错误修正模块,用 于根据USB存储器件的出错信息,在PC机上对升级管理程序或升级文件进行修改。
9.根据权利要求6所述的系统,其特征在于,所述升级引导程序存储在所述设备的ROM中。
10.根据权利要求6所述的系统,其特征在于,所述设备为机顶盒、电视或移动终端。
全文摘要
本发明涉及嵌入式系统技术领域,提供了一种基于USB接口的嵌入式软件升级方法及系统。该方法包括设备开启后运行升级引导程序,在USB存储器件上查找升级管理程序并将升级管理程序拷贝到系统内存运行;查找USB存储器件上的新版本的升级文件进行升级;若任一步骤无法继续则直接使设备处于正常工作状态,同时根据USB存储器件的出错信息,修改升级管理程序或升级文件后再次尝试升级。本发明中,将整个升级程序分为系统闪存中的升级引导程序和U盘中的升级管理程序,在升级管理程序存在问题导致升级不成功时,能够很容易地在U盘上进行修改升级管理程序本身。此外在无法正常升级时直接进入工作状态,有效减少重启时间和对当前工作的影响。
文档编号G06F13/38GK102662689SQ20121006660
公开日2012年9月12日 申请日期2012年3月15日 优先权日2012年3月15日
发明者刘立华 申请人:青岛海信传媒网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1