一种实现软件更新的方法及装置的制作方法

文档序号:6573466阅读:184来源:国知局
专利名称:一种实现软件更新的方法及装置的制作方法
技术领域
本发明涉及软件更新技术,尤其涉及一种实现软件更新的方法及装置。
背景技术
在计算机的外围设备(打印机、扫描仪等)以及需要通过计算机进行软件更新的其它设备,如照相机以及便携式媒体播放器(MP3、MP4等)等设备中,通常存储有完成该设备各项功能的软件系统。随着技术的发展以及应用的需要,这些存储在设备内部的软件系统通常需要进行更新,以使设备所具有的功能更丰富,性能更完善。
目前,软件开发商在提供更新软件时,为了使用户能够独立对设备进行软件更新,所编制的更新软件除了包括对原始软件系统进行更新的升级软件本身以外,还需要包括指导用户进行更新的与用户交互的计算机界面软件,并需要建立该计算机界面软件与进行更新的软件本身的连接关系,该连接关系通常基于私有的客户端协议。用户在将设备与计算机连接后,使用更新软件对设备进行软件更新时,需要首先在计算机上运行更新软件,并看懂所运行的更新软件中计算机界面软件的提示内容,根据提示内容执行相应操作,更新软件根据用户操作将进行更新的升级软件复制到设备中,设备接收到进行更新的升级软件后,对设备中的原始软件系统进行自动更新。
可见,现有技术中在进行设备软件更新时,软件开发商需要额外编制一套计算机界面软件,并且基于私有客户端协议的软件实现困难,可维护性差。对于用户来说,用户还需要学会怎样使用该计算机界面软件,然后才能完成设备软件的更新。因此,现有技术中的设备软件更新过程不仅增加了开发成本,而且降低了用户体验。

