CN100378661C - 用于双向通信和执行动态指令集的系统和方法 - Google Patents

用于双向通信和执行动态指令集的系统和方法 Download PDF

Info

Publication number
CN100378661C
CN100378661C CNB028148398A CN02814839A CN100378661C CN 100378661 C CN100378661 C CN 100378661C CN B028148398 A CNB028148398 A CN B028148398A CN 02814839 A CN02814839 A CN 02814839A CN 100378661 C CN100378661 C CN 100378661C
Authority
CN
China
Prior art keywords
code
operation code
group
server
data
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
CNB028148398A
Other languages
English (en)
Other versions
CN1535423A (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,900 external-priority patent/US7027806B2/en
Priority claimed from US09/916,460 external-priority patent/US7159214B2/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 CN1535423A publication Critical patent/CN1535423A/zh
Application granted granted Critical
Publication of CN100378661C publication Critical patent/CN100378661C/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)
  • Information Transfer Between Computers (AREA)
  • Sub-Exchange Stations And Push- Button Telephones (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)

Abstract

提供了一种用于在手机和无线通信网络之间进行动态指令集双向通信的系统和方法。动态指令集表示接收设备执行的单独功能或单独动作。无线通信设备可以发送动态指令集给网络以命令网络执行一定的操作,例如向无线通信设备提供信息、软件或其它数据。无线通信设备也被配置用于接收和执行网络发送的动态指令集。

Description

