用于压缩可现场升级的无线通信设备软件代码段的系统及方法.pdf

上传人:大师****2 文档编号:636000 上传时间:2018-02-28 格式:PDF 页数:49 大小:2.17MB
返回 下载 相关 举报
摘要
申请专利号:

CN02814834.7

申请日:

2002.07.23

公开号:

CN1535420A

公开日:

2004.10.06

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 9/445申请日:20020723授权公告日:20060104终止日期:20160723|||专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 9/445变更事项:专利权人变更前:京瓷公司变更后:京瓷株式会社变更事项:地址变更前:日本京都变更后:日本京都|||专利权的转移IPC(主分类):G06F 9/445变更事项:专利权人变更前权利人:京瓷无线公司变更后权利人:京瓷公司变更事项:地址变更前权利人:美国加利福尼亚州变更后权利人:日本京都登记生效日:20110630|||专利权人的姓名或者名称、地址的变更变更事项:专利权人变更前:基奥赛拉无线公司 地址: 美国加利福尼亚州变更后:京瓷无线公司 地址: 美国加利福尼亚州|||授权|||实质审查的生效|||公开

IPC分类号:

G06F9/445; H04Q7/32

主分类号:

G06F9/445; H04Q7/32

申请人:

基奥赛拉无线公司;

发明人:

高里·拉贾拉姆; 保罗·泽肯多夫; 迭戈·卡普兰

地址:

美国加利福尼亚州

优先权:

2001.07.26 US 09/917,026; 2001.07.26 US 09/916,460; 2001.07.26 US 09/916,900; 2001.08.10 US 09/927,131; 2001.10.02 US 09/969,305

专利代理机构:

北京英赛嘉华知识产权代理有限责任公司

代理人:

葛强;方挺

PDF下载: PDF下载
内容摘要

本发明提供用于重新编制存储在无线通信设备存储器中的软件指令的系统和方法。该方法包括:通过创建第二组连续编址的存储块、用相应的代码段识别每个存储块、在识别的存储块中存储代码段,而将无线设备系统软件存储多个当前代码段中,并且代码段的起始位置在相应的起始地址;通过无线通信设备无线接口接收新代码段;识别用于更新的当前代码段;计算代码段大小;产生压缩方案以响应对代码段大小的计算;重设当前代码段的大小;重设当前代码段大小之后,改变代码段起始地址;将代码段临时移至文件系统段;通过将从文件系统段来的代码段存储进存储块中,而用新代码段代替识别的当前代码段,从而保持连续地址以响应压缩方案;及执行更新的系统软件。

权利要求书