发明内容
有鉴于此,本发明一方面提供一种实现软件更新的方法,另一方面提供一种实现软件更新的装置,以便降低开发成本,并提高用户体验。
本发明所提供的实现软件更新的方法,包括A、通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备;B、计算机通过所建立的外部虚拟设备,向所述设备下载进行更新的升级软件,设备接收到进行更新的升级软件后,完成自动更新。
其中,所述进行更新的升级软件为按照将程序代码和程序数据分开存放的原则进行打包形成的升级软件包。
其中,所述按照将程序代码和程序数据分开存储的原则进行打包为将程序代码和程序数据分别放入不同的文件中,并将程序代码的文件标识为读入内存的文件。
其中,更新完成后,该方法进一步包括运行更新后的软件时,将程序代码的文件读入内存中,根据程序代码的运行需求调用内存外存储的程序数据。
其中,所述外部虚拟设备包括用于表示外部虚拟设备信息的虚拟区域分配表,且虚拟区域分配表不占用实际的存储空间,所述虚拟区域分配表用于设备在与计算机进行通信时,当计算机通过标准协议读取设备的虚拟区域分配文件系统信息时,直接将虚拟区域分配表中的缺省信息提供给计算机。
其中,所述虚拟区域分配表设置在所述设备的引导系统BOOT内。
其中,所述虚拟区域分配表的缺省信息包括文件系统类型和用户定义的存储空间大小。
其中,所述用户定义的存储空间大小为根据存放升级软件的大小确定的存储空间大小,或设备本身实际所允许的存储空间大小。
其中,步骤A和步骤B之间进一步包括将设备与计算机连接,在计算机中产生代表设备的外部虚拟设备标识;
则步骤B中所述通过外部虚拟设备,向设备下载进行更新的升级软件具体包括用户将进行更新的升级软件向所显示的外部虚拟设备标识中进行复制;计算机按照标准协议向设备中下载数据,设备将来自计算机的数据中的升级软件数据写入设备内部的存储空间。
较佳地,所述设备包括正常工作模式和更新模式;则所述将设备与计算机连接之前,进一步包括将设备切换到更新模式。
其中,该方法进一步包括设备对来自计算机的数据中的控制命令数据进行虚拟处理。
较佳地,所述设备将升级软件数据写入设备内部的存储空间之前,进一步包括对升级软件数据进行校验,若校验成功,则执行所述将升级软件数据写入设备内部的存储空间的操作;若校验失败,则结束更新流程较佳地,该方法进一步包括根据更新的结果,所述设备通过所述虚拟区域分配表将所述更新结果反馈给所述计算机,并在计算机中的外部虚拟设备标识内产生表示升级软件更新成功与否的文件名。
其中,所述外部虚拟设备为虚拟U盘。
本发明所提供的实现软件更新的装置,包括虚拟设备处理单元和存储单元,其中,虚拟设备处理单元,用于通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备,并通过所建立的外部虚拟设备接收进行更新的升级软件,将所接收的升级软件发送给存储单元;存储单元,用于存储虚拟设备处理单元发送过来的所述升级软件,完成自动更新。
其中,所述虚拟设备处理单元包括虚拟设备建立模块和数据信息处理模块,其中,虚拟设备建立模块,用于通过建立虚拟区域分配表,将设备设置为计算机基于该标准协议可识别的外部虚拟设备,通过所建立的外部虚拟设备接收来自计算机的数据,将所接收的计算机数据发送给数据信息处理模块;数据信息处理模块,用于对所接收的计算机数据进行分析,若计算机数据为升级软件数据,则将升级软件数据发送给存储单元;若计算机数据为控制命令数据,则对该控制命令数据进行虚拟处理。
较佳地,所述数据信息处理模块进一步用于根据所接收的升级软件数据,对升级软件进行校验,若校验成功,则执行所述将升级软件数据发送给存储单元的操作;若校验失败,则结束更新操作。
较佳地,该装置进一步包括升级软件运行单元,用于运行更新后的升级软件,将升级软件中程序代码的文件读入内存中,根据程序代码的运行需求调用内存外存储的程序数据。
从上述方案可以看出,本发明通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备,并通过所建立的外部虚拟设备,将进行更新的升级软件下载到设备中,由设备接收到进行更新的升级软件后,完成自动更新。从而使得软件开发商无需提供计算机界面软件,而只需把进行更新的升级软件本身提供给用户即可,不仅降低了开发商的成本,而且减少了因为计算机界面软件存在bug造成的风险。并且由于用户也无需再去学习如何使用计算机界面软件,而只需按照普通拷贝文件的处理方式,将该升级软件直接拖到外部虚拟设备标识中进行复制即可。因此,也提高了用户的体验。
此外,由于无需提供配套计算机界面软件,从而使得在进行更新之前,无需在计算机上安装该计算机界面程序,可使用任何一台基于标准协议可识别该设备的计算机,完成更新操作。
并且,由于采用不占用内存的虚拟区域分配表,使得虚拟区域分配表可以设置在现有的BOOT内,利用BOOT作为引导系统,而无需调用设备的主程序,使软件更新的过程不依赖于设备的主程序,简化了更新过程。
最后,本发明中由于将升级软件按照将程序代码和程序数据分开存放的原则进行打包,并且更新后运行时将程序代码的文件读入内存中,根据程序代码的运行需求调用内存外存储的程序数据。从而降低了程序代码运行的空间,节约了成本。