用于双向通信和执行动态指令集的系统和方法
技术领域
本发明一般地涉及无线通信领域,尤其涉及手机和无线通信网络之间进行动态指令集的双向通信。
发明背景
常规的无线通信设备一旦被使用(即出售给用户),通常就变成了独立的计算平台。这些常规无线通信设备与主网络交换数据(诸如操作或维护数据等)受到很大的限制或者没有该能力。对于无线通信设备的提供商来说,在更新设备上所执行的软件和从所述设备获取操作或维护数据方面,缺少数据通信能力是很严峻的挑战。例如,为了升级蜂窝电话的操作系统,用户必须亲自将电话带到服务中心,在服务中心,技术人员为了更新该电话必须将电话插到计算机中。在对蜂窝电话进行综合或深入诊断时也时一样的。
用于更新无线通信设备或从这种设备中获得信息的常规解决方案通常需要将该设备带到服务站,服务站的技术人员可以与此设备交互,从而更新它的软件程序或从此设备获取数据。这对于设备的用户和提供商来说成本都很高。
另外,常规的更新无线通信设备或从这种设备获得信息的方法通常需要与该设备的硬线连接。这使无线通信设备的更新和维护的需求进一步复杂化,并需要特殊的电缆,甚至还需要设备本身具有硬线接口。这些需要提高了无线通信设备的生产和维护成本,同时还降低了设备的使用期限。
最后,用于与无线通信设备进行数据通信的常规方法是单向的。常规的网络可能具备为无线通信设备提供应用软件和数据的能力。另外,常规无线通信设备可能具备使用有限的配置数据和状态信息响应这类通信的能力。但是,在常规系统内存在的受限制的主站-从站通信能力会面临无线通信设备不能启动与网络的通信的问题。
因此,需要一种能够克服上述常规系统内存在的这些显著问题的系统和方法。
发明内容
常规无线通信设备一旦被使用就将成为独立的计算平台,这些无线通信设备极度受限地或没有能力与主网络进行数据通信。在更新无线通信设备上所执行的软件和从设备获取操作数据的方面,这种数据通信能力的缺少是严峻的挑战。另外,常规的无线通信设备缺少启动对信息或软件更新的请求的能力,而这种能力可以改善它们与它们的环境进行交互的能力。
本发明提供了用于在手机和无线通信网络之间进行动态指令集双向通信的系统和方法。动态指令集,例如一个或多个补丁管理器运行时期指令(“PMRTI”),代表将由接收设备执行的单独功能或单独动作。无线通信网络能够向手机发送动态指令集以命令手机执行某些操作,如向网络报告状态。类似地,本发明使手机能够编译动态指令集,例如一个或多个反向补丁管理器运行指令(“RPMRTI”),并向网络发送用于执行的指令集。这种能力允许手机提供或请求信息、软件或允许手机执行所需功能的其它数据。
根据本发明的一个方面所述,它提供了一种无线通信设备,包括:服务操作代码库;远程操作代码库;一组可执行指令,每个可执行指令对应于远程操作代码库中的一个操作代码;以及运行时期引擎,用于编译一组服务器操作代码,并向服务器计算机发送该组服务器操作代码,服务器计算机通过无线通信网络与无线通信设备进行通信连接,运行时期引擎进一步配置为用于接收一组远程操作代码并执行一组可执行指令,每个可执行指令对应于所接收的远程操作代码组中的一个操作代码。
根据本发明的另一个方面所述,它提供了一种用于在无线通信设备和服务器计算机之间发送可操作指令的双向系统,其中无线通信设备和服务器计算机通过无线通信网络进行通信连接,所述系统包括:无线通信设备,包括运行时期引擎、服务器操作代码库、远程操作代码库和第一组可执行指令,所述第一组中的每个可执行指令对应于远程操作代码库中的操作代码;和服务器计算机,包括控制模块、服务器操作代码库、远程操作代码库和第二组可执行指令,所述第二组中的每个可执行指令对应于服务器操作代码库中的操作代码;其中运行时期引擎用于编译一组服务器操作代码,并向服务器计算机发送该组服务器操作代码,其中服务器计算机用于接收该组服务器操作代码和执行一组指令,每个指令对应于该组服务器操作代码中的操作代码。
附图说明
通过参考附图可以部分地理解本发明的结构和操作的细节,其中相同参考标号表示相同的部件,在附图中:
图1是整个无线设备软件维护系统的示意方框图;
图2是软件维护系统的示意方框图,突出显示通过无线链路接口的指令集安装;
图3是用于在无线通信设备内执行动态指令集的本发明的系统的示意方框图;
图4是无线设备存储器的示意方框图;
图5是表示图3所示的代码段地址表的表;
图6是使用符号对图3的一个符号库的详细说明;
图7是表示图3所示的符号偏移地址表的表;
图8是对由运行时期引擎存取的操作码(“opcode”)的描述;
图9是图8所示的第一操作码的更详细的图示;
图10是用于在无线通信设备内执行动态指令集的本发明的方法的流程图;
图11是图示一个示意性动态指令集操作的流程图;
图12是图示另一个示意性动态指令集操作的流程图;
图13是图示第三个示意性动态指令集操作的流程图;
图14是图示第四个示意性动态指令集操作的流程图;
图15是图示第五个示意性动态指令集操作的流程图;
图16是图示一个示例的无线通信网络的高层网络图;
图17A是图示一个示例的无线通信设备的方框图;
图17B是图示一个示例的远程运行时期指令代码段的方框图;
图18A是图示一个示例的PMRTI服务器的方框图;
图18B是图示一个示例的服务器运行时期指令代码段的方框图;
图19是图示用于在无线通信设备上执行动态指令集的一个示例性处理方法的流程图;
图20是图示用于在无线通信设备上编译动态指令集的一个示例性处理方法的流程图;
图21是图示用于在PMRTI服务器上执行动态指令集的一个示例性处理方法的流程图;
图22是图示用于同步操作代码库的一个示例性处理方法的流程图;和
图23是图示可以与此所述的不同实施例结合使用的一个示例性计算机系统的方框图。
具体实施方式
公开了一种在无线通信设备和无线通信网络之间进行动态指令集双向通信的系统和方法。例如,在此公开了一种方法,它允许无线通信设备动态地执行一个指令集,并将该指令集发送给网络以便执行和处理。
本领域的技术人员在阅读本说明书后将会明白,如何用不同的替代实施例和替代应用设备来实施本发明。但是,尽管这里将描述本发明的不同实施例,但是应该理解,所提供的本发明的实施例仅仅是示例,而不是限制性的。因此,各种替代实施例的详细描述不应当解释为对权利要求书所述的本发明保护范围的限制。
下面通过程序、步骤、逻辑模块、代码、处理和对无线设备微处理器或存储器内的数据比特进行操作的其它符号表示来详细地描述本发明的一些方面。这些描述和表示是数据处理领域的普通技术人员所使用的手段,从而最有效地将它们工作实质提供给本领域的其它技术人员。在此,通常将程序、微处理器所执行的步骤、应用、逻辑模块和处理等视为产生预期结果的自相一致的步骤或指令序列。这些步骤需要物理量的物理操作。通常,尽管不是必需的,这些物理量采用能够被存储、传送、合并、比较以及在基于微处理器的无线设备内的其它操作的电或磁信号的形式。主要出于共同使用的原因,已经多次证明将这些信号称为比特、数值、单元、符号、字符、项目和数字等是很方便的。当提及物理设备例如存储器时,它们通过总线或其它电连接而连接到其它物理设备。可以认为这些物理设备能够与逻辑处理或应用相互作用,因此这些设备“连接”到逻辑操作。例如,存储器能够存储或存取代码以进行逻辑操作,或一个应用程序能够从存储器内调用用于执行的代码段。
然而,应该指出全部的这些和类似的术语都将与合适的物理量关联,并仅仅是应用于这些物理量的便利标记而已。除非特别声明,否则根据下文的讨论将是显而易见的,应该理解在本发明中,使用术语例如“处理”、“连接”、“翻译”、“显示”、“提示”、“确定”、“显示”或“识别”等等的讨论是指一个无线设备微处理器系统的动作和处理,该系统将在计算机系统寄存器和存储器内表示为物理(电)量值的数据转换成在无线设备存储器、寄存器或其它的这种信息存储器、传输或显示设备内类似地表示为物理量值的其它数据。
图1是整个无线设备软件维护系统100的示意方框图。在软件维护系统100的概括描述之后,下面详细地描述本发明的系统软件组织结构。总系统100描述了发送系统软件更新和指令集(程序)和在无线设备内安装所发送软件的处理。系统软件更新和补丁管理器运行时期指令(PMRTI)通常多称作指令集或动态指令集,它们由手机的制造商产生。将系统软件组织为符号库。将所述符号库排列进代码段。当要更新符号库时,作为一个或多个代码段传输软件更新102。使用公知的常规无线数据或消息传输协议,将软件更新广播给由无线通信设备104代表的现场无线设备,或从基站106在单独的通信中发送该软件更新。本发明不限定于任何特定的传输格式,因为为了接收系统软件和PMRTI更新,能够很容易地调整无线通信设备以处理任何可用的空中传输协议。
可以将系统软件视为不同子系统的集合。代码对象可以紧密连接到这些抽象子系统之一内,并且可以将所产生集合标记为符号库。这提供了库代码(code base)的逻辑细分,并且软件补丁和修正能够与这些符号库中的一个相关联。在大部分情况下,单个更新与一个或至多两个符号库相关联。剩余的库代码和其它符号库保持不变。
符号库的概念提供了一种处理代码和常量的机制。另一方面,读写(RW)数据被装入唯一的单独RW库,该库包括用于所有库的基于RAM的数据。
一旦无线设备104接收到了所传输的代码段,就必须处理该代码段。无线设备重写非易失性存储器108的专用代码段。非易失性存储器108包括文件系统段(FSS)100和代码存储段112。在传输之前,为了最小化占用FSS100,通常将代码段进行压缩。通常,更新代码段将伴随有它的RW数据,这是包括用于每个符号库的全部RW数据的另一种符号库。尽管当执行系统软件时,将其载入随机存取易失性读写存储器114中,RW数据总是需要存储在非易失性存储器108中,因此,可以在每次复位无线设备时将系统软件载入随机存取易失性读写存储器114中。这包括载入到随机存取易失性读写存储器的第一次RW数据。如下文更加详细地解释的,通常使用补丁管理器代码段来安排RW数据。
系统100包括虚拟表的概念。使用这些表,能够修补(替换)代码段内的符号库,而不会破坏(替换)系统软件的其它部分(其它代码段)。为了提高效率,虚拟表从随机存取易失性读写存储器114开始执行。代码段地址表和符号偏移地址表都是虚拟表。
无线设备104接收更新代码段并将其存储在FSS110中。无线设备用户接口(UI)通常将通知用户新软件是可用的。响应于UI提示,用户确认此通知,并通知修补或更新操作。可选地,自动地执行更新操作。当执行更新处理时,无线设备可能不能执行标准的通信任务。补丁管理器代码段包括非易失性可读写驱动符号库,该符号库也装载到随机存取易失性读写存储器114中。非易失性可读写驱动符号库使代码段用更新代码段重写。补丁管理器代码段包括读写数据、代码段地址表、符号偏移地址表、符号存取器代码和符号存取器代码地址(下面将进行讨论)。当引入更新代码段时,该数据的一些部分是无效的,更新补丁管理器代码段包括读写数据、代码段地址表和对更新代码段有效的符号偏移地址表。一旦将更新代码段载入到代码存储段112中,则无线设备复位。在复位操作之后,无线设备能够执行更新的系统软件。也应该理解,补丁管理器代码段可以包括上面没有讨论过的其它符号库。这些其它的符号库不需要载入到可读写易失性存储器114内。
图2是软件维护系统100的示意方框图,其中突出显示了通过无线链路接口的指令集的安装。除了更新系统软件代码段以外,维护系统100可以下载和安装动态指令集、程序或补丁管理指令集(PMIS),这里称之为补丁管理器运行时期指令(PMRTI)。以与上述系统软件代码段相同的方式将PMRTI代码段200传送到无线设备104。PMRTI代码段最初存储在FSS110内。PMRTI代码段通常是可以视作发送给手机的编译指令的二进制文件。很容易理解,PMRTI代码段足够用于提供基本数学运算的性能和有条件的执行运算的性能。例如,射频校准PMRTI能够执行以下操作:
IF RF CAL ITEM IS LESS THAN X(如果RF CAL项小于X)
EXECUTE INSTRUCTION(执行指令)
ELSE(否则)
EXECUTE INSTRUCTION(执行指令)
PMRTI能够支持基本数学运算,例如:加法、减法、乘法和除法。由于具有系统软件代码段,可以响应UI提示载入PMRTI代码段,在将PMRTI载入代码存储段112之后必须复位无线设备。然后,执行PMRTI段。如果PMRTI代码段与任何虚拟表或读写数据相关联,为了在代码存储段112内安装,更新的补丁管理器代码段将与PMRTI一起传输。可选择地,在FSS110保持和处理PMRTI。在手机104已经执行PMRTI段内的全部指令之后,可以从FSS110删除PMRTI段。可选择地,维持PMRTI用于将来的操作。例如,可以在每次为无线设备上电时执行PMRTI。
PMRTI是非常强大的运行时期指令引擎。手机能够执行通过PMRTI环境传送到它的任何指令。这种机制可以用于支持射频校准。一般来说,通常作为用户申诉的结果,当制造商或业务提供商意识到软件问题时,可以使用PMRTI来远程调试无线设备软件。PMRTI也能够记录用于诊断软件问题所需要的数据。PMRTI可以启动最新下载的用于数据分析、调试和修复的系统应用程序。PMRTI可以提供用于分析和可能短期修复问题的基于RW数据的更新来替代一个更新系统软件代码段。PMRTI可以提供无线设备使用的存储压缩算法。
在本发明的一个方面,将系统软件组织成符号库可以减少执行所需要的易失性存储器114和非易失性存储器108的大小。这是由于以下事实,即代码段通常大于代码段内所安排的符号库。存在这些较大的代码段用于容纳更新代码段。将系统软件组织为库的集合降低了对非易失性存储器大小的需要。对于相同的代码大小,由于代码段的大小可能大于在其所设置的符号库,所以所使用的非易失性存储器的量值将更大。
一旦软件更新已经传送到无线设备,则软件维护系统100支持存储器压缩。存储器压缩类似于台式机中的硬盘碎片整理应用程序。当更新代码段的大小不可预测时,压缩机制确保了最佳地使用存储器,并提供更多的节余用于将来的代码段更新。当代码存储段被修补(更新)时,系统100分析代码存储段。系统100试图使更新代码段放入所替换的代码段占用的存储空间。如果更新代码段大于被替换的代码段,则系统100压缩存储器112中的代码段。可选择地,制造商或业务提供商能够计算压缩,并将压缩指令传送到无线设备104。
由于算法的复杂性,压缩是消耗时间的处理,并且也是巨大数量的数据传送。在开始任何处理之前,压缩算法分析可行性。在试图压缩之前,可以使用UI提示来申请用户许可。
在本发明一些方面,可以同时更新所有的系统软件代码段。但是,完整的系统软件更新将需要更大的FSS110。
图3是图示在无线通信设备内执行的本发明动态指令集的示意方框图。系统300包括存储器108中的代码存储段112,存储器内包含有分化为许多当前代码段的可执行无线设备系统软件。图示了代码段一(302)、代码段二(304)、代码段n(306)和补丁管理器代码段308。但是,本发明不限定于任何特定数量的代码段。而且,系统300还包括在第二组代码段中设置的第一组符号库。图中图示了在代码段一(302)中安排的符号库一(310),在代码段二(304)中安排的符号库二(312)和符号库三(314)和在代码段n(306)中安排的符号库m(316)。每个库包括具有相关功能的符号。例如,符号库一(310)可能涉及无线设备液晶显示器(LCD)的操作。然后,这些符号将与显示功能相关联。如下详细所述,在补丁管理器代码段308中安排了其它符号库。
图4是无线设备存储器的示意方框图。如图所示,存储器是图1的代码存储段112。该存储器是可写的非易失性存储器,例如闪存。应该理解,代码段并不必需存储在与FSS110相同的存储器内。还应该理解,本发明系统软件结构可以通过许多协作存储器内存储的代码段来实现。代码存储段112包括第二组连续地址存储块,其中每个存储块存储第二组代码段中相应的代码段。因此,代码段一(302)存储在第一存储块400中,代码段二(304)存储在第二存储块402,代码段n(306)存储在第n存储块404和补丁管理器代码段(308)存储在第p存储块406中。
对比图3和图4,每个代码段的开始部分存储在存储器内相应的开始地址中,符号库安排在代码段的开始部分开始。即,每个符号库在第一地址上开始,并在从第一地址开始的顺序地址范围内运行。例如,代码段一(302)从代码存储段存储器112的第一开始地址408(用“S”标记)开始。在图3中,符号库一(310)起始于第一代码段的开始318。类似地,代码段二(304)起始于第二开始地址410(图4),和符号库二起始于代码段二的开始320(图3)。代码段n(306)起始于代码存储段存储器112的第三开始地址412(图4),和符号库m(316)起始于代码段n322的开始(图3)。补丁管理器代码段起始于代码存储段存储器112的第p开始地址414,和补丁管理器代码段308的第一符号库起始于修补代码段的开始324。因此,符号库一(310)最终存储在第一存储块400中。如果代码段包括许多符号库,例如代码段二(304),多个符号库存储在相应的存储块中,在这里是在第二存储块402中。
在图3中,系统300还包括代码段地址表326,它作为一种符号包括在补丁管理器代码段308中安排的符号库内。代码段地址表交叉引用代码段标识符与存储器内的相应代码段开始地址。
图5是表示图3所示的代码段地址表326的表。查询代码段地址表326以找到符号库的代码段开始地址。例如,当需要执行符号库一中的符号时,系统300搜寻代码段一。为了找到代码段一的开始地址从而定位符号库一内的符号,查询代码段地址表326。在代码段内安排符号库和使用表跟踪代码段允许移动或扩展代码段。扩展或移动操作可能在安装升级的代码段(带有升级的符号库)时需要。
再次参见图3,应该注意到并非每一个符号库都必须起始于代码段的开始。如图所示,在代码段二(304)内安排符号库三(314),而不是代码段开始地址320的开始位置。因此,如果需要执行符号库三(314)内的符号,系统300向代码段地址表326查询代码段二(304)的开始地址。如下面所解释的,符号偏移地址表允许在符号库三(314)内定位符号。这些符号分布在多个库内是没关系的,只要这些符号保持在同一代码段内。
如上所述,每个符号库包括功能上相关的符号。每个符号是编程人员定义的名称,用于定位和使用程序主体、变量或数据结构。因此,一个符号可以是一个地址或一个数值。这些符号可以是内部的或外部的。内部符号在当前代码段的范围之外是不可见的。更具体而言,其它代码段中的其它符号库不能搜寻这些符号。在整个代码段中使用和调用外部符号,并由不同代码段内库来搜寻这些符号。符号偏移地址表通常包括一个全部外部符号的列表。
例如,符号库一(310)可以在无线设备显示器上生成符号。这个库内的符号又将生成电话号码、名称、时间或其它显示特征。每个特征通过程序来产生,在这里称作符号。例如,符号库一(310)中的一个符号在显示器上产生电话号码。该符号由“X”表示,并且是外部的。当无线设备接收电话呼叫时并且主叫ID业务被激活时,系统必须执行“X”符号以在显示器上产生电话号码。因此,系统必须定位“X”符号。
图6是使用符号对图3的符号库一(310)的详细描述。安排符号使其从各个代码段的开始地址偏移。在许多情况下,符号库的开始就是代码段的开始,但是如果代码段包括不止一个符号库时就不是这样了。符号库一(310)起始于代码段一(参见图3)的开始。如图6所示,“X”符号位于距离符号库的开始位置的一个偏移(03)上,和“Y”符号位于偏移(15)上。符号偏移地址存储在补丁管理器代码段的符号偏移地址表328内(参见图3)。
图7是图示图3所示的符号偏移地址表328的表。符号偏移地址表328交叉引用符号标识符与相应的偏移地址以及存储器内的相应代码段标识符。因此,当系统试图执行符号库一内的符号“X”时,则根据安排的代码段来查询符号偏移地址表328以定位符号的精确地址。
再次参见图3,第一组符号库通常都包括读写数据,在执行这些符号库时必需查询或设置这些数据。例如,符号库可以包括一个基于条件语句的操作。查询读写数据段以确定完成条件语句所需要的状态。本发明将所有符号库的读写数据分组为共享读写段。在本发明的一些方面中,将读写数据330安排在补丁管理器代码段308中。可选择地(未图示),读写数据能够安排在不同的代码段中,例如代码段n(306)。
第一组符号库也包括在代码段内安排的符号存取器代码,用于计算所寻找符号的地址。符号存取器代码能够被安排和存储在独立代码段内的地址中,例如代码段二(304)。但是,如图所示,符号存取器代码332被安排和存储在补丁管理器代码段308的一个地址中。系统300还包括用于存储符号存取器代码地址的第一位置。第一位置可以是代码存储段112中的代码段,或者是无线设备(未图示)的单独存储段中的代码段。第一位置也可以安排在相同的代码段中作为读写数据。如图所示,第一位置334存储在具有读写数据330、符号偏移地址表328、代码段地址表326、符号存取器代码332和补丁库(补丁符号库)336的补丁管理器代码段308内。
符号存取器代码访问代码段地址表和符号偏移地址表以在存储器内计算或查找所寻找符号的地址。即,符号存取器代码使用相应的符号标识符和相应的代码段标识符来计算所查询符号的地址。例如,如果查询符号库一中的符号“X”,则调用符号存取器以查找对应于“X”符号的符号标识符(符号ID)“X_1”(参见图7)。符号存取器代码查询符号偏移地址表以确定“X_1”符号标识符具有一个距离代码段开始位置的偏移(03)(参见图6)。调用符号存取器代码以寻找对应于代码段一的代码段标识符“CS_1”。符号存取器代码查询代码段地址表以确定与代码段标识符(代码段ID)“CS_1”相关的开始地址。通过这种方式,符号存取器代码确定符号标识符“X_1”与地址(00100)偏移(03),或位于地址(00103)上。
由于符号“X”是实际代码的一部分,因此它是一个保留名称。换句话说,该符号具有与它相关的绝对数据。该数据可以是地址或值。符号标识符是建立用于跟踪符号的一个别名。符号偏移地址表和代码段地址表都通过标识符操作以避免与保留符号和代码段名称混淆。很有可能的是在许多符号库中使用相同的符号名称。使用标识符避免了混淆这些符号。
再次参见图1,系统300还包括读写易失性存储器114,通常是随机存取存储器(RAM)。在执行系统软件过程中,为了存取,将读写数据330、代码段地址表326和符号偏移地址表328、符号存取器代码332以及符号存储器代码地址334从补丁管理器代码段装载到读写易失性存储器114内。众所周知,存取在RAM内存储的代码的时间远小于存取非易失性存储器例如闪存的时间。
再次参见图3,可以看出,符号库不需要将代码段填满它们所处的存储器,尽管精确地确定存储块的大小以容纳在其中存储的相应代码段。也就是说,第二组代码段中的每个代码段的字节大小可容纳所设置的符号库,每个连续编址的存储块的字节大小可容纳相应的代码段。例如,代码段一(302)可以是100字节的段以容纳长度为100字节的符号库。第一存储块将是100字节以匹配代码段一的字节大小。然而,载入代码段1的符号库可能小于100字节。如图3所示,代码段一(302)具有一个未使用的段340,例如符号库一(310)小于100字节。因此,每个第二组代码段的大小可能大于容纳所设置的符号库所需要的大小。使用“超过尺寸的”代码段,可以容纳更大的更新符号库。
连续编址的存储块是指将物理存储空间分割成可变大小的逻辑块。当将代码段存储在存储器内时,代码段和存储块的含义基本上相同。使用代码段的概念来标识一个可能大于符号库的代码段或者当迁移和操作时代码段内符号库的集合。
如图3所示,系统300包括补丁符号库,在此将其称为补丁库336,用于将新的代码段设置在带有当前代码段的代码存储段。通过在代码存储段内设置新的代码段与当前代码段形成了更新的可执行系统软件。补丁管理器336不仅与新的代码段一起设置新的代码段,而且还用更新代码段替换代码段。
再次参见图4,存储器108的文件系统段100接收新的代码段,例如新代码段450和更新补丁管理器代码段452。文件系统段也接收包括指令的第一补丁管理器运行时期指令(PMRTI)454,这些指令用于与当前代码段一起设置新的代码段。如图1所示,无线链路接口150接收新的或更新代码段以及第一PMRTI。尽管无线链路接口150由天线来表示,应该理解无线链路接口也将包括射频收发信机、基带电路和解调电路(未图示)。文件系统段110存储通过无线链路接口150接收到的新代码段。响应第一PMRTI454,在读写易失性存储器114中执行的补丁库336用新的或更新代码段450替换代码存储段内的第一代码段,例如代码段n(306)。通常用更新补丁管理器代码段452替换补丁管理器代码段308。当更新代码段时,补丁库336使用更新代码段,例如文件系统段110中的代码段450来重写代码存储段112的第一代码段,例如代码段n(306)。在极端情况下,用更新代码段替换代码存储段112中的全部代码段。即,FSS110接收第二组更新代码段(未图示),补丁库336用第二组更新代码段替换代码存储段112中的第二组代码段。当然,FSS110必须足够大以容纳通过无线链路接口接收的第二组更新代码段。
如上所述,接收的更新代码段可能包括读写数据代码段、代码段地址表代码段、符号库、符号偏移地址表代码段、符号存取器代码段或具有新补丁库的代码段。全部的这些代码段和它们的相关符号库和符号可以被存储为各自独立的代码段。然后,用唯一的更新代码段来替换这些代码段中的每一个代码段。即,将接收一个更新的读写数据代码段并使用它来替换代码存储段中的读写代码段。将接收一个更新代码段地址表代码段并使用它来替换代码存储段中的代码段地址表代码段。接收一个更新的符号偏移地址表代码段并使用它来替换代码存储段中的符号偏移地址表代码段。接收一个更新的符号存取器代码段并使用它来替换代码存储段中的符号存取器代码段。同样,接收一个更新的补丁管理代码(具有补丁库)并使用它来替换代码存储段中的补丁管理代码段。
然而,通常将上述代码段在补丁管理器代码段中捆绑在一起。因此,当用更新的补丁管理器代码段450替换补丁管理器代码段308时,使用来自文件系统段110中的更新读写代码段来替换代码存储段中的读写代码段。同样,当安装更新补丁管理代码段450时,替换代码段地址表、符号偏移地址表、符号存取器代码段以及补丁库。新的读写数据、新的代码段地址表、新的符号偏移地址表、新的符号存取器代码段、作为更新补丁管理代码段450的新补丁库和存储代码段中的当前代码段的设置构成了更新可执行系统软件。
当文件系统段110接收一个更新符号存取器代码地址时,补丁管理用更新的符号存取器代码地址来替换存储器第一位置中的符号存取器代码地址。如上所述,存储器334的第一位置通常位于补丁管理代码段中(参见图3)。
如图3所示,补丁库308也包括压缩器或压缩器符号库342。压缩器可以作为各自独立的代码段,但是如上所述,将与系统软件升级相关的功能捆绑在单个补丁管理代码段中是有用和有效的。通常,压缩器342可说成能够调整代码段的大小,因此,新段可以与当前代码段一起设置在代码存储段112内。
使用目前建立的本发明的组织结构、下载和压缩特征,下面的讨论将集中于无线通信设备动态指令集执行系统300。如上面详细讨论的,该系统300包括可执行的划分成代码段的系统软件和系统数据。此外,系统300包括对系统数据和系统软件进行操作和控制系统软件执行的动态指令集。如图4所示,将动态指令集470组织为第一PMRTI454。如图3所示,该系统还包括处理动态指令集的运行时期引擎,使其作为运行时期库370。因为使用上述压缩库342和补丁库336,运行时期库370通常位于补丁管理代码段308内。但是,运行时期库370也可以位于另一个代码段内,例如第一代码段304。
动态指令集是单独的或多个指令集,这些指令集包括条件操作代码,通常包括数据项。运行时期引擎读取操作代码并确定需要执行哪一项操作。操作代码可以是条件的、数学的、程序的或逻辑的。运行时期引擎或运行时期库370处理动态指令集以执行操作,例如数学或逻辑运算。即,运行时期引擎读取动态指令集470并响应操作代码而执行一系列的操作。尽管动态指令集并不限定于任何特定的语言,但是因为无线设备存储器是受限制的并且执行速度很重要,所以操作代码通常是机器代码形式的。将操作代码视为有条件的,其中它分析数据项并作出分析结果。在分析数据之前,运行时期引擎还可以确定对数据执行的操作。
例如,操作代码可以规定比较无线设备存储器内的数据项与预定数值。如果数据项小于预定值,则保留此数据项,如果数据项大于预定值,则用预定值予以替换。可选择地,在执行上述比较操作之前,操作代码可以将第二预定值添加给无线设备存储器内的一个数据项。
如上所述,文件系统段非易失性存储器110通过接口诸如空中链路150的接口接收动态指令集。如图1所示,接口也可以是射频(RF)硬连线160的。然后,在系统软件不工作的情况下,例如在工厂校准环境下,可以由FSS110来接收PMRTI。也可以通过逻辑端口接口162或可安装的存储器模块164来接收PMRTI。在初始化校准时,存储器模块164可安装在无线设备104中、安装在现场或在工厂重新校准过程中安装。尽管未具体图示,也可以通过红外或蓝牙接口来接收PMRTI。
图8图示运行时期引擎370所存取的指令。图示了第一指令800、第二指令802和第j指令804,但是,动态指令集不限定于任何特定数量的指令。每个指令内操作代码的长度是固定的。运行时期引擎370捕获指令长度,例如字节或比特的测量值,确定该指令是否包括数据项。在减去操作代码之后,剩余长度的指令包括数据项。运行时期引擎从指令中提取数据项。如图所示,测量第一指令800的长度806并提取数据项808。应当指出并非所有指令都包括将要提取的数据项。响应于指令800内的操作代码810,运行时期引擎370使用所提取的数据808来执行一系列的操作。
图9更详细地图示了图8的第一指令800。使用第一指令800作为例子,该指令包括操作代码810和数据808。指令,更具体而言,即数据项段808包括符号标识符,将其用作无线设备代码段内符号的链接。如上文详细解释的,使用符号标识符与代码段地址表326(参见图5)和符号偏移地址表328(参见图7)来定位对应于符号标识符的符号。如图所示,在第一指令800中图示了符号标识符“X_1”。符号偏移地址表328使用“CS_1”标识符和偏移“3”来定位代码段内的相应符号。代码段地址表326提供了代码段一(302)的起始地址。通过这种方式,找到了符号“X”(参见图6)。
在运行时期引擎使用代码段地址表和符号偏移地址表定位了对应于所接收的符号标识符的符号之后,当所定位的符号是数据项时,它提取数据。例如,如果符号“X”是符号库一(310)内的数据项,运行时期引擎提取该数据项。可选择地,“X”符号可以是操作代码,当定位了符号X时,运行时期引擎执行符号“X”。
可以将PMRTI用于更新系统数据或系统数据项。在本发明的一些方面,在文件系统段110的代码段中,例如代码段472中存储系统数据,参见图4。运行时期引擎存取代码段472中的系统数据,并分析该系统数据。运行时期引擎处理动态指令集的操作代码以对数据项执行数学或逻辑运算,如上所述。在操作之后,运行时期引擎处理这些指令以产生更新系统数据。注意到在一些情况中,更新的系统数据可能包括未改变的数据项。响应操作代码段,使用更新系统数据来替换第二代码段472中的系统数据。因此,通过运行时期引擎的指令处理,使用代码段472内的更新数据来控制系统软件的执行。通过这种方式,可以更新系统软件内的特定目标符号,而不用替换整个代码段。通过相同的处理,在代码存储段112的代码段中也可以替换系统数据。例如,可以将系统数据存储在第三代码段344中,运行时期引擎能够响应操作代码使用更新的系统数据来替换第三代码段内的系统数据。
PMRTI也可以用于更新易失性存储器114内的数据项。举例来说,易失性存储器114接收读写数据330,参见图1。读写数据可以来自代码存储段112和/或FSS110内的一个或多个代码段。运行时期引擎存取读写数据,分析读写数据330,产生更新的读写数据,并响应操作代码,使用更新的读写数据来替换易失性存储器114中的读写数据330。然后,使用易失性存储器114中的更新读写数据来控制系统软件的执行。
在本发明一些方面,运行时期引擎监控系统软件的执行。性能监控广义地定义以包括大量的无线设备活动。例如,通过一系列的导致特定故障状态或降低性能状态的操作,能够收集数据,例如信道参数、信道特性、系统堆栈、出错状态或RAM内的数据项纪录。也可以使用动态指令集来分析所收集的性能数据,提供更新数据变量,并捕获数据以研究问题的可能解决方案。还可以使用PMRTI处理来提供临时的修理。
更具体地说,运行时期引擎收集性能数据,并响应操作代码在文件系统段内存储这些性能数据。然后,通过收集评估系统软件的性能数据来控制系统软件的执行。评估可以以动态指令集操作代码执行的分析的形式出现,或者可以在无线设备的外部执行。在本发明的一些方面,运行时期引擎存取从文件系统段收集到的性能数据,并响应操作代码通过无线链路接口发送这些性能数据。从现场中的无线设备收集的性能数据允许制造商本地或全局地彻底分析问题,而不用召回这些设备。
在本发明的一些方面,文件系统段110接收含有新代码段的补丁管理器运行时期指令。例如,图4中所示的新代码段474。可选择地,新代码段可以独立于PMRTI,例如新代码段n(450)。例如,在早先的空中链路通信中可能已经接收到新代码段n(450),或在工厂校准过程中可能已经安装这些新代码段。响应于操作代码,运行时期引擎将新的代码段474(450)添加到代码存储段中。在本发明的一些方面,将新代码段填加到代码存储段112的未使用块中。可选择地,需要压缩操作。然后,使用新代码段474(450)控制系统软件的执行。在本发明的其它方面,PMRTI454包括更新代码段474。可选择地,新代码段450是独立于PMRTI的更新代码段。运行时期引擎响应于操作代码使用更新代码段474(450)来替换代码存储段内的代码段,例如代码段二(304)。使用更新代码段474(450)来控制系统软件的执行。在本发明的一些方面,需要压缩操作以容纳更新代码段。可选择地,将更新代码段填加到代码存储段的未使用或空闲段中。
如上所述,当这些操作包括新的和/或改变的代码段起始地址时,填加新代码段或更新代码段通常需要产生新的代码段地址表。而且,压缩操作也需要新的代码段地址表。如上所述,压缩操作可能是操作压缩器342的结果,或操作PMRTI指令的结果,该指令提供了有关如何执行压缩的细节。当PMRTI包括下载和压缩指令时,PMRTI通常也包括在完成下载和压缩操作之后变为有效的新代码段地址表。
图10a和10b图示了用于在无线通信设备中执行动态指令集的本发明方法的流程图。尽管为了清楚起见描述为一系列编号的步骤,除非特别声明,不应该根据编号(和下述方法中的编号)推断出任何顺序。本方法开始于步骤1000。步骤1001a将系统软件形成为符号库,每个符号库包括具有相关功能的符号。步骤1001b将符号库安排到代码段内。步骤1002执行系统软件。步骤1003接收动态指令集。在步骤1003中接收动态指令集包括通过一个接口接收动态指令集,该接口选自一组接口,其中包括有无线链路、射频(RF)硬连线、可安装的存储器模块、红外以及逻辑端口接口。在本发明的一些方面,在步骤1003中接收动态指令集包括接收文件系统段非易失性存储器内的补丁管理器运行时期指令(PMRTI)。
步骤1004启动运行时期引擎。通常,启动运行时期引擎包括从第一代码段调用运行时期库。可以从易失性或非易失性存储器启动运行时期引擎。步骤1006处理动态指令集。处理动态指令集包括响应数学和逻辑运算来处理指令。在本发明的一些方面,在处理动态指令集之后,步骤1007(未图示)删除动态指令集。步骤1008操作系统数据和系统软件。响应操作系统数据和系统软件,步骤1010控制系统软件的执行。
通常,在步骤1003接收补丁管理器运行时期指令包括接收条件操作代码和数据项。然后,在步骤1006处理动态指令集包括子步骤。步骤1006a1使用运行时期引擎读取补丁管理器运行时期指令操作代码。步骤1006b响应操作代码执行一系列的操作。
在一些方面,在步骤1001b中在代码段内设置符号库包括在代码段的开始地址开始符号库,并设置符号使它们从各自的代码段开始地址偏移。然后,该方法还包括下述步骤。步骤1001c在相应的开始地址存储代码段的开始地址。步骤1001d维护交叉引用代码段标识符与相应起始地址的代码段地址表(CSAT)。步骤1001e维护交叉引用符号标识符和相应的偏移地址以及相应的代码段标识符的符号偏移地址表(SOAT)。
在本发明的一些方面,在步骤1003接收补丁管理器运行时期指令包括接收符号标识符。然后,该方法还包括下述步骤。步骤1006a2使用代码段地址表和符号偏移地址表来定位对应于所接收的符号标识符的符号。在步骤1006b响应操作代码执行一系列的操作包括下述子步骤。步骤1006b1在所定位的符号是数据项时提取该数据。步骤1006b2在所定位的符号是指令时执行这些符号。
在本发明的一些方面,在步骤1006b1处理动态指令集包括其它的子步骤。步骤1006b1a使用运行时期引擎捕获补丁管理器运行时期指令的长度。步骤1006b1b响应操作代码从补丁管理器运行时期指令中提取数据项。步骤1006b1c响应操作代码在执行一系列的操作时使用所提取的数据。
图11图示了示意性的动态指令集操作的流程图。图11中的一些步骤与图10相同,为了简明起见这里不再重复描述。在步骤1106处理动态指令集包括下述子步骤。步骤1106a存取在文件系统段内的第二代码段中存储的系统数据。步骤1106b分析该系统数据,步骤1106c建立更新的系统数据。然后,在步骤1108对系统数据和系统软件的操作包括用更新的系统数据来替换第二段内的系统数据,并且在步骤1010中控制系统软件的执行包括使用更新的系统数据来执行系统软件。
图12图示了另一个示意性的动态指令集操作的流程图。图12中的一些步骤与图10相同,为了简明起见这里不再重复描述。步骤1201c将多个代码段存储在代码存储段非易失性存储器内。在步骤1206处理动态指令集包括下述子步骤。步骤1206a存取在代码存储段(CSS)第三代码段中存储的系统数据。步骤1206b分析该系统数据。步骤1206c产生更新的系统数据。在步骤1208对系统数据和系统软件的操作包括使用更新系统数据来替换第三代码段中的系统数据。步骤1210控制系统软件的执行包括在执行系统软件时使用更新系统数据。
图13图示第三示意性动态指令集操作的流程图。图13中的一些步骤与图10相同,为了简明起见这里不再重复描述。步骤1301c将多个代码段存储在代码存储段非易失性存储器内。步骤1301d将读写数据载入到易失性存储器内。在步骤1306处理动态指令集包括下述子步骤。步骤1306a存取易失性存储器内的读写数据。步骤1306b分析该读写数据。步骤1306c产生更新的读写数据。在步骤1308对系统数据和系统软件的操作包括使用更新的读写数据来替换易失性存储器内的读写数据。控制系统软件的执行包括在执行系统软件中使用更新的读写数据。
图14图示了第四示意性的动态指令集操作的流程图。图14中的一些步骤与图10系统,为了简明起见这里不再重复描述。处理动态指令集包括下述子步骤。步骤1406a,响应操作代码,监控系统软件的执行。步骤1406b收集性能数据。步骤1406c存储性能数据。步骤1406d通过无线链路接口发送存储的数据。在步骤1408对系统数据和系统软件的操作包括使用性能数据来评估系统软件。
图15图示了第五个示意性的动态指令集操作的流程图。图15中的一些步骤与图10相同,为了简明起见这里不再重复描述。步骤1501c将多个代码段存储在代码存储段非易失性存储器内。在步骤1503接收补丁管理器运行时期指令包括接收新的代码段。在步骤1508对系统数据和系统软件的操作包括填加新的代码段到代码存储段中,和在步骤1510中控制系统软件的执行包括使用新的代码段来执行系统软件。
可选择地,在步骤1503中接收新的代码段包括接收更新代码段。然后,在步骤1508对系统数据和系统软件的操作包括用更新代码段来替换代码存储段中的第四代码段。
已经提供了用于在无线通信设备中执行动态指令集的系统和方法,以帮助更新软件和监控软件性能的处理。由于符号库在代码段中的设置,以及用表存取存储器代码段中的开始地址和符号库中符号的偏移地址,所以很容易更新系统。使用动态指令集允许根据设备的专有特性来对每个无线设备执行常规的修改。已经使用一些通用的例子来说明可以用于动态指令集。但是,本发明不仅仅限定于这些实例。本领域的普通技术人员可以对本发明作出其它的变化和实现其它的实施例。
图16图示了无线通信网络的一个实例的高层网络图。该示例性的无线通信网络包括多个无线通信设备10,12和14;多个基站20和22;以及通过网络40连接到无线通信设备10,12和14的PMRTI服务器30。
无线通信设备10可以是任意一类具备与无线通信网络100进行通信的能力的设备。例如,无线通信设备10可以是蜂窝电话、个人数字助理(“PDA”)、膝上电脑、腕式手表或其它配置用于无线通信的设备。无线通信设备在此还可以指“手机”、“移动电话”或“移动设备”。
基站20优选地配置为与多个无线通信设备进行无线通信,并包括将无线通信转换为通过网络40传输的有线通信的收发信机(未图示)。优选地,网络40是一种由无线运营商运行的专用网。网络40优选地提供基站之间例如基站20和22之间越区切换的基础设备。另外,网络40最好提供不同的应用、服务和其它基于计算机的服务器例如PMRTI服务器30之间的通信链路。
网络40也可用作连接到其它网络(未图示)的通道,这些网络例如是综合业务数字网(“ISDN”)、公共交换电话网络(“PSTN”)、公共陆地移动网络(“PLMN”)、分组交换公共数据网(“PSPDN”)以及互联网,仅举出了一些例子而已。
PMRTI服务器30能够被单独的计算机或多个在逻辑上安排的服务器实施,用于向移动设备提供动态指令集和执行从移动设备接收到的动态指令集。
图17A图示了无线通信设备10的一个实例的方框图。无线通信设备10的一般特征允许它具备本领域所熟知的功能,所以在这里没有图示或描述。
无线通信设备10包括运行时期引擎50、远程操作代码(“opcode”)库60、服务器opcode库70、远程运行指令代码段80。运行时期引擎50优选地配置为处理动态指令集。动态指令集的一个实例是PMRTI指令集。动态指令集的另一个实例是RPMRTI指令集。这两个指令集的不同之处在于:PMRTI集包括可以由无线设备执行的那些功能,而RPMRTI指令集包括可以由位于网络40上的PMRTI服务器30执行的那些功能。
处理动态指令集包括执行从PMRTI服务器30接收到的PMRTI集以及编译RPMRTI集和将相应的数据传送到PMRTI服务器30。优选地,当需要时,无线通信设备10能够启动运行时期引擎50,因此它只有在必要时才运行,并消耗设备10上的最少的系统资源(例如,内存和CPU周期等)。
远程opcode库60最好包括全体的操作代码,这些代码表示了每个PMRTI功能或可执行的代码段。有利地,远程opcode库60包括用作位置标志符的操作代码,该位置标志符用于实际的可执行机器代码功能或代码段。因此,远程opcode库60包括对应于无线通信设备10能够执行的每个PMRTI功能的全部可用操作代码列表。
同样,服务器opcode库70最好包括全部的操作代码,这些代码代表每个RPMRTI功能或可执行的代码段。有利地,服务器opcode库70只包括用于实际可执行机器代码功能或代码段的操作代码,这些操作代码并未驻留在无线通信设备10上。因此,服务器opcode库70包括用于无线通信设备10的PMRTI服务器30能够执行的每个可用PMRTI功能的全部操作代码的列表。
在优选实施例中,可用RPMRTI功能的数量可能完全超出可用PMRTI功能的数量,这是因为PMRTI服务器30不受诸如蜂窝电话和PDA的移动设备上通常出现的最小资源影响。
另外,无线通信设备10包括远程运行指令代码段80。该代码段80是存在于设备10的永久存储器内的实际机器代码或可执行指令。这些可执行指令或代码段最好与包含在远程opcode库60中的opcode具有一一对应关系。图17B图示了代码段80的一个实例的方框图。如图所示,任何数量的PMRTI功能可以包括在代码段80中,从指令01直到指令n。最佳地,在代码段80中有大量的功能可用,但是却消耗了设备的极少资源(例如,永久存储器)。
有利地,在制造设备10的过程中和在它被使用之前(即,在出售给用户之前),服务器opcode库70、远程opcode库60以及相应的代码段80能够安装在无线通信设备10的永久存储器内。PMRTI服务器30能够提供对包含在库中的opcode集或代码段80中的可执行指令集的未来更新,该服务器执行的处理将参考图22在以后描述。
最后,在所图示的实施例中,无线通信设备包括无线通信链路90。通信链路90的实现在本领域中是众所周知的,并为无线通信设备提供了在无线通信网络100内通过无线或其它无线连接进行通信的能力。有利地,无线通信链路90能够提供用于PMRTI服务器30的方式以更新远程opcode库60、服务器opcode库70以及远程运行时期指令代码段80。
图18A图示了PMRTI服务器30的一个实例的方框图。可以实现PMRTI服务器的一般目的计算机的特征以后参见图23进行描述。
在示例的实施例中,PMRTI服务器30包括控制模块95、远程opcode库60、服务器opcode库70以及服务器运行时期指令代码段82。远程opcode库60和服务器opcode库70最好包含与在无线通信设备上提供的这些库相同的opcode列表。控制模块95优选地用于处理动态指令集,并且可通过无线通信网络管理PMRTI服务器30和多个无线通信设备之间的PMRTI网络通信。
例如,控制模块95可以编译不同的动态PMRTI集,并发送这些指令集到大量的单独无线通信设备。同样,控制模块95也可以接收多个动态RPMRTI集,并为了发送到无线通信设备而执行这些指令集。
远程opcode库60最好包括对应于每个可用PMRTI功能或可执行代码段的全体操作代码。有利地,远程opcode库60包括操作代码列表,该操作代码用作远程运行时期指令代码段80中(无线通信设备上)实际可执行机器代码功能或代码段的位置标志符。因此,远程opcode库60包含用于全部可用PMRTI功能的全部可用opcode的列表,这些功能可以由无线通信设备来执行。
同样,服务器opcode库70最好包括对应于每个RPMRTI功能或可执行代码段的全体操作代码。有利地,服务器opcode库70只包括PMRTI服务器30能够执行的用于实际可执行机器代码功能或代码段的操作代码。优选地,可用RPMRTI功能的数量完全超出可用PMRTI功能的数量,这是因为PMRTI服务器30不受移动设备如蜂窝电话和PDA上通常存在的最小资源的影响。
另外,PMRTI服务器30包括服务器运行指令代码段82。代码段82是服务器30的永久存储器内保留的实际机器代码或可执行指令。这些可执行指令或代码段最好与服务器opcode库70中包含的操作代码具有一一对应关系,该库70位于服务器30和无线通信设备10上。图18B图示了服务器运行时期指令代码段的一个实例的方框图。
图19图示了在无线通信设备上执行动态指令集处理的一个实例的流程图。开始,在步骤500,无线设备接收一组远程opcode。该组远程opcode可通过无线通信链路接收,例如与无线通信网络的链路。优选地,优化opcode以最小化无线发送的数据量。另外,数据有效载荷可以包括由无线设备接收的该组opcode。
在步骤502,无线设备启动运行时期引擎以处理远程opcode集。如步骤504中所示,运行时期引擎分析远程opcode集,然后在步骤506提取数据有效载荷。如果不存在任何数据有效载荷,那么可跳过该步骤。如果数据有效载荷确实存在,那么结果数据可以存储在易失性存储器可用部分中以便以后使用。接着,如步骤508所示,运行时期引擎获得对应于远程opcode集中的opcode的可执行指令。能够从无线设备的远程运行时期指令代码段获得这些指令。
一旦获得了对应于远程opcode集中的opcode的可执行指令,运行时期引擎就执行指令,如步骤510所示。当执行这些指令时,从存储数据有效载荷的易失性存储器内获得任何必须操作的数据。可选择地或另外地,任何必须操作的数据可以作为执行指令的结果而获得。
例如,数据有效载荷可以包括用于无线设备的更新软件模块。另外,远程操作代码集中的一个opcode可以对应于可执行指令,以通过一部分数据有效载荷来替换一段永久存储器。在该实例中,该被替换的永久存储器的部分是过时的软件模块,手持机,通过指令将更新的软件模块载入到永久存储器内。因此,远程操作代码集和数据有效载荷操作无线设备以更新软件模块。
一旦通过运行时期引擎已经执行了全部指令集,那么可以终止运行时期引擎,如步骤512所示。有利地,可以启动和终止运行时期引擎,以便只在必要时使其运行。这节省了无线设备的系统资源,例如可以节省易失性存储器的空间和CPU周期。
图20图示了在无线通信设备上编译动态指令集的处理实例的流程图。一开始,启动运行时期引擎,如步骤520所示。一旦运行时期引擎在运行,引擎可以编译服务器操作代码集,如步骤522所示。该组服务器操作代码可以从无线设备上运行的后台处理中获得。可选择地,服务器操作代码集可以根据用户的指令从无线设备上运行的处理中获得。
例如,无线设备可以包括一组程序,为了执行系统维护或其它想要的功能由操作系统周期和自动地运行这些程序。作为执行结果,这些程序可能导致由运行时期引擎产生服务器操作代码集。可选择地,用户可以发起一组特定的程序,该组程序只有当用户请求时才执行。该组程序也可以引起运行时期引擎产生服务器操作代码集。在两种情况下,结果是运行时期引擎产生服务器操作代码集,如步骤522所示。
一旦已经产生服务器操作代码集,运行时期引擎在步骤524确定数据有效载荷是否应该伴随服务器操作代码集。如果需要数据和服务器操作代码集附在一起,在步骤526,运行时期引擎从永久或易失性存储器内取出该数据,或执行返回所需数据的指令。一旦获得了数据,运行时期引擎接下来将该数据插入到服务器操作代码集中,如步骤528所示。一种简单的实现方法是将数据有效载荷以单独数据分组的形式填加到服务器操作代码集。
一旦将数据有效载荷与服务器操作代码集合并,或如果不需要任何数据有效载荷,那么运行时期引擎向服务器发送服务器操作代码集(具有或不具有数据有效载荷),如步骤530所示。在发送服务器操作代码集之后,可能终止运行时期引擎以释放无线设备的资源,如步骤532所示。
图21图示了在PMRTI服务器上执行动态指令集的处理实例的流程图。开始,在步骤540,服务器接收服务器操作代码集。该操作代码集优选为表示一系列可执行指令的标记列表,其中每个操作代码表示可单独执行的指令或一组单独的可执行指令。一旦接收了一组服务器opcode,服务器随后在步骤542分析服务器操作代码集,并提取包含有服务器操作代码集的任何数据有效载荷,如步骤544所示。当提取数据有效载荷时,为了以后使用,将该数据有效载荷暂时存储在服务器的易失性存储器内。
接下来,服务器获得相应的指令集,如步骤546所示。优选地,相应的指令集存储在位于PMRTI服务器机器的永久存储器内的服务器运行指令代码段中。一旦已经获得了指令集,服务器随后执行该指令集,如步骤548所示。当执行指令集时,执行程序可以使用伴随服务器操作代码集的数据有效载荷。优选地,为此目的,数据有效载荷存储在服务器的存储器内。可选择地,执行程序可包括产生数据的指令,该数据对于执行指令集的功能来说是必需的。
图22图示用于同步操作代码库的处理实例的流程图。开始,在步骤580,无线设备获得服务器操作代码的列表。这可以通过查询服务器操作代码库很容易地实现。可选择地,可能调用程序或运行一个程序,执行结果是想要的服务器操作代码的列表。从一般意义上来说,同步操作代码库的处理可能由无线设备周期和自动地发起,或者通过用户的输入来发起。
一旦已经获得了服务器操作代码列表,该列表作为数据有效载荷包括在服务器操作代码集中并发送到服务器用于处理,如步骤582所示。服务器执行对应于操作代码的指令并籍此处理数据有效载荷,数据有效载荷为根据无线设备的全部可用的服务器操作代码的列表。为了响应,无线设备接收远程操作代码集和数据有效载荷,如步骤584所示。从服务器接收的数据有效载荷有利地包括任何更新或修改的操作代码以及相应的可执行指令。另外,数据有效载荷也包括任何新的操作代码和相应的可执行指令。
在步骤586中无线设备接着提取该数据有效载荷,并最好将数据有效载荷存储在无线设备的可用存储器内,例如,易失性存储器的空闲段中。一旦已经提取了数据有效载荷,无线设备获得对应于远程操作代码集的可执行指令,如步骤588所示。一旦获得了对应于远程操作代码集的可执行指令集,无线设备然后执行这些指令,如步骤590所示。当执行这些指令时,数据有效载荷中的数据可以从无线设备内的暂时存储位置进行存取。
例如,第一可执行指令可以使无线设备使用数据有效载荷的第一部分来替换永久存储器的第一部分。在替换之后,结果最好是服务器操作代码库中的更新的服务器操作代码。相应地,第二可执行指令可以使无线设备使用数据有效载荷的第二部分来替换永久存储器的第二部分。在替换之后,结果最好是服务器运行指令代码段中的更新的可执行指令。这有利地允许无线设备周期性查询PMRTI服务器以更新它的功能组。
手机创建服务器操作代码集和相应的数据有效载荷,并将它们发送到PMRTI服务器30用于处理的能力的其它应用包括:提供位置更新(例如,GPS信息)、在网络中保存语音备忘录和向网络或其它用户发送文件。从一般意义上来说,发送文件到网络或其它用户包含了特别宽范围的期望应用,如为朋友或家庭成员发送定制铃声、发送图片或无线设备捕获的数字影像、发送电子邮件、文本或在网络上存储任何其它想要的数据,并将其发送给另一个用户。
图23图示了与这里所述的不同实施例有关的可能使用的示意性计算机系统500的方框图。例如,计算机系统550可以应用为位于无线通信网络内的PMRTI服务器。计算机系统550也可以应用为任何不同的其它一般或特定用途的计算机系统,该系统包括无线通信网络和它的构成部件。但是,也可以使用其它的计算机系统和计算机结构,这对于本领域的普通技术人员来说是显而易见的。
计算机系统550最好包括一个或多个处理器,如处理器552。也可以提供其它的处理器,如用于管理输入和输出的辅助处理器、执行浮点数学运算的辅助处理器、具有适合快速执行信号处理算法结构的专用微处理器(例如,数字信号处理器)、归属于主处理系统的从处理器(例如,后端处理器)、用于双或多处理器系统的其它微处理器或控制器或协处理器。这些辅助处理器可以是独立的处理器或与处理器552集成到一起。
处理器552最好连接到通信总线554。通信总线554可以包括用于计算机系统550的存储器和其它外设部件之间方便信息传送的数据通道。通信总线554还可以提供一组与处理器552进行通信的信号,这组信号包括数据总线、地址总线、控制总线(未图示)。通信总线554可以包括任何标准或非标准总线结构,例如,与工业标准结构(“ISA”),扩展工业标准结构(“EISA”)、微通道结构(“MCA”)、外设部件互联(“PCI”)本地总线或电气和电子工程师协会(“IEEE”)公布的标准,其中包括IEEE488通用接口总线(“GPIB”)和IEEE696/S-100等相兼容的总线结构。
计算机系统550最好包括一个主存储器556,也可以包括一个次级存储器558。主存储器556提供用于处理器552执行程序的指令和数据的存储。主存储器556通常是半导体存储器,例如动态随机存取存储器(“DRAM”)和/或静态随机存取存储器(“SRAM”)。其它半导体存储器类型包括,例如,同步动态随机存取存储器(“SDRAM”)、内存总线动态随机存取存储器(“RDRAM”)、铁电随机存取存储器(“FRAM”),等等,其中包括只读存储器(“ROM”)。
次级存储器558可选择地包括硬盘驱动器560和/或可移动存储驱动器562,例如软盘驱动器、磁盘驱动器、光盘(“CD”)驱动器、数字化视频光盘(“DVD”)驱动器,等等。可移动存储驱动器562以一种熟知的方式从可移动存储介质564读取或写入数据。可移动存储介质564例如可以为软盘、磁盘、CD、DVD等等。
可移动存储介质564最好是其上存储有计算机可执行代码(即软件)和/或数据的计算机可读介质。可移动存储介质564上存储的计算机软件或数据作为电通信信号578读入计算机系统550中。
在替代的实施例中,次级存储器558可以包括其它类似的装置,用于允许计算机程序或其它数据或指令载入到计算机系统550中。这些装置例如可以包括外部存储介质572和接口570。外部存储介质572的实例可包括外部硬盘驱动器、外部光盘驱动器或外部磁光驱动器。
次级存储器558的其它实例可包括半导体存储器,例如可编程只读存储器(“PROM”)、可擦写可编程只读存储器(“EPROM”)、电擦写只读存储器(“EEPROM”)或闪存(类似于EEPROM的面向块的存储器)。而且,还包括任何可移动存储单元572和接口570,这允许软件和数据从移动存储单元572传送到计算机系统550。
计算机系统550也可包括通信接口574。该通信接口574允许计算机系统550和外部设备(例如,打印机)、网络或信息源之间传送软件和数据。例如,计算机软件或可执行代码可通过通信接口574从网络服务器传送到计算机系统550。通信接口574的实例包括调制解调器、网络接口卡(“NIC”)、通信端口、PCMCIA槽和卡红外接口以及IEEE1394火线,仅举了一些例子。
通信接口574最好使用工业公布协议标准,例如以太网IEEE802标准、光纤通道、数字用户线(“DSL”)、不对称数字用户线(“ADSL”)、帧中继、异步传输模式(“ATM”)、综合数字业务网(“ISDN”)、个人通信业务(“PCS”)、传输控制协议/网际协议(“TCP/IP”)、串行线路网际协议/点对点协议(“SLIP/PPP”)、等等,但是也可以应用定制或非标准的接口协议。
通过通信接口574传送的软件和数据一般是电通信信号578的形式。这些信号578最好通过通信通道576提供给通信接口574。通信通道576载送信号578,并且能够使用不同的通信装置实现,例如有线或电缆、光纤、现有的电话线、蜂窝电路链路、射频(RF)链路或红外链路,仅举了一些例子。
计算机可执行代码(即计算机程序或软件)存储在主存储器556和/或次级存储器558中。计算机程序可以通过通信接口574接收并存储在主存储器556和/或次级存储器558中。这些计算机程序,当被执行时,如上所述,使计算机系统550能够执行本发明的不同功能。
在本说明书中,术语“计算机可读介质”是指为计算机系统550提供计算机可执行代码(例如,软件和计算机程序)的任何介质。介质的实例包括主存储器556、次级存储器558(包括硬盘驱动器560、移动存储介质564和外部存储介质572)以及与通信接口574通信连接的任何外设(包括网络信息服务器或其它网络设备)。这些计算机可读介质是用于为计算机系统550提供可执行代码、编程指令和软件的装置。
在使用软件实现的一个实施例中,软件可存储在计算机可读介质中,并通过移动存储驱动器562、接口570或通信接口574载入计算机系统550。在该实施例中,软件以电通信信号578的形式载入到计算机系统550。当软件被处理器552执行时,其最好使处理器552实现上述的创造性特征和功能。
各种实施例可以在硬件中基本实现,这些硬件使用例如专用集成电路(“ASIC”)或现场可编程门阵列(“FPGA”)的部件。实现能够执行这里所述功能的硬件状态机对于相关领域的普通技术人员来说是显而易见的。使用硬件和软件的组合也可以实现各种的实施例。
尽管这里示出和详细描述的特定系统和方法完全能够实现本发明的上述目的,但是应该理解,这里所提供的说明书和附图代表本发明示例性的优选实施例,因此,代表了本发明广泛预期的主题。并且还应当理解,本发明的范围完全包含其它的实施例,这些实施例对于本领域的普通技术人员是显而易见的,因此,本发明的范围仅由权利要求书来限定。