1: 一种在无线通信设备中用于重新编制存储在存储器中的软件指令 的方法,所述的方法包括: 将无线设备系统软件存储进多个当前代码段中; 接收新代码段; 重设当前代码段的大小; 将新代码段和当前代码段排列在一起以形成用于无线设备的更新的 系统软件;以及 执行更新的系统软件。
2: 如权利要求1所述的方法,还包括: 识别用于更新的当前代码段;并且 其中将新代码段和当前代码段排列在一起以形成更新的系统软件包 括用新代码段替换识别的当前代码段。
3: 如权利要求2所述的方法,还包括: 将系统软件形成为第一组符号库,每个符号库至少包括一个符号; 及 将第一组符号库排列进第二组代码段。
4: 如权利要求3所述的方法,其特征在于,接收新代码段包括通过 无线通信设备无线接口接收新代码段。
5: 如权利要求4所述的方法,其特征在于,将第一组符号库排列进 第二组代码段包括在代码段起始位置处开始符号库; 其中将无线设备系统软件存储进多个当前代码段包括在相应起始地 址处存储代码段的起始位置;并且 所述方法还包括: 维护代码段地址表,所述代码段地址表交叉引用代码段标识符与相 应的起始地址。
6: 如权利要求5所述的方法,其特征在于,将第一组符号库排列进 第二组代码段包括从各自的代码段起始地址处开始偏移排列符号;并且 所述方法还包括: 维护符号偏移地址表,所述符号偏移地址表交叉引用符号标识符与 相应的偏移地址及相应的代码段标识符。
7: 如权利要求6所述的方法,其特征在于,在相应的起始地址处存 储代码段的起始位置包括: 创建第二组连续编址的存储块; 用相应的代码段识别每个存储块;及 在识别的存储块中存储代码段。
8: 如权利要求7所述的方法,其特征在于,将第一组符号库排列进 第二组代码段包括调整代码段的大小以使其能够容纳排列的符号库;并 且 其中创建第二组连续编址的存储块包括调整存储块的大小以使其能 够容纳相应的代码段。
9: 如权利要求8所述的方法,其特征在于,调整存储块尺寸以使其 能够容纳相应的代码段包括调整代码段的大小以使其能够容纳大于排列 的符号库的大小。
10: 如权利要求9所述的方法,其特征在于,重设当前代码段的大小 包括重设其内存储有相应的被重设大小的代码段的存储块的大小。
11: 如权利要求10所述的方法,其特征在于,接收新代码段包括接 收具有第一大小的新代码段; 其中识别用于更新的当前代码段包括识别具有小于所述第一大小的 第二大小的当前代码段;并且 其中重设其内存储有相应的被重设大小的代码段的存储块的大小包 括: 将与已识别的当前代码段相关的存储块的大小增加到至少为所述第 一大小;及 用新代码段替换存储在相应存储块中的识别的当前代码段。
12: 如权利要求11所述的方法,其特征在于,重设其内存储有相应 的被重设大小的代码段的存储块的大小包括响应对排列在相应代码段内 的符号库大小的测量以重设代码段的大小从而使其更密切地匹配排列在 其内的符号库的大小。
13: 如权利要求12所述的方法,其特征在于,重设代码段的大小以 使其更密切地匹配排列在其内的符号库的大小包括最优地将代码段大小 重设到使随后的代码段能够进行重设大小操作和更新操作。
14: 如权利要求12所述的方法,还包括: 利用来自代码段地址表的起始地址测量当前代码段的大小; 利用来自符号偏移地址表的符号偏移地址测量排列在相应代码段内 的符号库的大小。
15: 如权利要求14所述的方法,其特征在于,将系统软件形成为第 一组符号库包括形成结束符号以指明符号库的结束;并且 其中测量排列在相应代码段内的符号库的大小包括使用结束符号的 偏移地址来测量符号库的大小。
16: 如权利要求14所述的方法,其特征在于,将系统软件形成为第 一组符号库包括形成尺寸符号以指明符号库的大小;并且 其中测量排列在相应代码段内的符号库的大小包括访问所述尺寸符 号以测量符号库的大小。
17: 如权利要求15所述的方法,述包括: 在重设代码段的大小之后,改变代码段的起始地址。
18: 如权利要求16所述的方法,还包括: 测量新代码段大小;及 响应对排列在相应代码段内的符号库的大小的测量以及对新代码段 的大小的测量以确定新代码段是否可以和当前代码段排列在一起。
19: 如权利要求18所述的方法,其特征在于,确定新代码段是否可 以和当前代码段排列在一起包括确定未用存储块的大小;并且 其中如果未用存储块的大小大于或等于新代码段的大小,则将新代 码段和当前代码段排列在一起以形成用于无线设备的更新的系统软件包 括将新代码段存储在未用存储块中。
20: 如权利要求18所述的方法,还包括: 计算代码段的大小; 响应对代码段大小的计算以产生压缩方案; 将代码段临时移至文件系统段中;并且 其中将新代码段和当前代码段排列在一起以形成用于无线设备的更 新的系统软件包括响应压缩方案以将代码段从文件系统段存储进存储块 中从而保持连续编址。
21: 如权利要求20所述的方法,还包括: 响应存储在存储块内的代码段起始地址的改变以产生更新的代码段 地址表;并且 其中执行更新的系统软件包括在将新代码段和当前代码段排列在一 起之后使用更新的代码段地址表。
22: 如权利要求21所述的方法,其特征在于, 接收新代码段包括接收带有更新的符号偏移地址表的新代码段;并 且 其中执行更新的系统软件包括在将新代码段和当前代码段排列在一 起之后使用更新的符号偏移地址表。
23: 如权利要求11所述的方法,其特征在于,接收新代码段包括接 收含有代码段重设大小指令和压缩方案的压缩指令集;并且 其中重设当前代码段的大小包括响应所述代码段重设大小指令以重 设代码段的大小。
24: 如权利要求23所述的方法,还包括: 将代码段临时移至文件系统段中;并且 其中将新代码段和当前代码段排列在一起以形成用于无线设备的更 新的系统软件包括响应所述压缩方案以将代码段从文件系统段存储进存 储块中从而保持连续编址。
25: 如权利要求24所述的方法,其特征在于,接收新代码段包括接 收带有更新的代码段地址表和更新的符号偏移地址表的新代码段;并且 其中执行更新的系统软件包括在将新代码段和当前代码段排列在一 起之后使用更新的代码段地址表和更新的符号偏移地址表。
26: 如权利要求6所述的方法,还包括: 将代码段地址表和符号偏移地址表装入易失性存储器; 响应将代码段地址表和符号偏移地址表装入易失性存储器以执行系 统软件; 复位无线通信设备; 响应复位以将更新的代码段地址表和更新的符号偏移地址表装入易 失性存储器;并且 其中执行更新的系统软件包括响应将更新的代码段地址表和更新的 符号偏移地址表装入存储器以执行更新的系统软件。
27: 如权利要求26所述的系统,其特征在于,重设当前代码段的大 小包括暂停系统软件的操作。
28: 一种在无线通信设备中用于重新编制存储在存储器中的软件指 令的方法,所述方法包括: 通过创建第二组连续编址的存储块、用相应的代码段识别每个存储 块并在识别的存储块中存储代码段,从而将无线设备系统软件存储进多 个当前代码段中,并且使代码段的起始位置处于相应的起始地址处; 通过无线通信设备无线接口接收新代码段; 识别用于更新的当前代码段; 计算代码段的大小; 响应对代码段大小的计算以产生压缩方案; 重设当前代码段的大小; 在重设当前代码段的大小之后,改变代码段的起始地址; 将代码段临时移至文件系统段中; 响应所述压缩方案,通过将代码段从文件系统段存储进存储块中以 保持连续编址,从而用新代码段代替识别的当前代码段;及 执行更新的系统软件。
29: 一种在无线通信设备中用于重新编制存储在存储器中的软件指 令的系统,所述系统包括: 代码存储段存储器,其包括被区分成多个当前代码段的可执行无线 设备系统软件; 文件系统段存储器,用于接收新代码段; 压缩器,用于重设当前代码段的大小;并且 其中将新代码段和代码存储段中的当前代码段排列在一起形成了更 新的系统软件。
30: 如权利要求29所述的系统,其特征在于,文件系统段接收带有 指令的压缩指令集用以识别用于更新的当前代码段;并且 其中压缩器用新代码段替换代码存储段中已识别的当前代码段。
31: 如权利要求30所述的系统,其特征在于,代码存储段包括第一 组符号库,每个符号库至少包括一个符号,且所述第一组符号库被排列 进第二组代码段。
32: 如权利要求31所述的系统,还包括: 用于接收新代码段的无线链路接口;并且 其中文件系统段通过无线通信设备的无线链路接口接收新代码段。
33: 如权利要求32所述的系统,其特征在于,代码存储段符号库从 代码段的起始位置处开始;并且 其中代码存储段包括带有代码段地址表的第一表代码段,所述代码 段地址表用于交叉引用代码段标识符与相应的起始地址。
34: 如权利要求33所述的系统,其特征在于,代码存储段包括从各 自的代码段起始地址处开始偏移排列的符号;并且 其中代码存储段包括带有符号偏移地址表的第二表代码段,所述符 号偏移地址表用于交叉引用符号标识符与相应的偏移地址及相应的代码 段标识符。
35: 如权利要求34所述的系统,其特征在于,代码存储段包括被相 应的第二组代码段识别的第二组连续编址的存储块。
36: 如权利要求35所述的系统,其特征在于,代码存储段包括被调 整大小以容纳排列在其中的符号库的代码段以及被调整大小以容纳相应 代码段的存储块。
37: 如权利要求36所述的系统,其特征在于,代码存储段包括被调 整大小以容纳比排列在其中的符号库更大的代码段。
38: 如权利要求37所述的系统,其特征在于,压缩器重设代码存储 段中的存储块的大小,所述的存储块内存储有相应的被重设大小的代码 段。
39: 如权利要求38所述的系统,其特征在于,文件系统段接收具有 第一大小的新代码段; 其中压缩指令集识别具有小于所述第一大小的第二大小的当前代码 段;并且 其中压缩器将与识别的当前代码段相关的存储块的大小增加到至少 为所述第一大小,并用新代码段替换存储在相应的存储块中的识别的当 前代码段。
40: 如权利要求39所述的系统,其特征在于,压缩器确定排列在相 应代码段内的符号库的大小,并重设代码段的大小以使其更密切地匹配 排列在其内的符号库的大小。
41: 如权利要求40所述的系统,其特征在于,压缩器最优地将代码 段的大小重设到使随后的代码段能够进行重设大小操作和更新操作。
42: 如权利要求40所述的系统,其特征在于,压缩器从代码段地址 表访问起始地址以测量代码段的大小;并且 其中压缩器从符号偏移地址表访问符号偏移地址以测量排列在相应 代码段内的符号库的大小。
43: 如权利要求42所述的系统,其特征在于,代码存储段包括带有 结束符号的符号库,所述结束符号用以指明符号库的结束;并且 其中压缩器利用结束符号的偏移地址来测量排列在相应代码段内的 符号库的大小。
44: 如权利要求42所述的系统,其特征在于,代码存储段包括带有 尺寸符号的符号库,所述的尺寸符号用以指明符号库的大小;并且 其中压缩器访问所述尺寸符号以测量排列在相应代码段内的符号库 的大小。
45: 如权利要求43所述的系统,其特征在于,在重设代码段大小之 后,压缩器改变存储在代码存储段中的代码段的起始地址。
46: 如权利要求45所述的系统,其特征在于,压缩器响应对排列在 相应代码段内的符号库的大小的测量和对新代码段的大小的测量,以测 量文件系统段中的新代码段的大小,并确定新代码段是否可以和代码存 储段中的当前代码段排列在一起。
47: 如权利要求45所述的系统,其特征在于,文件系统段接收带有 新代码段的大小的压缩指令集;并且 其中压缩器响应对排列在相应代码段内的符号库的大小的测量和对 新代码段的大小的确定,访问压缩指令集以确定文件系统段中新代码段 的大小,并确定新代码段是否可以和代码存储段中的当前代码段排列在 一起。
48: 如权利要求45所述的系统,其特征在于,如果未用存储块的大 小大于或等于新代码段的大小,则压缩器确定代码存储段中未用存储块 的大小,并在未用存储块中存储新代码段。
49: 如权利要求45所述的系统,其特征在于,压缩器计算代码段的 大小,并响应对代码段大小的计算而产生压缩方案; 其中文件系统段临时存储来自代码存储段的代码段;并且 其中压缩器响应所述压缩方案以将代码段从文件系统段存储进代码 存储段存储块中以保持连续编址。
50: 如权利要求49所述的系统,其特征在于,压缩器响应存储在存 储块内的代码段起始地址的改变以产生更新的代码段地址表;并且 其中在将新代码段和当前代码段排列在一起后,更新的系统软件访 问更新的代码段地址表。
51: 如权利要求50所述的系统,其特征在于,文件系统段接收带有 更新的符号偏移地址表的新代码段;并且 其中在将新代码段和当前代码段排列在一起后,更新的系统软件访 问更新的符号偏移地址表。
52: 如权利要求39所述的系统,其特征在于,文件系统段接收含有 代码段重设大小指令和压缩方案的压缩指令集;并且 其中压缩器响应所述代码段重设大小指令以重设代码段的大小。
53: 如权利要求52所述的系统,其特征在于,文件系统段临时存储 来自代码存储段的代码段;并且 其中压缩器响应压缩方案以将代码段从文件系统段存储进代码存储 段存储块以保持连续编址。
54: 如权利要求53所述的系统,其特征在于,文件系统段接收带有 更新的代码段地址表和更新的符号偏移地址表的新代码段;并且 其中在新代码段和当前代码段排列在一起后,更新的系统软件访问 更新的符号偏移地址表和更新的代码段地址表。
55: 如权利要求29所述的系统,其特征在于,代码存储段和文件系 统段存储器是非易失性存储器。
56: 如权利要求34所述的系统,还包括: 易失性存储器,包括从代码存储段装入的用于执行系统软件的第一 和第二表代码段;并且 其中在复位无线通信设备以将更新的代码段地址表和更新的符号偏 移地址表装入易失性存储器后,将新代码段与代码存储段中的当前代码 段排列在一起形成了更新的系统软件。
57: 如权利要求56所述的系统,其特征在于,压缩器暂停系统软件 的执行。
58: 一种在无线通信设备中用于重新编制存储在存储器中的软件指 令的系统,所述的系统包括: 代码存储段存储器,其包括被区分成多个当前代码段的可执行无线 设备系统软件,所述多个当前代码段带有用多个连续编址的存储块识别 的起始地址; 文件系统段,用于通过无线链路接口接收新代码段,其包括用来识 别用于更新的当前代码段的压缩指令集; 压缩器,用于计算代码段大小、产生压缩方案、重设当前代码段的 大小、将代码段临时移至文件系统段中、并通过将代码段存储进存储块 以用新代码段替换识别的当前代码段从而保持连续编址;并且 其中将新代码段与代码存储段中的当前代码段排列起来形成了更新 的系统软件。