图1为本发明实现软件更新方法的示例性流程图;图2为本发明实现软件更新装置的示例性结构图;图3为本发明具体实施例中实现软件更新方法的流程图;图4为本发明具体实施例中一种升级软件的打包示意图;图5为本发明具体实施例中实现软件更新装置的结构图。
具体实施例方式
本发明的基本思想是通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备,计算机通过所建立的外部虚拟设备,向设备中下载进行更新的升级软件,设备接收到进行更新的升级软件后,完成自动更新。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
参见图1,图1为本发明实现软件更新方法的示例性流程图。如图1所示,该流程包括如下步骤步骤101,通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备。
其中,标准协议可以是通用串行总线(USB)的MassStorage协议,则可将设备设置为虚拟U盘,也可以是其它标准协议,则可将设备设置为与其它标准协议相对应的虚拟设备。
为了将设备设置为基于标准协议可识别的外部虚拟设备,可在设备中建立用于表示外部虚拟设备信息的虚拟区域分配表,其中,虚拟区域分配表可以是虚拟化处理的FAT表,虚拟区域分配表不占用实际的存储空间,只用于进入更新状态时,在设备内存中加载该虚拟区域分配表,以便设备与计算机进行通信时,当计算机通过标准协议读取设备的虚拟区域分配文件系统信息时,直接将虚拟区域分配表中的缺省信息提供给计算机,而缺省信息只包括一些简单的交互信息,如存储空间大小信息等,可无需设置真正的目录区、文件区和数据区,其数据区可被直接映射到设备的实际存储区域中即可,成为一个虚拟数据区。当设备进入更新状态前,虚拟区域分配表将不会被建立,更新结束后,虚拟区域分配表会从设备内存中移除。从而达到虚拟需要分配表一方面可以帮助实现基于标准协议进行软件更新的过程,另一方面又不占用设备的内存空间的目的。
该虚拟区域分配表的缺省信息可包括文件系统类型和用户定义的存储空间大小。其中,文件系统类型包括FAT12或FAT16,用户定义的存储空间大小可以是根据存放升级软件的大小确定的存储空间大小,也可以是设备本身实际所允许的存储空间大小。其中,虚拟区域分配表中可没有缺省文件,也没有缺省目录名。
实际应用中,也可以对虚拟区域分配表中的信息进行合理更改,如还可设置一个缺省的空目录等。
其中,当设备与计算机断开连接以后,上述虚拟区域分配表自动删除。
步骤102,将设备与计算机连接,在计算机中产生代表设备的外部虚拟设备标识。
本步骤中,将设备通过标准协议接口与计算机连接后,计算机和设备之间遵从标准协议,实现握手和连接,当计算机按照标准协议读取设备的虚拟区域分配文件系统信息时,设备将虚拟区域分配表中的缺省信息提供给计算机,计算机根据所获取的信息,在计算机中产生表示设备的外部虚拟设备标识,并且点击该外部虚拟设备标识时,出现的系统信息包括文件系统类型FAT12或FAT16,固定的存储容量,即用户定义的存储空间大小等。
较佳地,该设备可包括正常工作模式和更新模式,则将设备与计算机连接之前,可将设备切换至更新模式,之后将切换至更新模式的设备与计算机连接。如可设置一个更新按键,当该更新按键被按下时,设备切换至更新模式。
步骤103,向外部虚拟设备表示的设备中下载进行更新的升级软件。
本步骤中,用户可按照向普通设备或存储区中拷贝文件的方式,将进行更新的升级软件向所显示的外部虚拟设备标识中进行复制,则计算机按照标准协议向设备中下载数据,设备对所接收的来自计算机的数据进行分析,若数据为升级软件数据,则设备将升级软件数据写入设备内部的存储空间中,其中可由外部虚拟设备驱动来完成数据写入功能;若数据为控制命令数据,则设备对该控制命令数据进行虚拟处理,处理过程参照标准协议进行。其中,虚拟处理可包括设备根据控制命令的指令,按照标准协议向计算机返回正常结果,但不执行相应操作。
较佳地,设备将升级软件数据写入设备内部的存储空间之前,进一步包括对所接收的进行更新的升级软件数据进行校验,若校验成功,将升级软件数据写入设备内部的存储空间;若校验失败,则结束更新流程。其中,校验过程可按照现有技术中的校验方法进行。如可根据升级软件的长度和校验码等来校验数据。
其中,进行更新的升级软件可以是从网络上下载的,也可以是从光盘等存储介质上获取的。
步骤104,设备接收到进行更新的升级软件后,完成自动更新。
其中,设备将所接收的进行更新的升级软件,存储到系统指定的存储区域中,即存储到虚拟区域分配表的数据区所映射的设备中的实际存储区域中,完成自动更新。具体进行更新的过程可与现有技术中的过程一致,此处不再赘述。
较佳地,本步骤中还可进一步包括根据更新结果,进行更新的设备通过所建立的虚拟区域分配表将更新结果反馈给所述计算机,并可在计算机中表示设备的外部虚拟设备标识内产生表示升级软件更新成功与否的文件名。
其中,进行更新的设备通过所建立的虚拟区域分配表将更新结果反馈给所述计算机的过程可以是进行更新的设备根据更新结果,生成与更新结果相对应的状态反馈文件,若更新成功,则生成表征正确的状态反馈文件;若更新失败,则生成表征错误的状态反馈文件。并且状态反馈文件可以字符串或数字的形式填充在虚拟区域分配表的目录和文件名区中,计算机从虚拟区域表中读取这些字符串或数字之后,在计算机中表示设备的外部虚拟设备标识内产生表示升级软件更新成功与否的文件名。
例如若更新成功,包括步骤103中对升级软件数据的校验成功,且都成功写入内部存储空间,完成了自动更新,则可在计算机中表示设备的外部虚拟设备标识内产生表示升级软件更新成功的“Success”文件名;若更新失败,包括步骤103中对升级软件数据的校验失败,则可在计算机中表示设备的外部虚拟设备标识内产生表示升级软件更新失败的“Fail”文件名。
此外,为了降低系统需要的运行代码的空间(RAM),从而节省成本,可以将现有技术中放入代码运行空间的程序数据放入RAM外的其它价格便宜的存储空间中,即升级软件运行时,可不将这部分程序数据读入内存中,而只需将程序代码读入内存即可,为此,可将进行更新的升级软件按照将程序代码和程序数据分开存放的原则进行打包,如将程序代码和程序数据分别放入不同的文件中,并将程序代码的文件标识为读入内存的文件。
之后,该方法可进一步包括在运行更新后的软件时,正确识别该升级软件的打包信息,将程序代码的文件读入内存中,根据程序代码的运行需求调用内存外存储的程序数据。从而降低了系统需要的代码运行空间,节约了成本。
以上对本发明实施例中实现软件更新的方法进行了详细描述,下面再对本发明实施例中实现软件更新的装置进行详细描述。
参见图2,图2为本发明实现软件更新装置的示例性结构图。如图2所示,该装置包括虚拟设备处理单元210和存储单元220。
其中,虚拟设备处理单元210,用于通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备,并通过所建立的外部虚拟设备接收进行更新的升级软件,将所接收的升级软件发送给存储单元220。
其中,虚拟设备处理单元210中包括虚拟区域分配表,当计算机通过标准协议读取设备的虚拟区域分配文件系统信息时,虚拟设备处理单元210将虚拟区域分配表中的缺省信息提供给计算机。并且在接收来自计算机的数据时,可对所接收的数据进行分析,若数据为升级软件数据,则设备将升级软件数据发送给存储单元220,其中可由外部虚拟设备驱动来完成数据写入功能;若数据为控制命令数据,则设备对该控制命令数据进行虚拟处理。
上述虚拟设备处理单元210可设置在引导系统BOOT中,这样,升级软件的更新过程,可不依赖于设备中系统的主程序,而独立工作。
存储单元220,用于存储虚拟设备处理单元210发送过来的进行更新的升级软件,完成自动更新。
其中,进行更新的过程与现有技术中进行更新的过程相同。
其中,虚拟设备处理单元210在具体实现时,可有多种实现形式,本实施例中只列举其中一种。如图2所示,本实施例中的虚拟设备处理单元210可具体包括虚拟设备建立模块211和数据信息处理模块212。
其中,虚拟设备建立模块211,用于按照标准协议,通过建立虚拟区域分配表,将设备设置为计算机基于该标准协议可识别的外部虚拟设备,通过所建立的外部虚拟设备接收来自计算机的数据,将所接收的计算机数据发送给数据信息处理模块212。
数据信息处理模块212,用于对所接收的计算机数据进行分析,若计算机数据为升级软件数据,则将升级软件数据发送给存储单元210;若计算机数据为控制命令数据,则对该控制命令数据进行虚拟处理。
此外,数据信息处理模块212可进一步用于根据所接收的升级软件数据,对升级软件进行校验,若校验成功,则执行所述将升级软件数据发送给存储单元210的操作;若校验失败,则结束更新操作。相应地,可根据更新结果,通过所建立的虚拟区域分配表,通知计算机在表示设备的外部虚拟设备标识内产生表示升级软件更新成功与否的文件名。
其中,升级软件可以按照与现有技术相同的处理方式进行打包,也可以为了降低代码运行的空间,而按照将程序代码和程序数据分开存放的原则进行打包,若升级软件按照与现有技术相同的处理方式进行打包,则该装置按照与现有技术相同的方式运行升级软件,若升级软件按照将程序代码和程序数据分开存放的原则进行打包,则本实施例中的装置还可以包括升级软件运行单元,用于运行更新后的升级软件,将升级软件中程序代码的文件读入内存中,根据程序代码的运行需求调用内存外存储的程序数据。
下面以标准协议为USB MassStorage协议时为例,对本发明中实现软件更新的方法及装置结合具体实施例进行详细描述。
参见图3,图3为本发明具体实施例中实现软件更新的方法的流程图。如图3所示,该流程包括如下步骤步骤301,在设备中建立虚拟U盘。
本步骤中,按照U盘的标准协议,即USB MassStorage协议,将设备设置成U盘的形式,以便与计算机连接时,计算机将设备当作U盘处理。为实现该目的,可在设备中建立用于表示虚拟U盘信息的虚拟区域分配(FAT)表,该FAT表的缺省信息包括文件系统类型和用户定义的存储空间大小。其中,文件系统类型包括FAT12或FAT16,用户定义的存储空间大小可以是根据存放升级软件的大小确定的存储空间大小,也可以是设备本身实际所允许的存储空间大小。
其中,FAT表不占用实际的存储空间,只用于与计算机进行通信时,当计算机通过USB MassStorage协议读取设备的FAT文件系统信息时,直接将FAT表中的缺省信息提供给计算机。其中,FAT表中没有缺省文件,也没有缺省目录名。
实际应用中,也可以对FAT表中的信息进行合理更改,如还可设置一个缺省的空目录等。
步骤302,将设备与计算机连接,在计算机中产生表示设备的U盘符。
本步骤中,将设备通过USB接口与计算机连接后,计算机和设备之间遵从USB MassStorage协议,实现握手和连接,当计算机按照MassStorage协议读取设备的FAT文件系统信息时,设备将FAT表中的缺省信息提供给计算机,计算机根据所获取的信息,在计算机中产生表示设备的U盘符,并且点击该U盘符时,出现的系统信息包括文件系统类型FAT12或FAT16,固定的存储容量,即用户定义的存储空间大小等。
较佳地,该设备可包括正常工作模式和更新模式,则将设备与计算机连接之前,可将设备切换至更新模式,之后将切换至更新模式的设备与计算机连接。如可设置一个更新按键,当该更新按键被按下时,设备切换至更新模式。
步骤303,将进行更新的升级软件下载到U盘表示的设备中。
本步骤中,用户可按照向普通U盘中拷贝文件的方式,将进行更新的升级软件向所显示的U盘中进行复制,则计算机按照U盘的标准协议向设备中传输数据,设备对所接收的来自计算机的数据进行分析,若数据为升级软件数据,则设备将升级软件数据写入设备内部的存储空间中,其中可由NAND驱动等闪存驱动来完成数据写入功能,如可写入NAND闪存中进行存储;若数据为控制命令数据,则设备对该控制命令数据进行虚拟处理,处理过程参照USB MassStorage协议进行。其中,设备根据控制命令数据的指令,向计算机返回正常结果,但不执行相应操作。如计算机向设备发送格式化命令,设备接收到该格式化命令后,并不进行真正的格式化,而是向计算机返回格式化完成的结果等。
较佳地,设备将升级软件数据写入设备内部的存储空间之前,进一步包括对所接收的进行更新的升级软件数据进行校验,若校验成功,将升级软件数据写入设备内部的存储空间;若校验失败,则结束更新流程。
其中,进行更新的升级软件可以是从网络上下载的,也可以是从光盘等存储介质上获取的。
步骤304,设备接收到进行更新的升级软件后,完成自动更新。
其中,进行更新的过程可与现有技术中的过程一致。
较佳地,本步骤中还可进一步包括根据更新结果,可在计算机中表示设备的U盘内产生表示升级软件更新成功与否的文件名。例如若更新成功,包括步骤303中对升级软件数据的校验成功,且都成功写入内部存储空间,完成了自动更新,则可在计算机中表示设备的U盘内产生表示升级软件更新成功的“Success”文件名;若更新失败,包括步骤303中对升级软件数据的校验失败,则可在计算机中表示设备的U盘内产生表示升级软件更新失败的“Fail”文件名。
同样,为了降低系统需要的运行代码的空间(RAM),从而节省成本,可以将现有技术中放入代码运行空间的程序数据放入RAM外的其它价格便宜的存储空间中,即升级软件运行时,可不将这部分程序数据读入内存中,而只需将程序代码读入内存即可,为此,可将进行更新的升级软件按照将程序代码和程序数据分开存放的原则进行打包,如将程序代码和程序数据分别放入不同的文件中,并将程序代码的文件标识为读入内存的文件。
例如,假设一个升级软件共占用512比特的空间,且共包括31个文件,则打包的方式可以如图4所示,图4示出了一种升级软件的打包示意图。
图4中左侧的一列表示整个升级软件,最上面一部分为文件信息,且指示该升级软件共占用512比特的空间,且共包括31个文件。下面依次表示第0到第30个文件。图4中的中间一列示出了左侧一列中最上面的文件信息的详细内容,包括16比特的包文件头信息、16比特的SRAM代码文件信息、16比特的DRAM代码文件信息、16比特的开机画面文件信息、16比特的更新画面文件信息、16比特的乐器库文件信息等。其中,16比特的包文件头信息可具体如图4中的右侧一列所示包括8比特的文件标识信息、4比特的文件大小信息和4比特的校验值信息。其中,16比特的SRAM代码文件信息可如图4中的右侧一列所示包括4比特的文件标识、4比特的文件大小、4比特的CRC校验值以及用于扩展的4比特的预留位。
其中,将程序代码和程序数据分别放入不同的文件中,如SRAM代码文件和SDRAM代码文件均属于程序代码文件,其它的文件则属于程序数据文件。之后,将程序代码的文件标识为读入内存的文件,即将程序代码文件标识为读入SRAM中,或读入DRAM中。如下所示,列举几个文件标识为0x00000001表示SRAM代码文件标识;0x00000002表示DRAM代码文件标识;0x00000010表示图片面文件标识;0x000000FF表示乐器库文件标识等。
之后,该方法可进一步包括在运行更新后的软件时,正确识别该升级软件的打包信息,将NAND闪存中存储的具有SRAM代码文件标识的程序代码文件读入内存SRAM中,将具有DRAM代码文件标识的程序代码文件读入内存DRAM中,并在运行程序代码时,根据程序代码的运行需求调用NAND闪存中存储的所需程序数据。从而降低了系统需要的代码运行空间,节约了成本。
其中,在从NAND中读取文件时,为了正确找寻到相应文件,可对文件进行如下计算并按照计算结果进行查找,由于该部分的实现,现有技术中已有多种实现方式,因此不再进行过多描述。
其中,单个文件的占用空间计算公式为FILESPACE=/*每个文件占用的NAND的空间大小*/((FILESIZE(4bytes)+NAND_PAGESIZE-1)/NAND_PAGESIZE)*NAND_PAGESIZE文件i在NAND中的起始块和起始页的计算公式为TOTALSPACE=/*当前文件之前所有文件占用的NAND的空间大小*/NAND_PAGESIZE(文件信息表)+∑FILESPACE(i-1)BLOCKNUM=TOTALSPACE/(NAND_PAGESIZE*NAND_PAGE_PERBLOCK)PAGENUM=(TOTALSPACE%(NAND_PAGESIZE*NAND_PAGE_PERBLOCK))/NAND_PAGESIZE以上对本发明具体实施例中实现软件更新的方法进行了详细描述,下面再对本发明具体实施例中实现软件更新的装置进行详细描述。
参见图5,图5为本发明实施例中实现软件更新的装置的结构示意图。如图5所示,该装置包括虚拟U盘处理单元510和存储单元520。
其中,虚拟U盘处理单元510,用于通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟U盘,并通过所建立的虚拟U盘接收进行更新的升级软件,将所接收的升级软件发送给存储单元520。
其中,虚拟U盘处理单元510中包括虚拟FAT表,当计算机通过USB的MassStorage协议读取设备的FAT文件系统信息时,虚拟U盘处理单元510将FAT表中的缺省信息提供给计算机。并且在接收来自计算机的数据时,可对所接收的数据进行分析,若数据为升级软件数据,则设备将升级软件数据发送给存储单元520,其中可由NAND驱动等闪存驱动来完成数据写入功能;若数据为控制命令数据,则设备对该控制命令数据进行虚拟处理。
存储单元520,用于存储虚拟U盘处理单元510发送过来的进行更新的升级软件,完成自动更新。其中,存储单元520可以为NAND闪存。
其中,进行更新的过程与现有技术中进行更新的过程相同。
其中,虚拟U盘处理单元510在具体实现时,可具体包括虚拟U盘建立模块511和数据信息处理模块512。
其中,虚拟U盘建立模块511,用于将设备设置为计算机基于U盘的标准协议可识别的外部虚拟U盘,通过所建立的虚拟U盘接收来自计算机的数据,将所接收的计算机数据发送给数据信息处理模块512。
数据信息处理模块512,用于对所接收的计算机数据进行分析,若计算机数据为升级软件数据,则将升级软件数据发送给存储单元510;若计算机数据为控制命令数据,则对该控制命令数据进行虚拟处理。
此外,数据信息处理模块512可进一步用于根据所接收的升级软件数据,对升级软件进行校验,若校验成功,则执行所述将升级软件数据发送给存储单元510的操作;若校验失败,则结束更新操作。相应地,可根据更新结果,通知计算机在表示设备的U盘内产生表示升级软件更新成功与否的文件名。
其中,升级软件可以按照与现有技术相同的处理方式进行打包,也可以为了降低代码运行的空间,而按照将程序代码和程序数据分开存放的原则进行打包,若升级软件按照与现有技术相同的处理方式进行打包,则该装置按照与现有技术相同的方式运行升级软件,若升级软件按照将程序代码和程序数据分开存放的原则进行打包,则本实施例中的装置还可以包括升级软件运行单元,用于运行更新后的升级软件,将升级软件中程序代码的文件读入内存中,根据程序代码的运行需求调用NAND闪存中存储的程序数据。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现软件更新的方法,其特征在于,该方法包括A、通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备;B、计算机通过所建立的外部虚拟设备,向所述设备下载进行更新的升级软件,设备接收到进行更新的升级软件后,完成自动更新。
2.如权利要求1所述的方法,其特征在于,所述进行更新的升级软件为按照将程序代码和程序数据分开存放的原则进行打包形成的升级软件包。
3.如权利要求2所述的方法,其特征在于,所述按照将程序代码和程序数据分开存储的原则进行打包为将程序代码和程序数据分别放入不同的文件中,并将程序代码的文件标识为读入内存的文件。
4.如权利要求3所述的方法,其特征在于,更新完成后,该方法进一步包括运行更新后的软件时,将程序代码的文件读入内存中,根据程序代码的运行需求调用内存外存储的程序数据。
5.如权利要求1所述的方法,其特征在于,所述设备包括用于表示外部虚拟设备信息的虚拟区域分配表,且虚拟区域分配表不占用实际的存储空间,所述虚拟区域分配表用于设备在与计算机进行通信时,当计算机通过标准协议读取设备的虚拟区域分配文件系统信息时,直接将虚拟区域分配表中的缺省信息提供给计算机。
6.如权利要求5所述的方法,其特征在于,所述虚拟区域分配表设置在所述设备的引导系统BOOT内。
7.如权利要求5所述的方法,其特征在于,所述虚拟区域分配表的缺省信息包括文件系统类型和用户定义的存储空间大小。
8.如权利要求7所述的方法,其特征在于,所述用户定义的存储空间大小为根据存放升级软件的大小确定的存储空间大小,或设备本身实际所允许的存储空间大小。
9.如权利要求1所述的方法,其特征在于,步骤A和步骤B之间进一步包括将设备与计算机连接,在计算机中产生代表设备的外部虚拟设备标识;则步骤B中所述通过外部虚拟设备,向设备下载进行更新的升级软件具体包括用户将进行更新的升级软件向所显示的外部虚拟设备标识中进行复制;计算机按照标准协议向设备中下载数据,设备将来自计算机的数据中的升级软件数据写入设备内部的存储空间。
10.如权利要求9所述的方法,其特征在于,所述设备包括正常工作模式和更新模式;则所述将设备与计算机连接之前,进一步包括将设备切换到更新模式。
11.如权利要求9所述的方法,其特征在于,该方法进一步包括设备对来自计算机的数据中的控制命令数据进行虚拟处理。
12.如权利要求9所述的方法,其特征在于,所述设备将升级软件数据写入设备内部的存储空间之前,进一步包括对升级软件数据进行校验,若校验成功,则执行所述将升级软件数据写入设备内部的存储空间的操作;若校验失败,则结束更新流程。
13.如权利要求1至12中任一项所述的方法,其特征在于,该方法进一步包括根据更新的结果,所述设备通过所述虚拟区域分配表将所述更新结果反馈给所述计算机,并在计算机中的外部虚拟设备标识内产生表示升级软件更新成功与否的文件名。
14.如权利要求1至12中任一项所述的方法,其特征在于,所述外部虚拟设备为虚拟U盘。
15.一种实现软件更新的装置,其特征在于,该装置包括虚拟设备处理单元和存储单元,其中,虚拟设备处理单元,用于通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备,并通过所建立的外部虚拟设备接收进行更新的升级软件,将所接收的升级软件发送给存储单元;存储单元,用于存储虚拟设备处理单元发送过来的所述升级软件,完成自动更新。
16.如权利要求15所述的装置,其特征在于,所述虚拟设备处理单元包括虚拟设备建立模块和数据信息处理模块,其中,虚拟设备建立模块,用于通过建立虚拟区域分配表,将设备设置为计算机基于该标准协议可识别的外部虚拟设备,通过所建立的外部虚拟设备接收来自计算机的数据,将所接收的计算机数据发送给数据信息处理模块;数据信息处理模块,用于对所接收的计算机数据进行分析,若计算机数据为升级软件数据,则将升级软件数据发送给存储单元;若计算机数据为控制命令数据,则对该控制命令数据进行虚拟处理。
17.如权利要求16所述的装置,其特征在于,所述数据信息处理模块进一步用于根据所接收的升级软件数据,对升级软件进行校验,若校验成功,则执行所述将升级软件数据发送给存储单元的操作;若校验失败,则结束更新操作。
18.如权利要求15至17中任一项所述的装置,其特征在于,该装置进一步包括升级软件运行单元,用于运行更新后的升级软件,将升级软件中程序代码的文件读入内存中,根据程序代码的运行需求调用内存外存储的程序数据。
全文摘要
本发明公开了一种实现软件更新的方法,包括通过建立虚拟区域分配表,将设备设置为计算机基于标准协议可识别的外部虚拟设备,计算机通过所建立的外部虚拟设备,向所述设备下载进行更新的升级软件,设备接收到进行更新的升级软件后,完成自动更新。此外,本发明还公开了一种实现软件更新的装置,包括虚拟设备处理单元和存储单元。本发明所提供的方法及装置,能够降低开发成本,并提高用户体验。
文档编号G06F9/445GK101030145SQ200710065299
公开日2007年9月5日 申请日期2007年4月10日 优先权日2007年4月10日
发明者张华 , 刘勇, 谭帅 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1