Claims (16)

1.一种无线通信设备,包括:
服务操作代码库;
远程操作代码库;
一组可执行指令,每个可执行指令对应于远程操作代码库中的一个操作代码;
运行时期引擎,用于编译一组服务器操作代码,并向服务器计算机发送该组服务器操作代码,服务器计算机通过无线通信网络与无线通信设备进行通信连接,运行时期引擎进一步配置为用于接收一组远程操作代码并执行一组可执行指令,每个可执行指令对应于所接收的远程操作代码组中的一个操作代码。
2.根据权利要求1所述的无线通信设备,其中被编译的该组服务器操作代码还包括数据有效载荷。
3.根据权利要求1所述的无线通信设备,其中运行时期引擎用于在预定时间自动编译和发送该组服务器操作代码。
4.根据权利要求1所述的无线通信设备,其中运行时期引擎用于响应无线通信设备用户的输入,编译和发送该组服务器操作代码。
5.如权利要求1所述的无线通信设备,还包括微处理器、永久存储器区域、易失性存储区域以及无线通信装置,该无线通信设备用于发送操作指令给服务器计算机,该服务器计算机通过无线通信网络与无线通信设备进行通信连接,该无线通信设备还包括一个执行区域,该区域用于编译服务器操作代码库的一组服务器操作代码,并通过所述无线通信装置向服务器计算机发送该组服务器操作代码。
6.根据权利要求5所述的设备,其中编译的该组服务器操作代码还包括数据有效载荷。
7.根据权利要求5所述的设备,其中运行时期引擎用于在预定的时间自动编译并发送该组服务器操作代码。
8.根据权利要求5所述的设备,其中运行时期引擎用于响应无线通信设备的用户的输入,编译并发送该组服务器操作代码。
9.一种用于在无线通信设备和服务器计算机之间发送可操作指令的双向系统,其中无线通信设备和服务器计算机通过无线通信网络进行通信连接,所述系统包括:
无线通信设备,包括运行时期引擎、服务器操作代码库、远程操作代码库和第一组可执行指令,所述第一组中的每个可执行指令对应于远程操作代码库中的操作代码;和
服务器计算机,包括控制模块、服务器操作代码库、远程操作代码库和第二组可执行指令,所述第二组中的每个可执行指令对应于服务器操作代码库中的操作代码;
其中运行时期引擎用于编译一组服务器操作代码,并向服务器计算机发送该组服务器操作代码,其中服务器计算机用于接收该组服务器操作代码和执行一组指令,每个指令对应于该组服务器操作代码中的操作代码。
10.根据权利要求9所述的系统,其中编译的该组服务器操作代码还包括数据有效载荷。
11.根据权利要求9所述的系统,其中运行时期引擎用于在预定的时间自动编译并发送该组服务器操作代码。
12.根据权利要求9所述的系统,其中运行时期引擎用于响应无线通信设备的用户的输入,编译并发送该组服务器操作代码。
13.一种用于在无线通信设备和服务器计算机之间发送可操作指令的方法,其中无线通信设备和服务器计算机可通过无线通信网络进行通信连接,该方法包括:
编译一组来自服务器操作代码库的服务器操作代码;
将数据有效载荷附加到该组服务器操作代码,其中数据有效载荷对应于该组服务器操作代码;以及
将该组服务器操作代码和数据有效载荷发送到服务器计算机以用于在计算机上执行。
14.根据权利要求13所述的方法,其中附加数据有效载荷的步骤还包括以下步骤:
确定该组操作代码中的每个操作代码是否需要相应的数据;
取出用于每个操作代码的所需的相应数据;以及
将用于每个操作代码的相应数据编译到数据有效载荷中。
15.根据权利要求13所述的方法,其中编译步骤还包括以下步骤:
从操作代码库中取出操作代码,以及
在保存该组服务器操作代码的暂时存储位置存储该操作代码。
16.根据权利要求13的所述的方法,其中数据有效载荷包括诊断信息。
CNB028148398A 2001-07-26 2002-07-25 用于双向通信和执行动态指令集的系统和方法 Expired - Fee Related CN100378661C (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US09/916,460 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,900 2001-07-26
US09/917,026 2001-07-26
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/916,460 US7159214B2 (en) 2001-07-26 2001-07-26 System and method for compacting field upgradeable wireless communication device software code sections
US09/927,131 US7143407B2 (en) 2001-07-26 2001-08-10 System and method for executing wireless communications device dynamic instruction sets
US09/927,131 2001-08-10
US09/969,305 2001-10-02
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

Publications (2)

Publication Number Publication Date
CN1535423A CN1535423A (zh) 2004-10-06
CN100378661C true CN100378661C (zh) 2008-04-02

Family

ID=27542295

Family Applications (10)

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

Family Applications Before (7)

Application Number Title Priority Date Filing Date
CNB028148339A Expired - Fee Related CN1275150C (zh) 2001-07-26 2002-07-22 在无线通信设备中现场升级系统软件的设备及方法
CNB028148312A Expired - Fee Related CN1275149C (zh) 2001-07-26 2002-07-22 用于管理无线通信设备系统软件现场下载的系统和方法
CNB028148320A Expired - Fee Related CN1288553C (zh) 2001-07-26 2002-07-22 用于在无线通信设备上执行更新指令的方法
CNB028148355A Expired - Fee Related CN1235138C (zh) 2001-07-26 2002-07-23 用于现场下载无线通信设备软件代码段的系统及方法
CNB02814838XA Expired - Fee Related CN1288554C (zh) 2001-07-26 2002-07-23 在无线通信设备中更新持久数据的系统和方法
CNB028148371A Expired - Fee Related CN1279447C (zh) 2001-07-26 2002-07-23 用于现场诊断无线通信设备系统软件的系统和方法
CNB028148347A Expired - Fee Related CN1235137C (zh) 2001-07-26 2002-07-23 用于压缩可现场升级的无线通信设备软件代码段的系统及方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CNB028148401A Expired - Fee Related CN1310488C (zh) 2001-07-26 2002-07-25 用于对等手机通信的系统及方法
CNB02814841XA Expired - Fee Related CN1250035C (zh) 2001-07-26 2002-07-25 用于提高手机重建程序和重新编程的安全性的系统及方法

Country Status (9)

Country Link
EP (12) EP1410191A2 (zh)
JP (11) JP2004537120A (zh)
KR (10) KR100911604B1 (zh)
CN (10) CN1275150C (zh)
AT (9) ATE387658T1 (zh)
AU (9) AU2002319569A1 (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 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
WO2004109510A2 (en) * 2003-06-04 2004-12-16 Bitfone Corporation Network having customizable generators of software 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 주식회사 팬택앤큐리텔 소프트웨어 이미지 생성 방법
JP4528328B2 (ja) * 2004-05-18 2010-08-18 キョウセラ ワイヤレス コープ. 無線通信機器用のモジュラデータコンポーネント
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
US8422667B2 (en) 2005-01-27 2013-04-16 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
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
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
WO2006110991A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates
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 中兴通讯股份有限公司 一种通信系统软件版本的平滑升级方法
KR100963550B1 (ko) * 2006-03-10 2010-06-15 후지쯔 가부시끼가이샤 적용 패치 선별 장치 및 적용 패치 선별 방법
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency 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
US9477585B2 (en) * 2012-11-09 2016-10-25 Coherent Logix, Incorporated Real time analysis and control for a multiprocessor system
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
BR112020022518A2 (pt) * 2018-05-04 2021-02-09 Herdx, Inc. sistema de rastreamento, autenticação e realimentação de fornecimento de alimentos
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株式会社 情報処理装置、プログラム更新システム、及びプログラム更新方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0459344A1 (fr) * 1990-05-30 1991-12-04 Alcatel Cit Dispositif de téléchargement de logiciel pour un terminal de télécommunication
US6247065B1 (en) * 1996-12-26 2001-06-12 At&T Corp. Messaging platform process

Family Cites Families (31)

* 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
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
WO1998009208A2 (en) * 1996-08-28 1998-03-05 Wind River Systems, Inc. A tool for software diagnosis divided across multiple processors
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0459344A1 (fr) * 1990-05-30 1991-12-04 Alcatel Cit Dispositif de téléchargement de logiciel pour un terminal de télécommunication
US6247065B1 (en) * 1996-12-26 2001-06-12 At&T Corp. Messaging platform process

Also Published As

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

Similar Documents

Publication Publication Date Title
CN100378661C (zh) 用于双向通信和执行动态指令集的系统和方法
JP4728359B2 (ja) ハンドセットの再プロビジョニングおよび再プログラミングにおけるセキュリティを改善するシステムおよび方法
US7386846B2 (en) System and method for the management of wireless communications device system software downloads in the field
US7359699B2 (en) System and method for peer-to-peer handset communication
US20030033525A1 (en) System and method for improved security in handset reprovisioning and reprogramming
US20060223517A1 (en) Field downloading of wireless device software
US7117494B2 (en) System and method for bi-directional communication and execution of dynamic instruction sets
EP1665849B1 (en) System, method and wireless communication device for over the air area code update
US9554268B2 (en) System and method for updating persistent data in a wireless communications device
KR20090066175A (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
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: 20080402

Termination date: 20160725

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