软件更新方法和便携式终端设备技术

技术编号:2821441 阅读:266 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种软件更新方法和一种便携式终端设备。该软件更新方法用于基于差分数据通过无线通信对作为压缩代码存储在置于便携式终端内的非易失性存储器中的软件进行更新,包括以下步骤:提供具有容错性的文件系统区;在软件更新执行时,对所述软件的压缩代码进行解压缩,并且将已解压缩的代码装载到随机存取存储器;基于所述差分数据,在所述随机存取存储器中更新所述软件;对已更新的软件进行压缩;以及将与压缩更新软件的压缩更新部分相对应的压缩更新代码序列的备份存储在所述文件系统区中,然后将与所述压缩更新软件的压缩更新部分相对应的压缩更新代码序列写回到所述非易失性存储器。

【技术实现步骤摘要】

本专利技术涉及一种便携式终端设备,更具体地涉及一种基于通过无 线通信获取的差分数据对存储在置于便携式终端内的非易失性存储器 中的软件进行更新的方法。
技术介绍
目前,诸如蜂窝电话的便携式终端被广泛地使用。为了增加这种 便携式终端的功能、提高其性能、纠正其故障等,有必要更新软件, 例如存储在便携式终端的存储器中的程序。可以使用通过无线通信对 <更携式终端执行软件更新的固件空中传输(Firmware over-the-air FOTA)技术,该技术使用用于存储软件的诸如闪存的可再写的非易 失性存储器(例如,参见日本未审查的专利申请公开No. 2006-309516)。随着用于便携式终端的软件的功能变得越来越复杂,必要的存储 器容量也增加。因此,存储装置的成本会增加,而存储装置的成本增 加又会影响产品的价格。为了解决上述提到的问题,提出了一种将预先已被压缩的软件装 载到存储器中并在软件被执行时再解压缩被压缩的软件的方法。根据 该方法,软件自身的大小被减小了。因此,可以期望达到在一定程度 上减小必要的存储器容量的效果。然而,由于对压缩的软件进行解压缩需要额外的时间,因此不期望减少启动时间的效果。诸如闪存的可再写的非易失性半导体存储器被用作用于便携式终 端的存储装置。因此,闪存用于存储用于便携式终端的程序。在从闪存进行引导(booting up)的情形下,程序区中的程序临时从闪存传送到随机存 取存储器(RAM),然后在RAM中执行该程序。当在闪存中存储已被预先压缩的代码的情形下,从闪存装栽到 RAM上的代码的大小被减小。因此,存储器的闲置空间会增加,而 增加的闲置空间可以用作存储区域。然而,由于当执行引导时必需对压缩的代码进行解压缩,所以这 需要很长一段时间去启动软件。在通过使用FOTA更新由压缩代码组成的软件的情形下,执行 以下顺序的步骤1) 解压缩闪存中的压缩代码,把解压缩的代码传送到RAM作 为原始代码;2) 根据解压缩的软件和通过无线通信获取的差分文件更新软件;和3) 在便携式终端中压缩更新的软件,并将经压缩的更新的软件写回到闪存。
技术实现思路
在上述描述的步骤中,如果在将压缩的更新软件写回到闪存中时发生断电,不仅RAM中的压缩的更新代码会损坏,而且更新前的压 缩代码也会被损坏,由于更新前的压缩代码被压缩的更新代码所覆 写。因此,当电力恢复后,不能执行对更新前的压缩软件进行解压缩 以再继续软件更新。另外,由于执行上述顺序的步骤,用于更新闪存中的压缩软件的 软件更新处理需要相对长的时间。因此,由于在写回到闪存的过程中 电量耗尽,所以便携式终端发生断电的可能性很大。即使当压缩的更新软件正被写入非易失性存储器时便携式终端设 备发生断电,也希望允许便携式终端设备在该便携式终端的电源被恢 复后再继续软件更新。根据本专利技术的一个实施例的软件更新方法,用于基于差分数据通 过无线通信对作为压缩代码存储在置于便携式终端内的非易失性存储器中的软件进行更新,包括下述步骤提供具有容错性的文件系统 区;在执行软件更新时,对软件的压缩代码进行解压缩,并将解压缩 的代码装栽到随机存取存储器中;基于差分数据对随机存取存储器中 的软件进行更新;压缩更新的软件;以及将与压缩更新软件的压缩更 新部分相对应的压缩更新代码序列的备份存储在文件系统区中,然后 将与压缩更新软件的压缩更新部分相对应的压缩更新代码序列写回到 非易失性存储器中。在与压缩更新软件的压缩更新部分相对应的压缩更新代码序列被 写入非易失性存储器之前,压缩更新代码序列的备份被存储到具有容 错性的文件系统区。因此,即使在执行软件更新时由于断电而写回到 非易失性存储器失败,当电力恢复后,存储在文件系统区中的与压缩 更新软件的压缩更新部分相对应的压缩更新代码序列也被写回到非易 失性存储器的相应区,然后软件更新能够再继续。更具体地^兌,软件可以:陂分成多个构件(component),该多个 构件都可以被压缩,多个被压缩的构件可以被存储在非易失性存储器 中。当执行软件更新时,软件的所有的被压缩的多个构件可以被解压 缩,并且被解压缩的构件可以被装栽到随机存取存储器中。基于差分 数据,在随机存取存储器中,仅有将要被更新的构件可以被更新。仅 有更新的构件可以被压缩,并且被压缩的更新构件可以被写回到非易 失性存储器的相应区。在将非易失性存储器中的与压缩更新软件的压缩更新部分相对应 的压缩更新代码序列备份存储在文件系统区中时,仅有被压缩的更新 构件可以被存储在文件系统区中。本专利技术的 一个实施例也可以应用于一种计算机程序,该计算机程序用于实现具有下述功能或这样的功能的上述便携式终端设备基于 差分数据通过无线通信对作为压缩代码存储在置于便携式终端中的非 易失性存储器中的软件进行更新。根据本专利技术的一个实施例,在与压缩更新软件的压缩更新部分相 对应的压缩更新代码序列被写入非易失性存储器之前,压缩更新代码 序列的备份被存储在真有容错性的文件系统区中。因此,即使在更新 数据被写入非易失性存储器时发生断电后,非易失性存储器中的软件 的有效性依然能被维持,而且软件更新能够再继续。附图说明图1是示意性地示出根据本专利技术实施例的便携式终端的硬件结构 的例子的框图;图2示出便携式终端通过无线通信下载软件更新所必需的数据的 状态;图3示意性地示出根据本专利技术实施例的便携式终端的闪存中的更 新之前的软件存储区;图4示出根据本专利技术实施例的利用代码压缩进行软件更新的过程;图5示出根据本专利技术实施例的在更新代码序列被压缩以及被写回到闪存时发生断电的情形;图6示出在实施例中所使用的数据表的结构的例子;图7示出实施例中在发生断电时,更新前的压缩代码通过使用文件系统区中的数据备份而被恢复的过程;图8示出实施例中发生断电后再继续更新处理的过程;图9是示意性地示出在本专利技术的实施例中启动便携式终端的处理的流程图;图lO是示意性地示出软件更新处理的流程图。具体实施方式将参照附图对本专利技术的实施例进行描述。图1是示意性地示出根据本专利技术实施例的便携式终端10的硬件结构的例子的框图。在该实施例中,描述蜂窝电话被用作便携式终端10的例子。便携式终端10包括控制器11、声音处理单元12、麦克风13、 扬声器14、存储单元15、通信单元16、双工器(duplexer) 17、天 线17a、操作单元18和显示单元19。控制器11包括中央处理单元(CPU) 30,该中央处理单元包含 在用于蜂窝电话的大规模集成(LSI)电路中。控制器ll充当被配置 为控制便携式终端10的处理以及控制构成便携式终端10的每个单元 的数据处理单元。声音处理单元12在控制器11的控制下,执行用于会话、音乐播 放等的声音处理。另外,声音处理单元12接收来自麦克风13的声 音,并将声音输出到扬声器14。存储单元15在其中存储程序和数据。在这个实施例中,存储单 元15包括诸如NAND存储器的非易失性闪存20和诸如同步动态随 机存取存储器(SDRAM)的随机存取存储器(RAM) 24。闪存20是可再写的非易失性存储器,用于存储由控制器11执行 的程序。闪存20包括引导区21,用于存储引导程序;程序区22, 用于存储程序代码;以及存储区23,用于存储其它必要的数据和程 序。存储区23包括本文档来自技高网
...

【技术保护点】
一种软件更新方法,用于基于差分数据通过无线通信对作为压缩代码存储在置于便携式终端内的非易失性存储器中的软件进行更新,该方法包括以下步骤: 提供具有容错性的文件系统区; 在软件更新执行时,对所述软件的压缩代码进行解压缩,并且将已解压缩的代码装载到随机存取存储器; 基于所述差分数据,在所述随机存取存储器中更新所述软件; 对已更新的软件进行压缩;以及 将与压缩更新软件的压缩更新部分相对应的压缩更新代码序列的备份存储在所述文件系统区中,然后将与所述压缩更新软件的压缩更新部分相对应的压缩更新代码序列写回到所述非易失性存储器。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:平尾康幸青柳胜己三本松利尚市川知宏麻健治
申请(专利权)人:索尼爱立信移动通信日本株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1