说明书


用于压缩可现场升级的无线通信设备软件代码段的系统及方法

    【发明背景】

    1.发明领域

    本发明一般涉及无线通信设备,特别涉及用于对通过无线链路接口现场升级的无线通信设备系统软件中的代码段进行压缩的系统及方法。

    2.相关技术说明

    发行用于电话的现场更新软件不是罕见的。一旦电话已经被制造出并销售给公众,那么这些更新可能涉及到在此软件中发现的问题。一些更新可能涉及到电话新功能的使用或者由服务供应商提供的服务。而其它更新则可能涉及到区域性问题或与某些载体(carrier)相关的问题。例如,在某些区域中,载体的网络布局可将无线链路(airlink)接口条件的影响加于手机上,从而引起手机表现出不希望的行为,例如异常地信道搜索、异常的呼叫终止、异常的声音等。

    此类更新的传统方法是将无线通信设备收回到最接近的运营商零售/服务出口或收回到制造商以处理这种改变,在本文中无线通信设备也被称为无线设备、电话(phone)、电话机(telephone)或手机。这样的更新涉及到昂贵的成本并且超过成本底线。此外,用户会感到不便且有可能愤怒。经常的实际解决方案是给用户提供新电话。

    如果无线通信设备软件可以被便宜地升级而且不会给用户带来不便,那么将是有利的。

    如果无线通信设备的软件在不会使用户在相当长时间内没有电话使用的情况下升级,那么将是有利的。

    如果无线通信设备软件可以在最小的技术服务时间内或不需要将设备送到服务工厂的情况下得到更新,那么将是有利的。

    如果无线设备的系统软件可被区分成多个代码段,从而仅需替换系统软件的特定代码段以更新系统软件,那么将是有利的。如果这些代码段可通过无线链路与无线设备相连,那么将是有利的。

    如果系统软件可利用比当前驻留的代码段更大的代码段而得到更新,那么将是有利的。如果能够重新排列系统软件以容纳这些较大的更新的代码段,那么也将是有利的。

    发明概述

    无线通信设备的软件更新可带给用户尽可能好的产品和用户体验。昂贵的商业部分涉及到收回手机以更新软件。手机制造完成后,这些更新对于向用户提供增值服务或解决电话使用中发现的问题可能是必须的。当升级代码段比它们代替的代码段大时,本发明使得通过无线链路接口在现场实际升级手机软件成为可能。

    因此,本发明提供了一种用于重新编制存储在无线通信设备存储器中的软件指令的方法。该方法包括:通过创建第二组连续编址的存储块、用相应的代码段识别每个存储块并将代码段存储在识别的存储块中,从而将无线设备系统软件存储在多个当前代码段中,并且使代码段的起始位置处在相应的起始地址上;通过无线通信设备的无线接口接收新代码段;识别用于更新的当前代码段;计算代码段大小;响应对代码段大小的计算以产生压缩方案;重设当前代码段的大小;在重设当前代码段的大小之后,改变代码段起始地址;将代码段临时移动进文件系统段;响应所述压缩方案,通过将代码段从文件系统段存储进存储块以用新代码段替换识别的当前代码段,从而保持连续编址;以及执行更新的系统软件。

    下面将提供上述用于重新编制无线通信设备系统软件中的软件指令的方法和用于重新编制软件指令的无线设备系统的其它详细说明。

    附图的简要说明

    图1是整个无线设备软件维护系统的示意性方块图。

    图2是软件维护系统的示意性方块图,其中突出表明了通过无线链路接口的指令集安装。

    图3的示意性方块图示出了用于对无线通信设备中的软件指令进行重新编制的本发明系统。

    图4是无线设备存储器的示意性方块图。

    图5的表示出了图3的代码段地址表。

    图6是图3中带有符号的符号库1的详细说明。

    图7的表示出了图3中的符号偏移地址表。

    图8的示意性方块图示出了示例性压缩操作的结果。

    图9a到图9e示出了一个示例性压缩方案的操作。

    图10a到图10b的流程图示出了用于重新编制存储在无线通信设备存储器中的软件指令的本发明方法。

    图11的流程图示出了图10a到图10b方法的变化形式。

    优选实施方案的详细说明

    下面将结合无线设备微处理器或存储器中数据位的操作流程、步骤、逻辑块、代码、方法和其它操作的符号表示而给出详细说明的一些部分。这些说明和表示可使数据处理领域的所属技术人员能最有效地将他们的工作内容转达给本领域所属的其他工作人员。此处的流程、微处理器执行步骤、应用、逻辑块、方法等通常被认为是指可导致所需结果的前后一致的顺次步骤或指令。步骤是指那些需要对物理量进行物理处理的步骤。通常尽管不是必须的,但在微处理器基无线设备中,这些量表现为能够存储、传输、组合、比较或其它可处理的电信号或磁信号的形式。有时为了方便,主要是由于通用的原因而将这些信号称为位、值、单元、符号、字符、项、数字等。其中物理设备(如文中提到的存储器)通过数据线或其它的电连接而与其它的物理设备连接。这些物理设备可被认为与逻辑处理或应用程序相互作用,因此它们与逻辑操作“连接”。例如,存储器可存储或访问代码以进行逻辑操作,或者应用程序能够从存储器中调用代码段以用于执行。

    然而应该记住,所有这些术语和相似的术语都应与相应的物理量相关,其仅是加到这些物理量上的方便标记。除非在下面的讨论中另有特别指明,应该理解,在整个发明讨论中所使用的术语,如“处理”或“连接”或“翻译”或“显示”或“提示”或“确定”或“显示”或“识别”等,都指的是无线设备微处理系统中的活动和过程,其可对计算机系统寄存器和存储器中表示物理(电子)量的数据进行处理并转换成在无线设备存储器或寄存器或其它此类信息存储、传输或显示设备中近似表示物理量的其它数据。

    图1是整个无线设备软件维护系统100的示意性方块图。在下面对软件维护系统100做总的说明之后,详细说明本发明的系统软件结构。总系统100说明了一种用于传输系统软件更新程序和指令集(程序)并在无线设备中安装传输的软件的方法。系统软件更新程序或更通常被称为指令集的补丁管理器运行时期指令(PMRTI)是由手机制造商创建的。系统软件可被编制成符号库。符号库被排列进代码段。当欲更新符号库时,软件更新程序102按一个或多个代码段传输。将软件更新程序现场传播到无线通信设备104所代表的无线设备中,或使用公知的常规无线、数据或信息传输协议在单独的通信系统中从基站106传输。由于无线通信设备可容易地被改进以装入任何可用的无线传输协议从而达到接受系统软件和PMRTI更新程序的目的,所以本发明不限于任何特定的传输形式。

    系统软件也可被认为是不同子系统的集合。代码对象可被紧密结合地连接成这些抽象子集中的一个,所得到的集合可称为符号库。此举提供了源代码(code base)的逻辑分类,并且软件补丁和修补可与这些符号库中的一个关联。在大多数情况下,单独的更新程序与一个或至多两个符号库相关联。而源代码的其余部分、其它符号库则保持不变。符号库的概念为处理代码和常数提供了方法。另一方面,读写(RW)数据适合于含有针对所有库的基于RAM的数据的唯一单个RW库。

    一旦传输的代码段被无线设备104接收到,则其必须被处理。无线设备将覆盖写入非易失性存储器108的特定代码段。非易失性存储器108包括文件系统段(FSS)110和代码存储段112。为最小化在FSS 110中的占用空间,代码段在传输前通常被压缩。更新的代码段通常伴随有其RW数据,它是含有针对各个符号库的所有RW数据的另一类符号库。尽管当执行系统软件时,RW数据被装入随机访问易失性读写存储器114中,但是RW数据总归要被存储在非易失性存储器108中,所以每次无线设备被复位时,其都能被装入随机访问易失性读写存储器114中。这包括第一次被装入随机访问易失性读写存储器中的RW数据。如下面更详细地说明中的那样,RW数据通常和补丁管理器代码段排列在一起。

    系统100包括虚拟表的概念。使用这种表,在一个代码段中的符号库可被修补(替换),而不会破坏(替换)系统软件(其它代码段)的其它部分。为了更有效率,虚拟表从随机访问易失性读写存储器114中执行。代码段地址表和符号偏移地址表都是虚拟表。

    更新的代码段被无线设备104接收到并存储在FSS 110中。无线设备用户接口(UI)通常将通知用户有新软件可用。作为对UI提示的响应,用户以修补或更新操作来回答通知和信号。可选择地,更新操作可自动进行。当进行更新操作时,无线设备可能不能进行标准的通信任务。补丁管理器代码段包括也被装入随机访问易失性读写存储器114中的非易失性读写驱动符号库。非易失性读写驱动符号库使得代码段被更新的代码段盖写。补丁管理器代码段包括读写数据、代码段地址表、符号偏移地址表以及符号存取器代码和符号存取器代码地址(下面讨论)。当引入更新的代码段,并且更新的补丁管理器代码段包括读写数据、代码段地址表、以及对更新的代码段有效的符号偏移地址表时,该数据的一些部分是无效的。一旦更新的代码段被装入代码存储段112中,无线设备被复位。在复位操作之后,无线设备能执行更新的系统软件。应该理解,补丁管理器代码段可包括上面没有讨论的其它符号库。这些其它的符号库不需要被装入易失性读写存储器114中。

    图2是软件维护系统100的示意性方块图,其中突出表明了通过无线链路接口的指令集安装。除了更新系统软件代码段外,维护系统100可下载并安装指令集、程序或补丁管理器指令集(PMIS),在本文中也被称为补丁管理器运行时期指令(PMRTI)。PMRTI代码段200按照与上述系统软件代码段相同的方式被传输给无线设备104。PMRTI代码段起初储存在FSS 110中。PMRTI代码段通常是二进制文件,并可被直观化(visualized)成针对手机的编译指令。对于提供基本数学操作性能和条件执行操作性能而言,PMRTI代码段是足够全面的。例如,RF校准PMRTI能执行下面的操作:

    IF RF CAL ITEM IS LESS THAN X(如果RF CAL项小于X)

    EXECUTE INSTRUCTION(执行指令)

    ELSE(否则)

    EXECUTE INSTRUCTION(执行指令)

    PMRTI可支持基本数学操作,如加、减、乘、除。与系统软件代码段相同,可装入PMRTI代码段以响应UI提示,并且在PMRTI装入到代码存储段112后无线设备必须复位。然后PMRTI段可再执行。如果PMRTI代码段与任何虚拟表或读写数据关联,则为了在代码存储段112中安装,更新的补丁管理器代码段将和PMRTI一起被传输。可选择地,PMRTI也可被保持并在FSS 110中处理。当手机104执行完PMRTI段中的所有指令后,可从FSS 110删除PMRTI段。

    PMRTI是一种非常有效的运行时期(runtime)指令引擎。通过PMRTI环境,手机可执行任何传给它的指令。这种机制可被用来支持RF校准和PRI更新程序。更一般而言,当制造商或服务供应商认识到通常作为用户报怨的结果的软件问题时,PMRTI可被用于远程调试无线设备软件。PMRTI也可记录诊断软件问题所需要的数据。PMRTI可提供用于数据分析、调试及修复的最新下载的系统应用程序。PMRTI可提供用于分析的基于RW数据的更新程序,并可能代替更新的系统软件代码段而对问题进行短期修复。PMRTI可提供由无线设备使用的存储器压缩算法。

    在本发明的某些方面中,将系统软件编制进符号库中可能会影响执行所需要的易失性存储器114和非易失性存储器108的大小。这是由于通常代码段比排列在代码段中的符号库更大的原因。这些较大代码段用以容纳更新的代码段。将系统软件编制成库的集合对非易失性存储器的大小需求有影响。对于同样的代码长度而言,使用非易失性存储器的容量较大,这是由于代码段可比排列于其中的符号库更大的原因。

    一旦软件更新程序被传输到无线设备,则软件维护系统100支持存储器压缩。存储器压缩与台式计算机中的磁盘碎片整理(de-fragmentation)应用相似。这种压缩方法可确保存储器的最佳使用,并对将来的代码段更新程序有很好的节余,因为更新的代码段大小是不可预测的。当系统100被修补(更新)时,其可分析代码存储段。系统100试图将更新的代码段装入由被代替的代码段所占据的存储空间。如果更新的代码段比被代替的代码段更大,那么系统100在存储器112中压缩代码段。可选择地,制造商或服务提供商可计算这种压缩,并且压缩指令可被传输到无线设备104。

    由于算法的复杂性和大量的数据移动,所以压缩是耗费时间的过程。在开始任何过程之前,压缩算法可预测可能性。在试图压缩之前,可利用UI提示来请求用户的许可。

    在本发明的某些方面中,所有的系统软件代码段可被同时更新。然而,完整的系统软件升级需要较大的FSS 110。

    图3的示意性方块图示出了用于对无线通信设备中的软件指令进行重新编制的本发明系统。系统300包括在存储器108中的代码存储段112,其包括被区分成多个当前代码段的可执行无线设备系统软件。图中示出的是代码段1(302)、代码段2(304)、代码段n(306)以及补丁管理器代码段308。但是,本发明不限于任何特定数量的代码段。另外,系统300还包括排列进第二组代码段的第一组符号库。图中示出的是排列在代码段1(302)中的符号库1(310)、排列在代码段2(304)中的符号库2(312)和符号库3(314)以及排列在代码段n(306)中的符号库m(316)。每个库都包括具有相关功能的符号。例如,符号库1(310)可能与无线设备液晶显示器(LCD)的操作有关。则此符号与显示功能关联。如下面详细说明的,其它符号库被排列在补丁管理器代码段308中。

    图4是无线设备存储器的示意性方块图。如图所示,存储器是图1中的代码存储段112。该存储器是可写的非易失性存储器,如闪存。应该理解,代码段不必一定要存储在与FSS 110相同的存储器中。还应该理解,本发明的系统软件结构能使代码段存储在多个合作的存储器中。代码存储段112包括第二组连续编址的存储块,其中每个存储块存储来自于第二组代码段的相应代码段。因而,代码段1(302)存储在第一存储块400中,代码段2(304)存储在第二存储块402中,代码段n(306)存储在第n存储块404中,并且补丁管理器代码段(308)存储在第p存储块406中。

    比较图3与图4,每个代码段的起始位置都存储在存储器中相应的起始地址处,符号库被安排成从代码段的起始位置处开始。也就是说,每个符号库开始于第一地址处并从第一地址顺序通过一定地址范围。例如,代码段1(302)从代码存储段存储器112中的第一起始地址408(用“S”标示)开始。在图3中,符号库1(310)从第一代码段的起始位置318处开始。类似地,代码段2(304)从第二起始地址410(如图4)开始,符号库2从代码段2的起始位置320(图3)处开始。代码段n(306)从代码存储段存储器112中的第三起始地址412(图4)开始,符号库m(316)从代码段n的起始位置322(图3)处开始。补丁管理器代码段从代码存储段存储器112的第p起始地址(414)处开始,补丁管理器代码段308中的第一符号库从补丁管理器代码段的起始位置324处开始。因而,符号库1(310)最终存储在第一存储块400中。如果代码段包括多个符号库,如代码段2(304),则此多个符号库被存储在相应的存储块中,在这种情况下是第二存储块402。

    在图3中,系统软件结构300还包括作为一种符号的代码段地址表326,该类符号包括在排列于补丁管理器代码段308中的符号库内。代码段地址表可交叉引用代码段标识符与存储器中的相应代码段起始地址。

    图5的表示出了图3中的代码段地址表326。代码段地址表326被查询以用于为符号库搜索代码段起始地址。例如,当需要执行符号库1中的符号时,系统300将搜索代码段1。为了找到代码段1的起始地址并且由此定位符号库1中的符号,则需查询代码段地址表326。代码段内的符号库排列及用表跟踪代码段使得代码段可被移动或扩展。扩展或移动操作对于安装升级代码段(带有升级符号库)是需要的。

    返回图3,应该注意,并非每个符号库都必须在代码段的起始位置处开始。如图所示,符号库3(314)排列在符号段2(304)中,但是其不从符号段起始地址320处开始。因而,如果需要执行符号库3(314)中的符号,系统300需查询代码段地址表326以寻找到代码段2(304)的起始地址。如下所述,符号偏移地址表使得符号库3(314)中的符号可被定位。穿过多个符号库传送符号也没有关系,只要它们和相同的代码段保留在一起。

    如上所述,每个符号库包括功能上相关的符号。符号是由程序员定义的名称,其用于定位和使用程序主体(routine body)、变量或数据结构。因而,符号可以是地址或值。符号可以在内部或外部。内部符号在超出当前代码段的范围时是不可见的。更具体而言,它们不能被其它代码段内的其它符号库找到。外部符号在多个代码段之间使用及调用,并且可被不同代码段内的库找到。符号偏移地址表通常包括所有外部符号的列表。

    例如,符号库1(310)可以在无线设备显示器上生成字符。在这个库中,符号将依次生成电话号码、姓名、时间或其它显示特征。各个特征都是利用程序产生的,其在本文中被称为符号。例如,符号库1(310)中的一个符号可在显示器上生成电话号码。这个符号以“X”表示,且为外部符号。当无线设备接收电话呼叫并且呼叫方ID服务被激活时,系统必须执行符号“X”以在显示器上产生数字。因此,系统必须找到符号“X”的位置。

    图6是对图3中带有符号的符号库1的详细说明。符号从各自代码段起始地址处开始偏移排列。在许多情况下,符号库的起始位置就是代码段的起始位置,但是如果代码段包括超过一个的符号库,这就不准确了。符号库1(310)在代码段1的起始位置处开始(参见图3)。如图6所示,符号“X”被定位在距符号库起始位置的偏移量(03)处,符号“Y”被定位在偏移量(15)的位置处。符号偏移地址保存在补丁管理器代码段中的符号偏移地址表328中(参见图3)。

    图7的表示出了图3中的符号偏移地址表328。符号偏移地址表328可交叉引用符号标识符和相应的偏移地址以及存储器中的相应代码段标识符。因而,当系统试图执行符号库1中的符号“X”时,需查询符号偏移地址表328以找到符号相对于其内排列有此符号的代码段的确切地址。

    返回到图3,第一组符号库通常都包括必须在这些符号库的执行中被查询或设置的读写数据。例如,符号库可以包括由条件语句决定的操作。读写数据段被查询以确定完成条件语句所需要的状态。本发明将所有符号库中的读写数据分组成共享的读写段。在本发明的某些方面中,读写数据330排列在补丁管理器代码段308中。可选择地(未示出),读写数据可被排列在不同的代码段中,例如代码段n(306)中。

    第一组符号库也包括排列在代码段中的符号存取器代码用以计算所寻找符号的地址。符号存取(动词用访问,注意替换)器代码可被排列并存储在单独的代码段中的地址内,例如代码段2(304)内。然而,如图所示,符号存取器代码332被排列并存储在补丁管理器代码段308中的地址内。系统软件结构300还包括用于存储符号存取器代码地址的第一单元。所述第一单元可以是在代码存储段112中或是在无线设备的独立存储器段(图未示)内的代码段。该第一单元也可与读写数据排列在相同的代码段中。如图所示,第一单元334与读写数据330、符号偏移地址表328、代码段地址表326、符号存取器代码332及补丁库(补丁符号库)336一起存储在补丁管理器代码段308中。

    符号存取器代码访问代码段地址表和符号偏移地址表以在存储器内计算或搜索所寻找的符号的地址。也就是说,符号存取器代码利用相应的符号标识符和相应的代码段标识符来计算所寻找的符号的地址。例如,如果寻找符号库1中的符号“X”,那么需调用符号存取器以寻找相应于符号“X”的符号标识符(符号ID)X_1(参见图7)。符号存取器代码查询符号偏移地址表以确定出X_1符号标识符距代码段1起始位置的位移量(03)(参见图6)。调用符号存取器代码以寻找相应于代码段1的代码段标识符CS_1。符号存取器代码查询代码段地址表以确定出与代码段标识符(代码段ID)CS_1相关的起始地址。按照这种方式,符号存取器代码就确定出符号标识符X_1距地址(00100)的偏移量(03),或其被定位在地址(00103)处。

    因为是实际代码的一部分,所以符号“X”是保留名。换句话说,其包括与其相关的绝对数据。此数据可以是地址或值。符号标识符是为了跟踪符号而产生的别名。符号偏移地址表和代码段地址表二者与标识符一同起作用以避免与保留符号和代码段名称的混淆。相同的符号名称也有可能在许多符号库之间交叉使用。标识符的使用可防止这些符号间的混淆。

    返回到图1,系统软件结构300还包括易失性读写存储器114,其一般为随机访问存储器(RAM)。读写数据330、代码段地址表326、符号偏移地址表328、符号存取器代码332及符号存取器代码地址334被从补丁管理器代码装入到易失性读写存储器114中,以用于系统软件执行期间的访问。众所周知,代码在RAM中的访问次数明显少于在非易失性存储器(如闪存)中的访问次数。

    返回到图3,应该注意,符号库不一定必须填满排列于其中的代码段,尽管存储块的大小被设置成恰好可容纳存储在其内的相应代码段。可选择地,第二组代码段中的每个代码段都具有可容纳被排列的字符库的字节长度,每个连续编址的存储块都具有可容纳相应代码段的字节长度。例如,代码段1(302)可以是100字节的段以容纳具有100字节长度的符号库。第一存储块将是100字节以匹配代码段1的字节长度。然而,装入到代码段1的符号库可以小于100字节。如图3所示,当符号库1(310)小于100字节时,代码段1(302)具有未用段340。因而,第二组代码段的每个代码段可以比容纳被排列的符号库所需的长度更大的长度。通过“扩大”代码段,就可以容纳更大长度的更新符号库。

    连续编址的存储块是指将物理存储器空间分区成可变大小的逻辑块。当代码段被存储在存储器中时,代码段和存储块基本上是可互换的术语。代码段的概念被用于识别可能比符号库更大的一段代码,或用于识别当移动并处理代码段时代码段中的符号库的集合。

    如图3所示,系统300包括在本文也被称为补丁库336的补丁符号库,用以将当前代码段和代码存储段中的新代码段排列在一起。在代码存储段中将新代码段和当前代码段排列在一起可形成更新的可执行系统软件。补丁管理器336不但可将新代码段和当前代码段排列在一起,而且可用更新的代码段来替换代码段。

    返回到图4,存储器108的文件系统段110可接收新代码段,如新代码段450和更新的补丁管理器代码段452。文件系统段也可接收第一补丁管理器运行时期指令(PMRTI)454,包括用于将当前代码段和新代码段排列在一起的指令。如图1所示,无线链路接口150可接收新的或更新的代码段以及第一PMRTI。尽管无线链路接口150是由天线表示的,但是应该理解,无线链路接口也包括RF收发机、基带电路及解调电路(未示出)。文件系统段110可保存通过无线链路接口150接收到的新代码段。作为对第一PMRTI 454的响应,从易失性读写存储器114中执行的补丁库336可用新的或更新的代码段450替换代码存储段中的第一代码段,例如代码段n(306)。通常,用更新的补丁管理器代码段452替换补丁管理器代码段308。当代码段被替换时,补丁库336用文件系统段110中的更新的代码段(例如代码段450)盖写代码存储段112中的第一代码段,例如代码段n(306)。在极端情况下,存储段112中的所有代码段都被更新的代码段所替换。即,FSS 110接收第二组更新的代码段(未示出),并且补丁库336用第二组更新的代码段替换代码存储段112中的第二组代码段。当然,FSS 110必须足够大以容纳通过无线链路接口接收的第二组更新的代码段。

    如上所述,接收到的更新的代码段可包括读写数据代码段、代码段地址表代码段、符号库、符号偏移地址表代码段、符号存取器代码段或带有新补丁库的代码段。所有这些代码段和与它们相关的符号库及符号可被存储成不同和独立的代码段。然后这些代码段中的每一个都可被唯一的更新的代码段所替换。也就是说,更新的读写代码段可被接收并替换代码存储段中的读写代码段。更新的代码段地址表代码段可被接收并替换代码存储段中的代码段地址表代码段。更新的符号偏移地址表代码段可被接收并替换代码存储段中的符号偏移地址表代码段。更新的符号存取器代码段可被接收并替换代码存储段中的符号存取器代码段。类似地,更新的补丁管理器代码段(带有补丁库)可被接收并替换代码存储段中的补丁管理器代码段。

    但是,上述代码段通常被在补丁管理器代码段中捆绑在一起。这样,当补丁管理器代码段308被更新的补丁管理器代码段450所替换时,代码存储段中的读写代码段可被来自文件系统段110的更新的读写代码段替换。类似地,当安装更新的补丁管理器代码段450时,代码段地址表、符号偏移地址表、符号存取器代码段以及补丁库可被代替。新的读写数据、新的代码段地址表、新的符号偏移地址表、新的符号存取器代码以及作为更新的补丁管理器代码段450的新的补丁库与代码存储段中的当前代码段的排列可形成更新的可执行系统软件。

    当文件系统段110接收更新的符号存取器代码地址时,补丁管理器用更新的符号存取器代码地址替换存储器的第一单元中的符号存取器代码地址。如上所述,存储器的第一单元334通常是在补丁管理器代码段中(参见图3)。

    如图3所示,补丁库308还包括压缩器或压缩器符号库342。压缩器342也能被激活以作为不同的并且独立的代码段,然而如上所述,这对于将与系统软件升级相关的功能捆绑进单个补丁管理器代码段是有用和有效的。通常压缩器342也被称为重设大小的代码段,从而使新段可与代码存储段112中的代码段排列在一起。

    比较图3和图4,文件系统段110可通过无线链路接口150接收带有指令的压缩指令集,所述指令用来识别用于更新的当前代码段(参见图1)。例如,尽管用于压缩的指令不一定必须与其它的更新指令捆绑在一起,但是压缩指令集可以是第一PMRTI 454。压缩器342可用新代码段替换已识别的代码存储段中的当前代码段。应该理解,压缩器342与如上所述的补丁库336协同工作。可选择地,在更新系统软件的过程中需要重设代码段大小的情况下,可以调用压缩器342以帮助补丁库336。

    压缩器可在代码存储段中重设其中保存有相应的被重设大小的代码段的存储块的大小(图4)。例如,文件系统段110可接收带有第一大小的新代码段450。与此同时,或在其它的讯息中,无线设备接收被称为第一PMRTI 454的压缩指令集和更新的补丁管理器代码段452。压缩指令集454可识别具有小于第一长度的第二长度的当前代码段,其被称为代码段2(304)。由于更新的代码段450的长度比被替换的代码段大,所以必须进行压缩操作。压缩器342可将与识别的当前代码段304相关的第二存储块402的长度提高到至少为第一长度。压缩器(与补丁库336协同工作)可用新代码段450替换存储在相应的存储块402中的已识别的当前代码段304。

    如上所述,通常代码段相对于其内排列的符号库或多个符号库而言过大。压缩器342可确定段排列在相应代码段内的符号库的大小,或重设代码段大小以使其更密切地匹配排列在其内的符号库大小。通常压缩器342可最优地将代码段的大小重设至使随后的代码段能够进行重设大小操作和更新操作。

    继续上面开始的实施例,压缩器342通过从与存储块402相邻的代码段中取用未使用的区域可最优地重设代码段大小。如图所示,代码段1(302)和代码段3(344)分别包括未用区域340和未用区域346。通过取用未用区域340和未用区域346以使第二存储块402对于新代码段450而言足够大,压缩器可以选择重设第一存储块302和第三存储块460的大小。

    图8的示意性方块图示出了示例性压缩操作的结果。代码段2已被较大的新(更新的)代码段450所替换。代码段1(302)的未用段340已减小了,代码段3(344)的未用区域360也已减小。在每个代码段中留下一些未用区域有利于在将来进行有效的扩展和压缩操作。例如,如果当前的更新操作中为容纳更新的代码段450而用完所有的未用区域360,那么将来代码段3(344)的任何扩展都必定需要对相邻的代码段进行压缩操作。也应该理解,尽管本实施例仅表明了两个被重设大小的相邻存储块,但是某些压缩操作可能需要一些甚至所有的代码段被重设大小以容纳新的(较大的)代码段更新。

    压缩器342可从代码段地址表中访问起始地址以测量代码段大小,并且从符号偏移地址表中访问符号偏移地址以测量排列在相应代码段内的符号库大小。此外也应该理解,在本发明的某些方面中,压缩器依赖并与其它符号库配合以完成任务,而这些符号库不一定要驻留在补丁管理器代码段308中。然而,优选地,压缩器和如上所述的符号存取器代码协同工作以访问代码段地址表和符号偏移地址表。

    由于代码段地址表包括每个代码段的起始地址,所以使用相邻代码段的起始地址进行简单的算术操作就可确定代码段的大小。类似地,可使用符号库中最末符号的地址和代码段起始地址以确定排列在相应代码段中的符号库的近似大小,并因此确定未用区域的总量。例如,如果代码段1(302)的起始地址是(0100),代码段2(304)的起始地址是(0200),并且符号库1(310)的最末符号的地址是(0170),则未用区域340的大小约为(0200-0170)。

    然而,许多符号被分配到几个连续的地址中,并且最末符号的偏移地址不一定要与符号库终止处的地址相同。继续上面的实施例,如果最末符号开始于地址(0170)并终止于(0173),那么未用空间340的大小实际上是(0200-0173)。在本发明的某些方面中,代码存储段112包括带有结束符号(end symbol)的符号库以表明符号库的结束。例如,返回到图6,符号“Z”是一个字节的结束符号。即,符号“Z”的地址指明了符号库1的结束。压缩器342利用结束符号偏移地址,通过操作符号存取器代码以测量排列在相应代码段内的符号库的大小。

    可选择地,代码存储段112包括带有尺寸符号(size symbol)的符号库以指明符号库的大小。例如符号“Y”(图6)可以是表明符号库1的大小的号码(0073)。压缩器342可访问尺寸符号以测量排列在相应代码段内的符号库的大小。在本发明的其它方面中,适于所有符号库的尺寸符号被存储在补丁管理器代码段的独特代码段的表中(图未示)。

    压缩器342可测量文件系统段110中的新代码段450的大小,并且第一次确定新代码段是否能够和代码存储段112中的当前代码段排列在一起。压缩器342做出这种确定以响应对排列在相应代码段内的符号库大小的测量和对新代码段大小的测量。如果压缩不能成功地使新代码段被安装,则压缩器342可自动放弃此操作。可选择地,压缩器可计算成功的机率,并将此机率显示给无线设备的用户,从而允许用户确定是否继续进行压缩操作。不管成功的机率有多大,无线电话都可向用户提供起动压缩处理的选择,而在压缩和更新过程中压缩器342需要暂停系统软件的执行。

    为测定更新的代码段的大小,压缩器342通常依靠压缩指令集数据。文件系统段110可接收包括新代码段450的大小在内的压缩指令集454。作为对排列在相应代码段内的符号库大小的测量和对新代码段大小的确定的响应,压缩器342可访问压缩指令集454以测定文件系统段110中的新代码段450的大小,并确定是否新代码段可以和代码存储段112中的当前代码段排列在一起。

    如果代码存储段包括较大的未用存储块段,则可免除压缩操作。如果未用存储块的大小大于或等于新代码段的大小,则压缩器342可确定在代码存储段中的未用存储块大小,并将新代码段存储在未用存储块中。

    一旦代码段被重设大小,并且已识别的代码段被更新的代码段所替换,则压缩器342将改变存储在代码存储段中的代码段的起始地址。继续上面的实施例,如果通过使新代码段450(现在的代码段2)从起始地址(01 75)开始而不是从(0200)开始以实现重设大小的操作,则必须改变代码段地址表以映射新的起始地址。

    图9a到图9e示出了一个示例性的压缩方案操作。当从易失性存储器114中开始操作的压缩器342计算出成功压缩的机率并计算出代码段的大小之后,压缩器342可产生压缩方案。该压缩方案包括代码段移动的顺序和它们在FSS 110中的临时位置。文件系统段110可临时存储从代码存储段112来的代码段,压缩器342响应压缩方案以将来自文件系统段110的代码段存储进代码存储段112的存储块从而保持连续编址。

    继续上面的实施例,在图9a中,压缩器342查询压缩指令集(第一PMRTI)454以确定欲被更新的代码段和新代码段450的大小。在图9b中,当计算出成功机率和代码段的大小之后,压缩器342开始进行从第三存储块460将代码段3(344)移动到FSS 110的处理过程。

    在图9c中,新代码段450被从FSS 110移动到第二存储块402。如果代码段1(302)已被重设大小,则压缩器342将使新代码段的起始地址从未用区域340开始(参见图3)。如上所述,第二存储块的起始位置从(0200)改变为(0175)。即代码段1(302)已被压缩。在图9d中,代码段3(344)被从FSS 110移回到第三存储块460。这种移动是通过使代码段3(344)从新的起始地址处开始而完成的。在新起始地址处开始代码段可能涉及到压缩代码段。即,未用区域346的一部分可能被使用。

    在图9e中,补丁管理器(PM)代码段308被新的(更新的)PM代码段452所替换。通常,补丁管理器包括代码段地址表代码符号库(参见图3)。然而,由于压缩结果不必预先知道,所以更新的代码段地址表不一定是正确的。然后,压缩器342响应存储在存储块内的代码段起始地址的变化而产生更新的代码段地址表。压缩器342可用其产生的更新的代码段地址表盖写存储在代码存储段112中的更新的代码段地址表。然后,在新代码段与当前代码段排列在一起后,更新的系统软件可访问更新的代码段地址表。

    然而,由于更新的符号偏移地址和当前代码段可被预先计算出来,所以可以用不同方式控制符号偏移地址表。文件系统段110可接收通常为PM代码段452的新代码段以及更新的符号偏移地址表,并且在新代码段452和当前代码段排列在一起后,更新的系统软件访问更新的符号偏移地址表。

    本发明上面的说明主要集中于压缩器在计算代码段大小中的操作和压缩方案。然而,在本发明的某些方面中,可以取消压缩器342的计算负担。在本发明的这个方面中,文件系统段110可接收压缩指令集454,其包括代码段重设大小指令和压缩方案。然后,压缩器342响应代码段重设大小指令以重设代码段的大小。如前所述,文件系统段110可临时存储来自代码存储段112的代码段,并且压缩器342可响应压缩方案而将来自文件系统段110的代码段存储进代码存储段112存储块以保持连续编址。

    文件系统段110也可接收带有更新的代码段地址表和更新的符号偏移地址表的新代码段。例如更新的PM代码段452。由于代码段重设大小和压缩方案是预先计算出来的(不是由无线设备计算),所以这些更新的表能够精确地映射出新代码段的起始地址。当新代码段和当前代码段排列在一起之后,更新的系统软件访问更新的符号偏移地址表和更新的代码段地址表。

    如图1所示,易失性存储器114包括从代码存储段112装入的用于执行系统软件的第一表代码段和第二表代码段(代码段地址表和符号偏移地址表)。从补丁管理器代码段308来的其它重要的表也被装入易失性存储器114。在无线通信设备104复位之后,新代码段与代码存储段112中的当前代码段排列在一起以形成更新的系统软件。当复位时,更新的代码段地址表和更新的符号偏移地址表被装入易失性存储器114,然后可利用更新的表来执行系统软件。

    图10a到图10b的流程图示出了用于对存储在无线通信设备存储器中的软件指令进行重新编制的本发明方法。尽管为清楚起见以连续编号的步骤描述,但是除非明确说明,否则不应从编号中得出先后顺序。本方法从步骤1000开始。步骤1001a将系统软件形成为第一组符号库,每个符号库至少包括一个符号。步骤1001b将第一组符号库排列进第二组代码段。步骤1002在多个当前代码段中存储无线设备系统软件。步骤1004接收新代码段。在步骤1004中接收新代码段包括通过无线通信设备的无线接口接收新代码段。

    步骤1006重设当前代码段的大小。通常,重设当前代码段大小包括暂停系统软件的执行。步骤1008将新代码段和当前代码段排列在一起以形成用于无线设备的更新的系统软件。步骤1010执行更新的系统软件。通常步骤1005a识别用于更新的当前代码段,并且在步骤1008中将新代码段和当前代码段排列在一起以形成更新的系统软件包括用新代码段替换识别的当前代码段。

    在步骤1001b中将第一组符号库排列进第二组代码段包括在代码段起始位置处开始符号库。步骤1002中在多个当前代码段中存储无线设备系统软件包括在相应的起始地址处存储代码段起始位置。本方法还包括进一步的步骤。步骤1003a维护交叉引用了代码段标识符与相应的起始地址的代码段地址表。在步骤1001b中将第一组符号库排列进第二组代码段包括从各自的代码段起始地址开始偏移排列符号。步骤1003b维护交叉引用了符号标识符与相应偏移地址及相应代码段标识的符号偏移地址表。

    在相应的起始地址处存储代码段的起始位置包括以下子步骤。步骤1002a创建第二组连续编址的存储块。步骤1002b用相应的代码段识别每个存储块。步骤1002c在识别的存储块中存储代码段。

    在步骤1002中将第一组符号库排列进第二组代码段包括调整代码段的大小以使其能够容纳排列的符号库。在步骤1002a中创建第二组连续编址的存储块包括调整存储块的大小以使其能够容纳相应的代码段。通常调整存储块的大小以使其能够容纳相应的代码段包括调整代码段的大小以使其能够容纳更大的排列的符号库。在步骤1006中重设当前代码段的大小包括重设其内存储有相应的被重设大小的代码段的存储块的大小。

    例如,在步骤1004中接收新代码段包括接收具有第一大小的新代码段。在步骤1005a中识别用于更新的当前代码段包括识别具有小于第一大小的第二大小的当前代码段。在步骤1006中重设其内存储有相应的被重设大小的代码段的存储块的大小包括以下子步骤。步骤1006a(图未示)可将与识别的当前代码段相关的存储块的大小增加到至少为所述第一大小,步骤1006b(图未示)用新代码段替换存储在相应的存储块中的识别的当前代码段。

    在步骤1006中重设其内存储有相应的被重设大小的代码段的存储块的大小包括,响应对排列在相应代码段内的符号库大小的测量以重设代码段的大小从而使其更密切地匹配排列在其内的符号库的大小。在步骤1006中重设代码段的大小以使其更密切地匹配排列在其内的符号库的大小包括最优地将代码段大小重设到使随后的代码段能够进行重设大小操作和更新操作。

    步骤1005b利用来自代码段地址表的起始地址以测量当前代码段的大小。步骤1005c利用来自符号偏移地址表的符号偏移地址以测量排列在相应代码段内的符号库的大小。即,测量代码段的大小和符号库的大小。这些信息可用于计算每个代码段中未用区域的容量。

    在某些方面中,步骤1001a中将系统软件形成为第一组符号库包括形成结束符号以指明符号库的结束。然后,步骤1005c中测量排列在相应代码段内的符号库的大小包括利用结束符号的偏移地址来测量符号库的大小。可选择地,在步骤1001a中将系统软件形成为第一组符号库包括形成尺寸符号以表明符号库的大小。然后,步骤1005c中测量排列在相应代码段内的符号库的大小包括访问所述尺寸符号以测量符号库的大小。

    步骤1005d测量新代码段的大小。响应步骤1005c对排列在相应代码段内的符号库的大小的测量以及步骤1005d中对新代码段的大小的测量,步骤1005e确定新代码段是否可以和当前代码段排列在一起。

    在某些方面中,在步骤1005e中确定新代码段是否可以和当前代码段排列在一起包括确定未用存储块的大小。然后,如果未用存储块的大小大于或等于新代码段的大小,则在步骤1008中将新代码段和当前代码段排列在一起以形成用于无线设备的更新的系统软件包括将新代码段存储在未用存储块中。

    步骤1005f计算代码段的大小。即,确定新代码段的大小,从而允许新代码段与当前代码段排列在一起。响应对代码段大小的计算,步骤1007a产生压缩方案。步骤1007b将代码段临时移动到文件系统段中。然后,响应压缩方案,在步骤1008中将新代码段和当前代码段排列在一起以形成用于无线设备的更新的系统软件包括将来自文件系统段的代码段存储进存储块中以保持连续编址。

    在步骤1006中对代码段的大小进行重设之后,步骤1009a改变代码段的起始地址。步骤1009b响应存储在存储块内的代码段起始地址的改变以产生更新的代码段地址表。然后,在步骤1010中执行更新的系统软件包括在将新代码段和当前代码段排列在一起之后使用更新的代码段地址表。

    在本发明的某些方面中,在步骤1004中接收新代码段包括接收带有更新的符号偏移地址表的新代码段。然后,在步骤1010中执行更新的系统软件包括在将新代码段和当前代码段排列在一起之后使用更新的符号偏移地址表。

    步骤1003c将代码段地址表和符号偏移地址表调入易失性存储器。步骤1003d(未示出)响应将代码段地址表和符号偏移地址表装入易失性存储器以执行系统软件。步骤1009c复位无线通信设备。步骤1009d响应复位以将更新的代码段地址表和更新的符号偏移地址表调入易失性存储器。步骤1010响应将更新的代码段地址表和更新的符号偏移地址表装入存储器以执行更新的系统软件。

    图11的流程图示出了图10a到图10b方法的变化形式。图11与图10a和图10b共享了几个共有步骤,为简捷起见这里就不再重复说明。在步骤1104中接收新代码段包括接收含有代码段重设大小指令和压缩方案的压缩指令集。在步骤1106中重设当前代码段的大小包括响应重设代码段大小指令以重设大小。

    步骤1107将代码段临时移至文件系统段中。然后,在步骤1008中将新代码段和当前代码段排列在一起以形成用于无线设备的更新的系统软件包括响应压缩方案以将来自文件系统段的代码段存储进存储块中从而保持连续编址。

    在步骤1104中接收新代码段包括接收带有更新的代码段地址表和更新的符号偏移地址表的新代码段。然后,在步骤1110中执行更新的系统软件包括在将新代码段和当前代码段排列在一起之后使用更新的代码段地址表和更新的符号偏移地址表。已经提供了用于在无线通信设备中重新编制系统软件结构从而有助于软件的更新过程的系统和方法。由于代码段中符号库的排列,并带有可访问存储器中代码段的起始地址和符号库中符号偏移地址的表,所以此系统非常容易更新。尽管为了说明给出了这些库排列和交叉引用表的几个实施例,但是本发明不仅限于这些实施例。本领域所属技术人员可以想到本发明的其它变化和实施方案。

用于压缩可现场升级的无线通信设备软件代码段的系统及方法.pdf_第1页
第1页 / 共49页
用于压缩可现场升级的无线通信设备软件代码段的系统及方法.pdf_第2页
第2页 / 共49页
用于压缩可现场升级的无线通信设备软件代码段的系统及方法.pdf_第3页
第3页 / 共49页
点击查看更多>>
资源描述

《用于压缩可现场升级的无线通信设备软件代码段的系统及方法.pdf》由会员分享,可在线阅读,更多相关《用于压缩可现场升级的无线通信设备软件代码段的系统及方法.pdf(49页珍藏版)》请在专利查询网上搜索。

本发明提供用于重新编制存储在无线通信设备存储器中的软件指令的系统和方法。该方法包括:通过创建第二组连续编址的存储块、用相应的代码段识别每个存储块、在识别的存储块中存储代码段,而将无线设备系统软件存储多个当前代码段中,并且代码段的起始位置在相应的起始地址;通过无线通信设备无线接口接收新代码段;识别用于更新的当前代码段;计算代码段大小;产生压缩方案以响应对代码段大小的计算;重设当前代码段的大小;重设当。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1