CN1235137C - 用于压缩可现场升级的无线通信设备软件代码段的***及方法 - Google Patents

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

Info

Publication number
CN1235137C
CN1235137C CNB028148347A CN02814834A CN1235137C CN 1235137 C CN1235137 C CN 1235137C CN B028148347 A CNB028148347 A CN B028148347A CN 02814834 A CN02814834 A CN 02814834A CN 1235137 C CN1235137 C CN 1235137C
Authority
CN
China
Prior art keywords
code
section
size
code section
code segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB028148347A
Other languages
English (en)
Other versions
CN1535420A (zh
Inventor
高里·拉贾拉姆
保罗·泽肯多夫
迭戈·卡普兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Corp
Original Assignee
Kyocera Wireless Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/917,026 external-priority patent/US7328007B2/en
Priority claimed from US09/916,460 external-priority patent/US7159214B2/en
Priority claimed from US09/916,900 external-priority patent/US7027806B2/en
Priority claimed from US09/927,131 external-priority patent/US7143407B2/en
Priority claimed from US09/969,305 external-priority patent/US7386846B2/en
Application filed by Kyocera Wireless Corp filed Critical Kyocera Wireless Corp
Publication of CN1535420A publication Critical patent/CN1535420A/zh
Application granted granted Critical
Publication of CN1235137C publication Critical patent/CN1235137C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/20Transfer of user or subscriber data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Transceivers (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)
  • Sub-Exchange Stations And Push- Button Telephones (AREA)
  • Information Transfer Between Computers (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

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

Description

用于压缩可现场升级的无线通信设备软件代码段的***及方法
发明背景
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)从起始地址(0175)开始而不是从(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被从FSS110移动到第二存储块402。如果代码段1(302)已被重设大小,则压缩器342将使新代码段的起始地址从未用区域340开始(参见图3)。如上所述,第二存储块的起始位置从(0200)改变为(0175)。即代码段1(302)已被压缩。在图9d中,代码段3(344)被从FSS110移回到第三存储块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中执行更新的***软件包括在将新代码段和当前代码段排列在一起之后使用更新的代码段地址表和更新的符号偏移地址表。已经提供了用于在无线通信设备中重新编制***软件结构从而有助于软件的更新过程的***和方法。由于代码段中符号库的排列,并带有可访问存储器中代码段的起始地址和符号库中符号偏移地址的表,所以此***非常容易更新。尽管为了说明给出了这些库排列和交叉引用表的几个实施例,但是本发明不仅限于这些实施例。本领域所属技术人员可以想到本发明的其它变化和实施方案。

Claims (57)

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

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US09/917,026 2001-07-26
US09/916,900 2001-07-26
US09/917,026 US7328007B2 (en) 2001-07-26 2001-07-26 System and method for organizing wireless communication device system software
US09/916,460 2001-07-26
US09/916,460 US7159214B2 (en) 2001-07-26 2001-07-26 System and method for compacting field upgradeable wireless communication device software code sections
US09/916,900 US7027806B2 (en) 2001-07-26 2001-07-26 System and method for field downloading a wireless communications device software code section
US09/927,131 2001-08-10
US09/927,131 US7143407B2 (en) 2001-07-26 2001-08-10 System and method for executing wireless communications device dynamic instruction sets
US09/969,305 US7386846B2 (en) 2001-07-26 2001-10-02 System and method for the management of wireless communications device system software downloads in the field
US09/969,305 2001-10-02

Publications (2)

Publication Number Publication Date
CN1535420A CN1535420A (zh) 2004-10-06
CN1235137C true CN1235137C (zh) 2006-01-04

Family

ID=27542295

Family Applications (10)

Application Number Title Priority Date Filing Date
CNB028148320A Expired - Fee Related CN1288553C (zh) 2001-07-26 2002-07-22 用于在无线通信设备上执行更新指令的方法
CNB028148312A Expired - Fee Related CN1275149C (zh) 2001-07-26 2002-07-22 用于管理无线通信设备***软件现场下载的***和方法
CNB028148339A Expired - Fee Related CN1275150C (zh) 2001-07-26 2002-07-22 在无线通信设备中现场升级***软件的设备及方法
CNB028148347A Expired - Fee Related CN1235137C (zh) 2001-07-26 2002-07-23 用于压缩可现场升级的无线通信设备软件代码段的***及方法
CNB028148371A Expired - Fee Related CN1279447C (zh) 2001-07-26 2002-07-23 用于现场诊断无线通信设备***软件的***和方法
CNB028148355A Expired - Fee Related CN1235138C (zh) 2001-07-26 2002-07-23 用于现场下载无线通信设备软件代码段的***及方法
CNB02814838XA Expired - Fee Related CN1288554C (zh) 2001-07-26 2002-07-23 在无线通信设备中更新持久数据的***和方法
CNB02814841XA Expired - Fee Related CN1250035C (zh) 2001-07-26 2002-07-25 用于提高手机重建程序和重新编程的安全性的***及方法
CNB028148398A Expired - Fee Related CN100378661C (zh) 2001-07-26 2002-07-25 用于双向通信和执行动态指令集的***和方法
CNB028148401A Expired - Fee Related CN1310488C (zh) 2001-07-26 2002-07-25 用于对等手机通信的***及方法

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CNB028148320A Expired - Fee Related CN1288553C (zh) 2001-07-26 2002-07-22 用于在无线通信设备上执行更新指令的方法
CNB028148312A Expired - Fee Related CN1275149C (zh) 2001-07-26 2002-07-22 用于管理无线通信设备***软件现场下载的***和方法
CNB028148339A Expired - Fee Related CN1275150C (zh) 2001-07-26 2002-07-22 在无线通信设备中现场升级***软件的设备及方法

Family Applications After (6)

Application Number Title Priority Date Filing Date
CNB028148371A Expired - Fee Related CN1279447C (zh) 2001-07-26 2002-07-23 用于现场诊断无线通信设备***软件的***和方法
CNB028148355A Expired - Fee Related CN1235138C (zh) 2001-07-26 2002-07-23 用于现场下载无线通信设备软件代码段的***及方法
CNB02814838XA Expired - Fee Related CN1288554C (zh) 2001-07-26 2002-07-23 在无线通信设备中更新持久数据的***和方法
CNB02814841XA Expired - Fee Related CN1250035C (zh) 2001-07-26 2002-07-25 用于提高手机重建程序和重新编程的安全性的***及方法
CNB028148398A Expired - Fee Related CN100378661C (zh) 2001-07-26 2002-07-25 用于双向通信和执行动态指令集的***和方法
CNB028148401A Expired - Fee Related CN1310488C (zh) 2001-07-26 2002-07-25 用于对等手机通信的***及方法

Country Status (9)

Country Link
EP (12) EP1410188A2 (zh)
JP (11) JP4104546B2 (zh)
KR (10) KR100940178B1 (zh)
CN (10) CN1288553C (zh)
AT (9) ATE387658T1 (zh)
AU (9) AU2002319568A1 (zh)
DE (7) DE60205755T2 (zh)
ES (9) ES2300454T3 (zh)
WO (10) WO2003010656A2 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143407B2 (en) * 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
JP4417123B2 (ja) 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
EP1654640B1 (en) 2003-06-04 2018-08-01 Qualcomm Incorporated Network having customizable generators of sofware updates and mobile electronic devices having customizable updating software
US7873956B2 (en) 2003-09-25 2011-01-18 Pantech & Curitel Communications, Inc. Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
US7257583B2 (en) 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
KR100620729B1 (ko) * 2004-03-31 2006-09-13 주식회사 팬택앤큐리텔 소프트웨어 이미지 생성 방법
EP1757132B1 (en) * 2004-05-18 2013-07-17 Kyocera Corporation Modular data components for wireless communication devices
GB2416876B (en) * 2004-08-03 2007-01-10 Nec Technologies Export file processing within a mobile radio communications device
US7512939B2 (en) * 2004-10-05 2009-03-31 Neopost Technologies System and method of secure updating of remote device software
EP1659810B1 (en) * 2004-11-17 2013-04-10 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating configuration parameters in a mobile terminal
US9148409B2 (en) 2005-06-30 2015-09-29 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US8422667B2 (en) 2005-01-27 2013-04-16 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
CN101040552B (zh) * 2005-04-18 2010-12-01 捷讯研究有限公司 控制软件版本更新的方法和***
CN100442708C (zh) * 2005-06-17 2008-12-10 上海华为技术有限公司 一种主备备份的方法及***
CN100476728C (zh) * 2005-08-19 2009-04-08 光宝科技股份有限公司 应用程序更新方法及使用上述方法的移动通讯装置
CN100410893C (zh) * 2005-09-28 2008-08-13 联想(北京)有限公司 自行修复嵌入式设备的主控应用程序的方法及设备
CN1980447B (zh) * 2005-12-06 2010-06-16 中兴通讯股份有限公司 一种通信***软件版本的平滑升级方法
CN101401072B (zh) * 2006-03-10 2010-12-15 富士通株式会社 应用补丁筛选装置以及应用补丁筛选方法
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
CN100403263C (zh) * 2006-08-16 2008-07-16 华为技术有限公司 按配置下载设备软件的方法
KR100924647B1 (ko) * 2008-08-07 2009-11-02 주식회사 케이티 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템
JP2012523479A (ja) 2009-04-07 2012-10-04 センシエント カラーズ エルエルシー 自己分散性粒子並びにその製造方法及び使用方法
CN101539885B (zh) * 2009-04-23 2011-06-08 大唐微电子技术有限公司 一种无线通信模块软件自主空中升级的方法、装置及***
US8402217B2 (en) * 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
CN102253847A (zh) * 2010-05-19 2011-11-23 宏碁股份有限公司 制作***软件的***及***软件的部署方法
US8756256B2 (en) * 2010-05-26 2014-06-17 Qualcomm Incorporated Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts
JP6290913B2 (ja) * 2012-11-09 2018-03-07 コーヒレント・ロジックス・インコーポレーテッド 多重プロセッサシステムのためのリアルタイム分析及び制御
US10064251B2 (en) * 2013-03-15 2018-08-28 Cree, Inc. Updatable lighting fixtures and related components
CN103345412B (zh) * 2013-07-10 2016-08-24 华为技术有限公司 打补丁的方法及装置
US10652743B2 (en) 2017-12-21 2020-05-12 The Chamberlain Group, Inc. Security system for a moveable barrier operator
WO2019213672A1 (en) * 2018-05-04 2019-11-07 Herdx, Inc. Food supply tracking, verification, and feedback system
US11074773B1 (en) 2018-06-27 2021-07-27 The Chamberlain Group, Inc. Network-based control of movable barrier operators for autonomous vehicles
US11423717B2 (en) 2018-08-01 2022-08-23 The Chamberlain Group Llc Movable barrier operator and transmitter pairing over a network
KR102176204B1 (ko) 2018-10-15 2020-11-09 김용대 유명인 사용물품 기부 중개 서비스 방법
US10997810B2 (en) 2019-05-16 2021-05-04 The Chamberlain Group, Inc. In-vehicle transmitter training
JP7461755B2 (ja) * 2020-02-21 2024-04-04 日立Astemo株式会社 情報処理装置、プログラム更新システム、及びプログラム更新方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8901932D0 (en) * 1989-01-28 1989-03-15 Int Computers Ltd Data processing system
FR2662891A1 (fr) * 1990-05-30 1991-12-06 Cit Alcatel Dispositif de telechargement de logiciel pour un terminal de telecommunication.
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
JPH07182178A (ja) * 1993-02-19 1995-07-21 Nec Corp プリロードモジュール修正システム
US5488648A (en) * 1993-08-17 1996-01-30 Telefonaktiebolaget L M Ericsson Behavior monitoring and analyzing system for stored program controlled switching system
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
JP3140906B2 (ja) 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
US5734904A (en) * 1994-11-14 1998-03-31 Microsoft Corporation Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type
JPH08166877A (ja) * 1994-12-13 1996-06-25 Olympus Optical Co Ltd 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
US5673317A (en) * 1995-03-22 1997-09-30 Ora Electronics, Inc. System and method for preventing unauthorized programming of wireless network access devices
US5699275A (en) * 1995-04-12 1997-12-16 Highwaymaster Communications, Inc. System and method for remote patching of operating code located in a mobile unit
DE19527808C2 (de) * 1995-07-28 1999-04-01 Siemens Ag Verfahren zum Modifizieren der Softwareprozeduren eines Kommunikationssystems
DE19543843C2 (de) * 1995-11-24 2001-02-08 Acer Peripherals Inc Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon
JP2002515999A (ja) * 1996-08-28 2002-05-28 ウィンド リヴァー システムズ インコーポレイテッド 複数プロセッサーで分割されるソフトウエア診断のためのツール
US6247065B1 (en) * 1996-12-26 2001-06-12 At&T Corp. Messaging platform process
US6023620A (en) * 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
SE512110C2 (sv) * 1997-06-17 2000-01-24 Ericsson Telefon Ab L M System och förfarande för att kundanpassa trådlösa kommunikationsenheter
JPH1115689A (ja) * 1997-06-19 1999-01-22 Nec Corp ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体
US5974312A (en) * 1997-07-10 1999-10-26 Ericsson Inc. System and method for updating a memory in an electronic device via wireless data transfer
US6496979B1 (en) * 1997-10-24 2002-12-17 Microsoft Corporation System and method for managing application installation for a mobile device
JPH11141394A (ja) * 1997-11-07 1999-05-25 Nissan Motor Co Ltd 車両制御用メモリ書き換え装置
JPH11146011A (ja) * 1997-11-11 1999-05-28 Nec Corp 電子メールシステム及び電子メールサーバ及び通信端末
JP3337062B2 (ja) * 1997-11-21 2002-10-21 日本電気株式会社 無線データ転送方法及びそのシステム
US6275694B1 (en) * 1997-12-19 2001-08-14 Vlsi Technology, Inc. Method for remotely updating software code for personal handy phone system equipment
US6438711B2 (en) * 1998-07-15 2002-08-20 Intel Corporation Method and apparatus for performing field diagnostics on a computer system
US20020073398A1 (en) * 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
GB2349485B (en) * 1999-04-23 2003-12-10 Ibm Application management
SE516806C2 (sv) * 1999-05-26 2002-03-05 Ericsson Telefon Ab L M Sätt för inladdning av programvara i en radioterminal, såsom en mobiltelefon, och tillhörande radioterminal
US6282647B1 (en) * 1999-06-02 2001-08-28 Adaptec, Inc. Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
FR2800963B1 (fr) * 1999-11-09 2001-12-07 Wavecom Sa Procede de mise a jour d'un programme principal execute par un module de radiocommunication et/ou de donnees associees a ce programme principal, et module de radiocommunication correspondant
US7264532B2 (en) * 2004-12-27 2007-09-04 Tsan-Yao Chen Cup structure

Also Published As

Publication number Publication date
ATE359681T1 (de) 2007-05-15
KR100913659B1 (ko) 2009-08-24
CN1535529A (zh) 2004-10-06
JP4073399B2 (ja) 2008-04-09
WO2003010942A2 (en) 2003-02-06
KR100940178B1 (ko) 2010-02-03
WO2003010942A3 (en) 2003-05-15
JP2005502105A (ja) 2005-01-20
CN1537397A (zh) 2004-10-13
ES2249602T3 (es) 2006-04-01
WO2003010656A3 (en) 2003-11-13
KR20040017352A (ko) 2004-02-26
CN1235138C (zh) 2006-01-04
ATE387658T1 (de) 2008-03-15
EP1410193B1 (en) 2005-09-28
WO2003010663A3 (en) 2003-12-24
AU2002319572A1 (en) 2003-02-17
KR100940180B1 (ko) 2010-02-04
AU2002355308A1 (en) 2003-02-17
JP4106020B2 (ja) 2008-06-25
ATE310354T1 (de) 2005-12-15
JP2008108268A (ja) 2008-05-08
ES2248568T3 (es) 2006-03-16
EP1423959A2 (en) 2004-06-02
EP1610222B1 (en) 2011-03-02
EP1601217A2 (en) 2005-11-30
KR100918162B1 (ko) 2009-09-17
KR100913658B1 (ko) 2009-08-24
JP2004537123A (ja) 2004-12-09
CN1275149C (zh) 2006-09-13
DE60211719D1 (de) 2006-06-29
DE60219536D1 (de) 2007-05-24
EP1410190B1 (en) 2005-08-24
CN1535418A (zh) 2004-10-06
JP4176634B2 (ja) 2008-11-05
CN1537272A (zh) 2004-10-13
AU2002319568A1 (en) 2003-02-17
WO2003010662A2 (en) 2003-02-06
KR20040019334A (ko) 2004-03-05
ATE327628T1 (de) 2006-06-15
ATE302972T1 (de) 2005-09-15
EP1601217B1 (en) 2007-04-11
JP2004537120A (ja) 2004-12-09
KR100984895B1 (ko) 2010-10-01
KR100940179B1 (ko) 2010-02-03
ES2284112T3 (es) 2007-11-01
WO2003010658A2 (en) 2003-02-06
WO2003010932A3 (en) 2004-04-08
CN1310488C (zh) 2007-04-11
EP1410193A2 (en) 2004-04-21
EP1410665B1 (en) 2005-09-07
WO2003010668A2 (en) 2003-02-06
EP1410209A2 (en) 2004-04-21
EP1410188A2 (en) 2004-04-21
DE60206055T2 (de) 2006-06-29
EP1601217A3 (en) 2006-05-10
EP1410665A2 (en) 2004-04-21
CN1537276A (zh) 2004-10-13
DE60205755D1 (de) 2005-09-29
ES2253553T3 (es) 2006-06-01
KR20040017351A (ko) 2004-02-26
JP2004537121A (ja) 2004-12-09
EP1423959B1 (en) 2006-05-24
DE60207429T2 (de) 2006-07-27
WO2003012639A2 (en) 2003-02-13
EP1610222A2 (en) 2005-12-28
CN1288553C (zh) 2006-12-06
CN1535422A (zh) 2004-10-06
AU2002319573A1 (en) 2003-02-17
KR20040022464A (ko) 2004-03-12
WO2003013103A2 (en) 2003-02-13
KR100911604B1 (ko) 2009-08-07
WO2003012639A3 (en) 2003-12-24
CN1535423A (zh) 2004-10-06
JP4077408B2 (ja) 2008-04-16
CN100378661C (zh) 2008-04-02
ATE305632T1 (de) 2005-10-15
EP1410189B1 (en) 2008-02-27
JP4101752B2 (ja) 2008-06-18
DE60207429D1 (de) 2005-12-22
CN1279447C (zh) 2006-10-11
DE60205755T2 (de) 2006-06-29
EP1410189A2 (en) 2004-04-21
DE60211704D1 (de) 2006-06-29
ES2299587T3 (es) 2008-06-01
EP1410190A2 (en) 2004-04-21
WO2003010662A3 (en) 2003-12-24
EP1425894A2 (en) 2004-06-09
ES2263799T3 (es) 2006-12-16
JP2004537925A (ja) 2004-12-16
DE60206389D1 (de) 2006-02-09
WO2003010664A3 (en) 2003-12-24
EP1610222A3 (en) 2007-01-31
JP2005505813A (ja) 2005-02-24
CN1275150C (zh) 2006-09-13
DE60219536T2 (de) 2008-01-03
KR20040022463A (ko) 2004-03-12
ES2247355T3 (es) 2006-03-01
KR20040015823A (ko) 2004-02-19
WO2003010663A2 (en) 2003-02-06
KR100817387B1 (ko) 2008-03-27
KR20040022462A (ko) 2004-03-12
ATE382159T1 (de) 2008-01-15
EP1410191A2 (en) 2004-04-21
CN1535421A (zh) 2004-10-06
WO2003013103A3 (en) 2004-04-08
JP4310186B2 (ja) 2009-08-05
ATE304272T1 (de) 2005-09-15
ATE327536T1 (de) 2006-06-15
ES2263796T3 (es) 2006-12-16
WO2003010932A2 (en) 2003-02-06
DE60206389T2 (de) 2006-07-13
JP4104546B2 (ja) 2008-06-18
CN1288554C (zh) 2006-12-06
DE60211704T2 (de) 2007-05-10
EP1410192B1 (en) 2007-12-26
DE60206055D1 (de) 2005-10-13
JP2004538693A (ja) 2004-12-24
WO2003010664A2 (en) 2003-02-06
KR100932058B1 (ko) 2009-12-15
JP2004537899A (ja) 2004-12-16
KR20040022460A (ko) 2004-03-12
KR20040022461A (ko) 2004-03-12
AU2002319569A1 (en) 2003-02-17
AU2002319576A1 (en) 2003-02-17
DE60211719T2 (de) 2007-01-11
EP1425894B1 (en) 2005-11-16
WO2003010656A2 (en) 2003-02-06
CN1535419A (zh) 2004-10-06
CN1250035C (zh) 2006-04-05
KR20040022459A (ko) 2004-03-12
EP1410192A2 (en) 2004-04-21
AU2002328167A1 (en) 2003-02-17
AU2002319577A1 (en) 2003-02-17
EP1410209B1 (en) 2006-05-24
JP4278513B2 (ja) 2009-06-17
WO2003010668A3 (en) 2003-09-25
WO2003010658A3 (en) 2003-12-24
AU2002319570A1 (en) 2003-02-17
CN1535420A (zh) 2004-10-06
JP2004537895A (ja) 2004-12-16
ES2300454T3 (es) 2008-06-16
JP2004537209A (ja) 2004-12-09

Similar Documents

Publication Publication Date Title
CN1235137C (zh) 用于压缩可现场升级的无线通信设备软件代码段的***及方法
US8479180B2 (en) Maintenance of over the air upgradeable wireless communication device software
US7386846B2 (en) System and method for the management of wireless communications device system software downloads in the field
US20040243992A1 (en) Update system capable of updating software across multiple FLASH chips
EP1939750A1 (en) Data management method in flash memory medium
US20040103241A1 (en) Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
CN104199706A (zh) 一种eMMC的固件升级方法及其设备
CN1517903A (zh) 地图数据处理装置及中心***
US20040203625A1 (en) Apparatus and method for managing memory in mobile communication terminal
CN101211265A (zh) 一种终端嵌入式***的软件更新方法和装置
CN1716217A (zh) 数据移动少可以高速存取的存储装置
CN1293469C (zh) 具有菜单显示改变功能的移动通信终端及其菜单显示改变方法
CN100458736C (zh) Nand闪存信息提取方法和nand闪存自动识别方法
JP2006085342A (ja) メモリ制御装置、メモリ制御方法、プログラム
CN100375029C (zh) 存储器配置***与方法
CN103336699A (zh) 嵌入式***软件的升级方法和装置
US20030022665A1 (en) System and method for organizing field upgradable wireless communication device software
CN101770508B (zh) 移动通信终端中的数据访问方法和设备
CN1828536A (zh) 一种便携终端的程序动态载入装置及方法
KR100342833B1 (ko) 모듈별 업데이트 장치 및 그 방법
CN100378660C (zh) 绕道修补程序的方法及使用该方法的电子装置
CN113641449B (zh) 镜像下载控制方法及装置、设备和存储介质
WO2008054132A1 (en) Terminal having platform library dynamic linking function and method of controlling the same
CN102521004A (zh) 一种升级软件版本的方法
KR20070076340A (ko) 개인정보단말기의 프로그램 갱신 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: KYOCERA CO.,LTD.

Free format text: FORMER NAME OR ADDRESS: KYOCERA WIRELESS CORP.

CP03 Change of name, title or address

Address after: American California

Patentee after: Kyocera Wireless Corp.

Address before: American California

Patentee before: Kyocera Wireless Corp.

ASS Succession or assignment of patent right

Owner name: KYOCERA CORP.

Free format text: FORMER OWNER: KYOCERA WIRELESS CORP.

Effective date: 20110630

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: STATE OF CALIFORNIA, THE USA TO: KYOTO, JAPAN

TR01 Transfer of patent right

Effective date of registration: 20110630

Address after: Kyoto Japan

Patentee after: Kyocera Corp.

Address before: American California

Patentee before: Kyocera Wireless Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Kyoto Japan

Patentee after: KYOCERA Corporation

Address before: Kyoto Japan

Patentee before: Kyocera Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060104

Termination date: 20160723

CF01 Termination of patent right due to non-payment of annual fee