一种更新手持设备软件的方法 【技术领域】
本发明属于通信领域,涉及一种手持设备的软件更新方法。
背景技术
目前手持设备以及个人计算机的普及率越来越高,而文件的操作是普通用户最常使用,也是最为简单的资讯传播方法;而且芯片的集成度越来越高,存储芯片的容量越来越大,以NAND FLASH、Micro SD卡(T卡)为代表的存储体容量及存储速度都得到空前的发展,普及率很高;本发明借助文件系统实现手持设备的软件更新,为用户和厂家提供一种更为便捷,简单的软件更新方式。
就目前而言,有两大类常见的软件升级方式:
其一,手持设备通过USB,串口设备或者无线设备连接到PC,在PC端运行更新程序,把版本数据同步到手持设备,实现软件版本更新,这种模式是最为常见的方式。
其二,使用服务器通过空中接口,把软件版本数据同步到手持设备,实现软件版本更新,由于空中接口带宽窄和连接不稳定的原因,通常使用是差分包等技术减少带宽占用,或使用多缓冲等技术减少连接不稳定的影响。
以上两大类方法都有明显的优点,但是在某些方面和某些场合下也有明显的不足:
如方式一中,如图1所示,用户如果需要更新手机操作系统软件,则要到手机制造商的客服中心申请服务人员为手机更新软件。一般,计算机A1存储有用户所需的用于手机A3的版本和PC端升级程序。上述服务人员使用计算机A1,通过数据线A2,连接到手机A3。在计算机A1上运行PC端升级程序,计算机A1通过数据线A2向手机A3传输数据和命令,手机A3接受数据线A2传送的数据,并写入到非易失性存储芯片内,之后实行上述用户的软件版本。
为了执行上述一般的软件升级动作,需要在计算机A1上运行专用的PC端升级程序,并且需要用专用的数据线A2,才能与手机A3建立通讯并完成软件更新动作。一般来说上述的专用的PC端升级程序比较复杂,非专业人员容易误操作,并导致软件升级失败,而且需要用专用的数据线A2,所以一般来说客户须亲自访问客服中心完成软件的更新动作,对于用户来说十分不便。
如方式二中,很多手持设备制造商规模比较小,不一定有人力和资金维护一台用于用户版本更新的服务器,并且目前无线带宽较窄,流量费用较高,造成用户升级耗时很长,实际上部分手机使用这种方法更新软件版本甚至需要30分钟以上,如果遇到电池耗尽或者是网络不稳定的情况,很容易导致用户更新失败,用户也可能会因为费用的原因不愿意尝试更新版本。
【发明内容】
本发明的目的在于提供一种更新手持设备软件的方法,把软件版本文件以文件的形式保存于存储器的文件系统中,从而把软件版本的获取和软件版本的更新分开,使得软件更新的过程中无须使用USB线、串口线、无线网络等数据交换设备,其可以方便用户方便、稳定、快速、简单的实现手持设备的程序更新。
为达到以上目的,本发明所采用的解决方案是:
一种更新手持设备软件的方法,用户保存待更新版本文件至辅助存储器的文件系统中,手持设备读取该辅助存储器内的更新版本软件,进行更新。
进一步,软件更新时,具体包括以下步骤,如图2所示:
步骤B1用户指定待更新的软件版本文件,系统重启;
步骤B2更新程序初始化手持设备硬件驱动程序;
步骤B3更新程序初始化文件系统;
步骤B4打开更新版本软件,判断该版本是否与本手持设备硬件系统相匹配;是则执行B5,否则结束更新程序;
步骤B5如需要,保存重要的系统数据和用户数据到文件系统;其中系统数据如射频校准数据、系统设置,用户数据如电话簿,短信等;
步骤B6更新程序从版本文件中读取版本数据,并写入手持设备的非易失性存储器的代码段D1、资源段D2或者NV段D3;
步骤B7如需要,从已备份的文件中读取系统数据和用户数据,并恢复至系统中;
步骤B8如需要,直接格式化非易失性存储器C8内的文件空间段D4;或者擦除非易失性存储器C8内的文件空间段D4;
更新结束,可以进行系统重启。
进一步,手持设备系统重启时,其将自动检测C8内的文件空间段D4是否已经被擦除,如果已被擦除,则格式化D4。
所述更新版本软件文件,必要时可包含配置信息,若缺少必需的配置信息,系统会使用默认的配置信息,配置信息包含:待更新模块列表,待更新模块的目的地址,是否备份、恢复系统数据和用户数据,是否格式化文件系统段等。
由于采用了上述方案,本发明具有以下特点:
(1)本方案把软件版本以文件的形式保存于存储器的文件系统中,从而把软件版本的获取和软件版本的更新分开,因而获取软件版本文件的操作简单,灵活:
本发明用户可以通过客服网站上下载软件版本文件并保存到T卡,再把T卡插入手机,执行升级;也可以通过蓝牙等无线设备从其他手机获取需要的软件版本文件,还可以把手机通过USB连接到PC,把版本保存到手机,执行升级;
(2)升级操作简单:
本方案不需要PC端更新软件,不需要USB线、串口线等数据线,不需要版本服务器,不需要专门的培训,用户也能完成软件地更新。
(3)升级过程稳定,快速:
由于本方案是使用已经保存到存储器中的版本文件升级,升级过程不涉及空中接口,而且存储器的读取速度快,所以整个过程稳定快速。
(4)系统数据用户数据自动备份、恢复。
另外用户使用中的手持设备一般会保存至关重要的系统数据和用户数据,如手机中的射频的校准数据,如果丢失会导致手机无法使用,本方法利用T卡等存储器容量大的特点,保存这些重要的数据到文件系统,版本更新结束时可自动恢复。
【附图说明】
图1是常用的手持设备更新软件的示意图。
图2是本发明关于手持设备更新软件的流程图。
图3是手持设备的内部结构示意图。
图4是非易失性存储内的空间结构图。
图5是本发明关于更新程序的构成图。
【具体实施方式】
以下结合附图所示实施例对本发明作进一步的说明。
本发明的软件更新方法适用于手机,数码相机,多媒体播放器等多种类型的手持设备。如图2所示,本发明手持设备手机为例,其包括微处理器(MCU)C1,系统数据总线C2,无线射频模块(RF)C3,数字信号处理器(DSP)C4,外设C5,显示模块(LCD)C6,内存(RAM)C7,非易失性存储器C8,辅助存储器C9,用户输入输出设备C10。
非易失性存储器C8一般为NOR FLASH或者NAND FLASH。辅助存储器C9一般为T卡、SD卡、CF卡、NAND Flash等。
一般来说非易失性存储器的空间划分如图4,包括5个部分:
代码段D1,用于存储运行正常模式的二进制机器码。
资源段D2,用于存储运行正常模式时需要使用的资源,如图片,动画,铃声,和其他资源文件。
NV段D3,用于存储运行正常模式时,存储系统数据和部分用户数据,不是所有的手持设备都有这个段,有的平台把系统数据和用户数据存储于文件系统。
文件空间段D4,用于存储系统文件和用户文件。
更新程序段D5,当用户需要使用本方案更新手机的版本时,系统重启后会启动该更新程序,该更新程序完成版本更新;一般来说该更新程序包含4部分:如图5所示,文件系统部分E1,包含运行文件系统的代码,该文件系统可能基于辅助存储器存储,也有可能基于非易失性存储器的文件空间段D4存储,在实施例中将详细说明;控制/显示部分E2,用于执行读取文件,写入非易失性存储器,并向用户显示更新程序的运行状态;驱动部分E3,包含如LCD驱动,键盘驱动,非易失性存储器驱动,辅助存储器驱动等;资源部分E4,用于存储运行显示部分E2时用到的字库,图片等资源。
一般出厂前手机已经带有完整的版本数据,包括以上的5段。
版本文件准备:如果需要,原始的版本文件需附加配置信息,并把原始版本文件和配置信息作为新的版本文件。
实施例1:
本实施例中,待更新的软件版本文件保存于辅助存储器T卡中,具体步骤如下:
步骤B1用户指定待更新的软件版本文件,该版本文件存于T卡中,系统重启;
步骤B2更新程序初始化手机硬件驱动程序;即图5中的驱动部分E3。
步骤B3更新程序初始化件系统,一般来说该文件系统为FAT文件系统,即图5中的文件系统部分E1,该文件系统基于T卡运行。
步骤B4打开更新版本软件,判断该版本是否与本手持设备硬件系统相匹配;是则执行B5,否则结束更新程序。
步骤B5保存重要的系统数据和用户数据到T卡的文件中;其中系统数据如射频校准数据、系统设置,用户数据如电话簿、短信等。
步骤B6更新程序从存储于T卡的版本文件中读取版本数据,并写入手持设备的非易失性存储器的代码段D1、资源段D2或者NV段D3。
步骤B7从已备份到T卡的文件中读取系统数据和用户数据,并恢复至系统中。
步骤B8直接格式化擦除非易失性存储器C8内的文件空间段D4;或者擦除非易失性存储器C8内的文件空间段D4,更新结束。
重启系统,将自动检测C8内的文件空间段D4是否已经被擦除(即检查是否被格式化,文件空间段D4被擦除后为非格式化状态),如果已被擦除,则格式化D4。
实施例2:
待更新的软件版本文件也可保存于非易失性存储器,如NAND FLASH或者NOR FLASH,更具体的说存储于非易失性存储器的文件空间段D4,本例中非易失性存储器为NAND FLASH;并且在本实施例中版本数据写入NAND FLASH时不覆盖文件空间段D4,具体步骤如下:
步骤B1用户指定待更新的软件版本文件,该版本文件存于NAND FLASH的文件空间段D4中,系统重启;
步骤B2更新程序初始化手持设备硬件驱动程序;即图5中的驱动部分E3。
步骤B3更新程序初始化文件系统,一般来说该文件系统为FAT文件系统,即运行图5中的文件系统部分E1,该文件系统基于存于NAND FLASH的文件空间段D4运行。
步骤B4打开更新版本软件,判断该版本是否与本手持设备硬件系统相匹配;是则执行B5,否则结束更新程序。
步骤B5,保存重要的系统数据和用户数据到NAND FLASH文件空间段D4的文件中;其中系统数据如射频校准数据、系统设置,用户数据如电话簿、短信等。
步骤B6更新程序从存储于NAND FLASH文件空间段D4的版本文件中读取版本数据,并写入手持设备的非易失性存储器的代码段D1、资源段D2或者NV段D3。
步骤B7从已备份到NAND FLASH文件空间段D4的文件中读取系统数据和用户数据,并恢复至系统中。
步骤B8直接格式化擦除非易失性存储器C8内的文件空间段D4;或者擦除非易失性存储器C8内的文件空间段D4,更新结束。
重启系统,将自动检测C8内的文件空间段D4是否已经被擦除(即检查是否被格式化,文件空间段D4被擦除后为非格式化状态),如果已被擦除,则格式化D4。
上述的对实施例的描述是为便于该技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对这些实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于这里的实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。