用于管理无线通信设备系统软件现场下载的系统和方法

文档序号:6425194阅读:172来源:国知局
专利名称:用于管理无线通信设备系统软件现场下载的系统和方法
技术领域
本申请要求2001年8月10日提交的、名称为″用于执行无线通信设备动态指令集的系统和方法″的序列号为09/927,131的美国专利申请的优先权,并与2001年7月26日提交的、名称为″用于现场下载无线通信设备软件代码段的系统和方法″的序列号为09/916,900的美国专利申请,以及2001年7月26日提交的名称为″用于压缩现场可升级无线通信设备软件代码段的系统和方法″的序列号为09/9169,460的美国专利申请相关。它们都被结合于本文中,以供参考。
本发明一般涉及无线通信设备,尤其涉及利用动态指令集管理多种系统软件现场下载的管理功能(例如恢复状态监测、备份、压缩和升级排序)的系统和方法。
背景技术
对已经使用的电话的软件不进行更新是罕见的。一旦电话被制造并销售给公众,更新可能涉及在软件中被发现的问题。一些更新可能涉及电话的新特性的使用,或服务供给者提供的服务。其他的更新可能涉及地区问题,或与特定载波信号相关的问题。例如,在特定的区域,载波信号的网络分布可能影响手机的空中链路接口状态,导致手机产生不期望的行为,例如不正确的频道搜索,不正确的呼叫结束,不正确的音频等。
传统的更新方法是把通信设备(此处是指无线设备,电话,电话耳机或手机)送回最近的电信零售/服务市场(outlet),或制造商来处理这种改变。这种更新所涉及的成本是昂贵的,并超过底线。进一步,消费者不方便并可能被激怒。在实践中的方案通常是给消费者新的电话。
无线设备在多种环境中使用,为大量的不同消费者提供不同的用户服务,因此,即使无线设备的软件能够被升级以改善服务,为所有使用者提供统一改进的升级也是不可能的。
如果无线通信设备软件可以便宜地升级,并且不造成消费者的不便,那么就是有利的。
如果无线通信设备软件能被升级,并且消费者在相当长的时间里仍能使用他们的电话,那么就是有利的。
如果无线通信设备软件能被更新,技术服务时间最少,或不需要将设备送到服务机构,那么就是有利的。
如果能在代码段区分无线设备系统软件,那么在更新系统软件时,只需替换系统软件的代码段,这将是有利的。如果这些代码段能通过空中链路接口与无线设备通信,那么将是有利的。
如果无线设备能被用于现场更新系统软件的动态加载指令集组操作,将是有利的。
如果动态指令集通过监测升级状态、备份关键代码段、完成存储器压缩、及排序更新存储区过程以保护无线装置避免更新错误,那么将是有利的。

发明内容
无线通信设备的软件更新材料可向用户提供最适合的产品和用户体验。回收手机而更新软件在商业上是昂贵的。手机制成后,这些更新对于向用户提供增值服务或解决电话使用中发现的问题可能是必须的。本发明使得通过空中链路接口现场升级手机在实践中成为可能。尤其是本发明可使无线通信设备执行动态指令集。这些动态指令集可使无线设备“智能化地”或有条件地更新系统软件或系统数据。另外,动态指令集允许无线设备确定是否更新过程已经成功地完成。动态指令集允许关键代码段被存储,以防止升级的代码段是不可操作的。动态指令集也执行存储器压缩和存储区排序。
因而,提供了一种在无线通信装置中管理系统软件下载操作的方法。该方法包括执行系统软件、启动运行-时期引擎、处理动态指令集和根据对动态指令集的处理,利用所选择的管理功能管理通过空中链路接口接收的系统软件更新材料的下载。可选择的管理功能包括恢复状态监测、备份、压缩和升级排序。
下面将提供上述恢复状态监测管理功能、备份管理功能、压缩管理功能和升级排序管理功能,以及用于管理无线通信设备中系统软件下载操作的系统的详细说明。
附图简要说明

图1是整个无线设备软件维护系统的示意方框图。
图2是软件维护系统的示意方框图,突出表明通过空中链路接口对指令集的安装。
图3是本发明的用于在无线通信设备中执行动态指令集的系统的示意方框图。
图4是无线设备存储器的示意方框图。
图5是图3所示的代码段地址表。
图6是图3所示的符号库的符号的详细描述。
图7是图3所示的符号偏移地址表。
图8a和图8b是对由运行时期引擎所存取的操作码(op-code)的说明。
图9是包括图1-8b所示特征的表明本发明的在无线通信设备中管理系统软件下载操作的系统的示意方框图。
图10是图9所示的动态指令集中的动态指令集恢复状态监测管理器的示意方框图。
图11是图9所示的恢复状态表的一个示例的表示。
图12是图9所示的动态指令集中的动态指令备份管理器的示意方框图。
图13是图9所示的动态指令集中的动态指令压缩管理器的示意方框图。
图14是图9所示的动态指令集中的动态指令升级排序管理器的示意方框图。
图15a和15b是本发明的用于执行无线通信设备中的动态指令集的方法的流程图。
图16是动态指令集操作的一个示例的流程图。
图17是动态指令集操作的另一示例的流程图。
图18是动态指令集操作的第三示例的流程图。
图19是动态指令集操作的第四示例的流程图。
图20是动态指令集操作的第五示例的操作流程图。
图21是本发明的用于管理无线通信设备中的系统软件下载操作的方法的流程图。
图22是图21的其它细节的流程图,着重说明了本发明的恢复状态监测功能。
图23是图21的其它细节的流程图,着重说明了本发明的备份功能。
图24是图21的其它细节的流程图,着重说明了本发明的压缩功能。
图25是图21的其它细节的流程图,着重说明了本发明的升级排序功能。
优选实施例的详细描述下面详细描述中的一些部分将用程序、步骤、逻辑块、代码、过程和其他表示在无线设备微处理器或存储器中进行数据位操作的符号表达术语来说明。
这些描述和表达是数据处理领域的技术人员所使用的、与该领域的其他技术人员进行最高效的工作交流的工具。在这里,程序、微处理器执行步骤、应用程序、逻辑块,过程等等一般是所构思的前后一致的、通向期望结果的指令或步骤序列。步骤是那些物理量的所需要的物理操作。虽然不是必须的,通常这些量采用电或磁信号的形式,能被存储、传输、组合、比较以及能在基于无线设备微处理器中被进行其他的操作。主要是由于普遍使用的缘故,把这些信号作为比特、值、单元(element)、符号、字符、项(term)、数等来说明有时被证明是方便的。在物理设备(例如存储器)被提及时,他们是通过总线或其他电连接与其他物理设备相连接的。这些物理设备可被认为是与逻辑处理器或应用程序互相作用的,因此,是″连接″到逻辑运算。例如,存储器能存储或访问代码,进而,连接运算或应用程序能从存储器调用代码段用于执行。
然而应该意识到,这些以及相似的术语是与合适的物理量联系在一起的,仅仅是这些物理量的便利的标签。除非特别指出,应该意识到,在以下对整个发明的讨论中,使用术语例如″处理″、″连接″、″转换″、″显示″、″提示″、″决定″、″显示″、″认可″等进行的讨论涉及无线设备微处理器系统中的动作和处理,即把计算机系统的寄存器和存储器内的代表物理(电子的)量的数据处理和转换为其他代表在无线设备存储器或寄存器或其他的信息存储、传送或显示设备内的物理量的数据。
图1是整个无线设备软件维护系统100的示意方框图。在对软件维护系统100进行总的说明之后,将在下面详细说明本发明的系统软件组织。系统100描述了传送系统软件更新材料和指令集组(程序)以及在无线设备内安装被传送的软件的过程。手机制造商开发了系统软件更新材料和补丁管理器运行时期指令(PMRTI),其作为指令集组或动态指令集,更为公知。系统软件被分进符号库。符号库被排列到代码段。在符号库被更新时,软件更新材料102作为一个或多个代码段被传送。软件更新材料被广播到无线通信设备104所代表的现场无线设备,或使用公知传统的空中链路(air)以及数据或消息传送协议,从基站106在个别通信中传输。由于能很容易地调整无线通信设备以处理任何可用的空中(over-the-air)传送协议从而接收系统软件和PMRTI更新材料,因而本发明不限于任何特定的传送格式。
系统软件可被看作是不同子系统的集合。代码对象能紧紧地结合进这些抽象子系统中一个,结果集合被标注为符号库。这样逻辑分解了源代码(code base),软件补丁和修正软件能与这些符号库的一个相关。在最通常的情况下,单一的更新材料与一个,至多二个符号库相关。其余代码数据库、符号库保持不变。
符号库的概念提供了处理代码和常数的机制。另一方面,读写(RW)数据安装到唯一的单独的RW库中,该库包含了用于所有库的基于RAM的数据。
一旦被无线设备104接收,所传送的代码段必须被处理。该无线设备重写非易失性存储器108的特定代码段。非易失性存储器108包括文件系统段(FSS)110和代码存储段112。通常在被传送前,代码段被压缩,以使对FSS110的占用最小。通常更新代码段带有它自己的RW数据,RW数据是另一种符号库,包含用于每个符号库的所有RW数据。虽然在系统软件运行时,RW数据装载在随机存取可读写易失性存储器114中,但它经常需要存储在非易失性存储器108中,因而每次无线设备复位时,它能被装入随机存取可读写易失性存储器114中。这包括RW数据第一次装入到随机存取可读写易失性存储器。正如下面更详细解释的那样,RW数据通常排列在补丁管理器代码段中。
系统100包括虚拟表的概念。利用这种表,在一个代码段内的符号库能被修补(更换),而不会破坏(替换)系统软件的其他的部分(其他的代码段)。为提高效率,虚拟表在随机存取可读写易失性存储器114中执行。代码段地址表和符号偏移地址表都是虚拟表。
更新代码段被无线设备104接收,并存储在FSS110中。通常无线设备用户接口(UI)将通知使用者新软件可用,使用者对UI提示作出响应,确认该通知,发出进行修补或更新操作的信号。可选地,更新操作是自动完成的。在更新过程中,无线设备可能不能进行标准的通信作业。补丁管理器代码段包括非易失性可读写驱动器符号库,该非易失性可读写驱动器符号库也被装入随机存取可读写易失性存储器114。该非易失性读写驱动器符号库可使代码段被更新的代码段重写。补丁管理器代码段包括读-写数据,代码段地址表和符号偏移地址表,以及符号访问器代码和符号访问器代码地址(在下面讨论)。在引进更新的代码段时,这些数据中的一部分是无效的;更新的补丁管理器代码段包括对更新的代码段有效的读写数据、代码段地址表和符号偏移地址表。一旦更新的代码段被装入代码存储段112,无线设备复位。在复位操作之后,无线设备能执行更新的系统软件。也应该理解,补丁管理器代码段可能包括其他上面未讨论过的符号库。这些其他符号库不需要装入可读写易失性存储器114。
图2是软件维护系统100的示意方框图,突出显示了经空中链路接口对指令集的安装。除了更新系统软件代码段,维护系统100能下载和安装在本文被称为补丁管理器运行时期指令集(PMRTI)的动态指令集、程序、或补丁管理器指令集(PMIS)。PMRTI代码段200以与上述系统软件代码段同样的方式被传送到无线设备104。PMRTI代码段最初存储在FSS110中。PMRTI代码段通常是二进制文件,可作为编译的指令显示在手机上。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代码段与任何虚拟表或读-写数据有关,更新的补丁管理器代码段与PMRTI同时将被传送,以在代码存储段112内安装PMRTI。可选地,PMRTI能从FSS110中被保持和处理。在手机104已执行了PMRTI内的全部指令之后,可以从FSS 110中删除PMRTI段。可选地,保留PMRTI以便将来的操作。例如,每次无线设备开机时,可以执行PMRTI。
PMRTI是很强大的运行时期指令引擎。通过PMRTI环境,手机能执行任何传来的指令。这种机制可被用于支持RF标准。更一般的,作为用户控诉的结果。当厂商或服务供给者意识到软件问题时,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)中的符号库NN(316)。每个库包含具有相关功能的符号。例如,符号库一(310)可能涉及到无线设备液晶显示器(LCD)的操作。那么,该库中的符号可能与显示功能有关。正如下面详细说明的那样,其他符号库被排列在补丁管理器代码段308。
图4是无线设备存储器的示意方框图。如图所示,存储器是图1所示的代码存储段112。存储器是可写的非易失性存储器,如闪存(Flashmemory)。应该理解,代码段不必象FSS 110那样存储在同一存储器中。而应该理解,在本发明的系统软件结构中,代码段可以存储在的多个相配合的存储器中。代码存储段112包括第二组的连续地址的存储器块,其中每个存储器块存储有来自第二组的代码段的相应代码段。因而,代码段一(302)存储在第一存储器块400中,代码段二(304)存储在第二存储器块402中,代码段n(306)存储在第n存储器块404中,以及补丁管理器代码段(308)在第p存储器块406中存储。
对比图3和4,每个代码段的开始相应地存储在存储器的开始地址处,符号库被排列以在代码段的起始处起始。也就是说,每个符号库在第一地址起始并从第一地址起依次占据(run through)一定范围的地址。例如,代码段一(302)在代码存储段存储器112的第一起始地址408(标号为″S″)开始。在图3中,符号库一(310)在第一代码段的起始地址318处起始。同样地,代码段二(304)开始在第二开始地址410(图4),符号库二开始在代码段二的开始320(图3)。代码段n(306)开始在代码存储段存储器112(图4)的第三开始地址412,符号库NN(316)开始在代码段n(322)的开始处(图3)。补丁管理器代码起始在代码存储段存储器112的第P开始地址414,补丁管理器代码段308的第一符号库从补丁管理器代码段的开始处324开始。因而,符号库一(310)最后存储在第一存储器块400中。如果代码段包括多个符号库,例如代码段二(304),那么多个符号库存储在相应的存储器块中,存储器块402就是这种情况。
在图3中,系统300进一步包含代码段地址表326,作为一种类型的符号包括在补丁管理器代码段308中排列的符号库中。代码段地址表用存储器中的代码起始地址来交叉引用(cross-reference)相应的代码段识别符。
图5是图3中326所示的代码段地址表。查询代码段地址表326以查找符号库的代码段起始地址。例如,在要求执行符号库一中的符号时,系统300寻找代码段一。为查找代码段一的开始地址,并因而定位符号库一中的符号,代码段地址表326被查询(consult)。符号库在代码段中的排列以及利用表对代码段的跟踪,允许代码段被移动或扩充。在安装被升级的代码段(带有被升级的符号库)时可能需要扩充或移动操作。
回到图3,应该注意到,并不是每个符号库都必需在代码段的开始处开始。如图所示,排列在代码段二(304)中符号库三(314)就不是排列在代码段的开始地址320处。因而,如果要执行符号库三(314)中的符号,系统300查询代码段地址表326以查找代码段二(304)的开始地址。正如以下所解释的,符号偏移地址表允许定位符号库三(314)中符号。这些符号跨越多个库是没有问题的,不过这些库要保持在同一代码段中。
如上所述,每个符号库包括与一定功能相关的符号。符号是用于查找和定位例行程序(routing body)、变量或数据结构的程序员定义的名字。因而,符号可以是地址或值。符号可以是内部的或外部的。内部符号在其所处的代码段范围之外是看图未示的。更具体地,他们不能被在其他的代码段中其他的符号库查找(seek)。外部符号被跨代码段地使用和调用,并可被在不同代码段中的库查找(seek)。符号偏移地址表通常包括全部外部符号的列表。
例如,符号库一(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,虽然被划分的存储器块的大小正好可容纳存储于其内的相应的代码段,但应该注意到,符号库不必装满他们所排列的代码段。可选地,第二组的代码段中的每一个都具有用来容纳符号库的用字节表示的空间(size),每一个地址连续的存储器块都带有容纳相应代码段的以字节表示的空间。例如,代码段一(302)可能是100字节的段,以容纳长度为100字节的符号库。为与代码段一的字节大小相匹配,第一存储器块将是100字节。然而,装入代码段1的符号库可能比100字节小。如图3所示,由于符号库一(310)小于100字节,代码段一(302)带有未使用的段340。因而,第二组的代码段中的每一个都可能比排列符号库所需的大小要大。利用″超大的″代码段,可以容纳更大的更新的符号库。
地址连续存储器块是指将物理存储器空间分区成的大小可变的逻辑块。当代码段被存储在存储器中时,代码段和存储器块基本上是可互换的术语。代码段的概念被用于识别可能比符号库更大的一段代码,或用于在当移动并处理代码段时,识别代码段中的符号库集合。
如图3所示,系统300包括在本文也被称为补丁库336的补丁符号库,用以在代码存储段中将当前代码段和新代码段排列在一起。新代码段和当前代码段在代码存储段中的排列可形成更新的可执行系统软件。补丁管理器336不仅可将新代码段和当前代码段排列在一起,而且可用更新的代码段代替代码段。
回到图4,存储器108的文件系统段110接收新代码段,如新代码段450和更新的补丁管理器代码段452。文件系统段还接收初次补丁管理器运行时期指令(PMRTI)454,其包含将当前代码段和新代码段排列在一起的指令。如图1所示,空中链路接口150可接收新的或更新的代码段及初次PMRTI。尽管图中的空中链路接口150是天线,但是应该理解空中链路接口也包括RF收发机、基带电路及解调电路(未示出)。文件系统段110可存储通过空中链路接口150接收的代码段。从可读写易失性存储器114中执行的补丁库336可用新的或更新的代码段450代替代码存储段中的第一代码段,例如代码段n(306),以响应PMRTI 454。通常用更新的补丁管理器代码段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中。
就目前建立的本发明的结构、下载和压缩方面而言,下面的讨论将集中在无线通信设备动态指令集执行系统300。如上面所详细讨论的,系统300包括可执行的被分成代码段的系统软件和系统数据。此外,系统300包括用于操作系统数据和系统软件并控制系统软件的执行的动态指令集。如图4所示,动态指令集470被组织进第一PMRTI 454。如图3所示,系统还包括用于处理动态指令集的运行时期引擎,被表示为运行时期库370。与如上所述的压缩器库342和补丁库336一样,运行时期库370通常位于补丁管理器代码段308中。然而,可选择地,运行时期库370可位于另一个代码段中,例如第一代码段304中。
动态指令集是单一或含有条件操作代码的多重指令集组,并且通常包括数据项。运行时期引擎可读取操作代码并决定需要进行何种操作。操作代码可以是条件代码、数学代码、程序代码或逻辑代码。运行时期引擎或运行时期库370处理动态指令集以执行诸如数学操作或逻辑操作等操作。即运行时期引擎可根据操作代码读取动态指令集470并进行一系列操作。
尽管动态指令集不限于任何特定的语言,但由于无线设备存储器空间有限并且执行速度很重要,所以操作代码通常是机器代码的形式。由于操作代码分析数据项并根据分析结果做出决定,因而它被认为是条件代码。运行时期引擎也可决定在数据被分析之前对其进行操作。
例如操作代码可指定将从无线设备存储器来的数据项与预定值做比较。如果数据项小于预定值,那么不用处理它,如果数据项大于预定值,那么就用预定值代替它。可选地,在进行上述的比较操作前,操作代码可使从无线设备存储器来的数据项增加第二预定值。
如上所述,非易失性存储器文件系统段110可通过接口如空中链路150接收动态指令集。如图1所示,接口也可以是射频(RF)硬线160。这样,在没有系统软件正在工作的情况下,如在工厂校准环境中,PMRTI可被FSS 110接收。PMRTI也可通过逻辑端口接口162或可安装的存储器模块164来接收。存储器模块164可安装在无线设备104中,可在初始校准时安装,或现场安装,或在工厂校准时安装。尽管没有特别说明,但PMRTI可通过红外接口或蓝牙接口来接收。
图8a和8b是对被运行时期引擎370所访问的指令的说明。在图8a中所示的是第一指令800、第二指令802和第j指令804,然而动态指令集不限于任何特定数量的指令。在每条指令中的操作代码是固定的。运行时期引擎370可获得指令的长度,即字节或位的数量,来检测指令是否包括数据项。减去操作代码后,剩余指令长度包括数据项。运行时期引擎可从指令中提取数据项。如图所示,第一指令800的长度806被测量并提取了808。应注意并不是所有的指令都必须包括将被提取的数据项。在依据指令800中的操作代码810执行的一系列操作时,运行时期引擎370使用提取的数据808。
图8b是图8a中的第一指令800的更详细说明。以第一指令800为例,指令包括操作代码810和数据808。指令,更具体地是指数据项段808,包括符号标识符,其用于连接无线设备代码段中的符号。如上所详细说明的,符号标识符和代码段地址表326(参见图5)和符号偏移地址表328(参见图7)一起使用以定位与符号标识符相应的符号。如图所示,在第一指令800中示出了符号标识符“X_1”。符号偏移地址表328可利用标识符“CS_1”和偏移量“3”在代码段中定位相应符号。代码段地址表326可给出代码段一(302)的起始地址。以这种方式可找到符号“X”(参见图6)。
在运行时期引擎在使用代码段地址表和符号偏移地址表定位了与所接收的符号标识符相应的符号之后,在被定位的符号是数据项时它提取数据。例如,如果符号库一(310)中的符号“X”是数据项时,运行时期引擎就可提取它。可选择地,符号“X”可以是操作代码,并且当其被定位时运行时期引擎可执行符号“X”。
PMRTI也可被用于更新系统数据或数据项。在本发明的某些方面中,参见图4,系统数据存储在文件系统段110的代码段中,例如在代码段472中。运行时期引擎可访问来自于代码段472的系统数据并分析该系统数据。如上所述,运行时期引擎可处理动态指令集中的操作代码以对数据项执行数学或逻辑操作。此操作后,运行时期引擎可处理指令以产生更新的系统数据。应注意到在某些情况下更新的系统数据可包括未改变的数据项。根据操作代码,在第二代码段472中的系统数据被更新的系统数据代替。这样,通过运行时期引擎对指令的处理,使用代码段472中的已更新的系统数据控制系统软件的执行。以这种方式,系统软件中的特定目标符号可被更新,而不用替换全部的代码段。通过相同的处理,可以替换代码存储段112的代码段中的系统数据。例如如果系统数据存储在第三代码段344中,运行时期引擎可根据操作代码用更新的系统数据替换第三代码段中的系统数据。
PMRTI也可被用于更新易失性存储器114中的数据项。例如参见图1,易失性存储器114接收读写数据330。读写数据可从代码存储段112和/或FSS 110中的一个或多个代码段得来。运行时期引擎可访问读写数据、分析读写数据330、产生更新的读写数据并用已更新的读写数据代替易失性存储器114中的读写数据330以响应操作代码。然后使用易失性存储器114中的已更新的读写数据来控制系统软件的执行。
在本发明的某些方面中,运行时期引擎可监测系统软件的执行。性能监测被广义地定义,以包括最大数量的无线设备活动。例如,通过一系列操作可导致特定失效条件或性能下降的诸如信道参数、信道特性、系统栈、出错条件等数据或RAM中数据项记录可被收集。也可使用动态指令集分析收集到的性能数据、提供已更新的数据变量并再次捕获数据来研究针对问题的可能解决方案。也可使用PMRTI处理提供临时性的修正。
更具体地,运行时期引擎可以根据操作代码收集性能数据并将性能数据存储在文件系统段中。然后,通过收集用于评估系统软件性能的数据控制执行系统软件。评估可以作为分析的一种形式被动态指令集操作代码进行,它也能在无线设备外部进行。在本发明的某些方面中,运行时期引擎可访问从文件系统段收集的性能数据并通过空中链路接口传输性能数据以响应操作代码。从无线设备现场收集性能数据允许制造商全面地分析问题(在本地或全球任何地方),而不用将设备回收。
在本发明的某些方面中,文件系统段110可接收包括新代码段的管理器运行时期指令。例如图4中所示的新代码段474。可选择地,新代码段可以是与PMRTI无关的,如新代码段n(450)。例如,新代码段n(450)可在早期的空中链路通信中被接收或在工厂校准期间被安装。运行时期引擎可将代码段474(450)加到代码存储段中以响应操作代码。在本发明的某些方面中,新代码段代码被加到存储段112中的未用块中。可选择地,压缩操作是需要的。然后,使用新代码段474(450)控制执行系统软件。在本发明的其它方面中,PMRTI 454包括更新的代码段474。可选择地,新代码段450是与PMRTI无关的更新的代码段。运行时期引擎可用更新的代码段474(450)代替代码存储段中的代码段,例如代码段二(304),以响应操作代码。使用更新的代码段474(450)控制执行系统软件。在本发明的某些方面中,需要压缩操作以容纳更新的代码段。可选择地,已更新的代码段被加到代码存储段的未用段或空白段中。
如上所述,因为这些操作通常包括新的和/或变化的代码段起始地址,新代码段的加入或代码段的更新通常需要产生新代码段地址表。此外,压缩操作也需要新代码段地址表。如上所述,压缩操作也可以是操作的压缩器342结果,或者是可提供怎样压缩的细节的PMRTI指令的结果。当PMRTI包括下载和压缩指令时,PMRTI通常也包括在下载和压缩操作完成后有效的新的代码段地址表。
图9是包括图1-8b所示的特征的示意方框图,用来说明本发明的管理在无线通信设备中的系统软件下载操作的系统。系统900包含一个空中链路接口902(与图1所示的空中链路接口150等同)和被分为代码段并储存在非易失性存储器永久存储区904(与图1所示的存储器108等同)的可执行的系统软件和系统数据。非易失性永久存储区904包括一个文件系统段906和代码存储段908。
用于对系统软件更新材料下载进行管理的动态指令集910被空中链路接口902接收。动态指令集910与新代码段912都是补丁管理器运行时期指令914的一部分。通常,动态指令集910被储存在文件系统段906中。运行时期引擎或运行时期库916处理动态指令集910。如前文所述,运行时期库916通常是补丁管理器代码段918的一部分。根据对动态指令集910的处理,可执行的系统软件和系统数据(永久存储区904的代码段)被更新。动态指令集910包含被选择的功能管理器,可选择的功能管理器有恢复状态监测功能管理器、备份功能管理器、压缩功能管理器和更新排序功能管理器。
系统900进一步包含用来以新代码段标识符的更新状态交叉引用新代码段标识符的恢复状态表920。在文件系统段906中恢复状态表920被显示为一个独立的代码段。在本发明的一些方面中,当系统900启动时,本发明的恢复状态表920被装入易失性存储器922。在易失性存储器922中,状态表920被更新,并且在系统被关闭时,重新存储在永久存储区904中。
图10是图9所示的动态指令集中的动态指令集恢复状态监测管理器1000的示意方框图。在无线通信设备重新启动之后,动态指令集恢复状态监测管理器(以后被称为恢复状态监测管理器1000)读取恢复状态表920(见虚箭头″1″所示),来确定新代码段是否已经被储存在永久存储区中。
图11是图9所示的恢复状态表920的一个示例的表示。恢复状态表920显示出标识为CS-1和CS-2的代码段已经被成功地从文件系统段906移到代码存储段908。然而,该表显示出标识为CS_n的代码段是否已经被成功地储存是未知的。例如,在储存操作被完成之前,用户可能已经把无线设备关掉,或无线设备电池能源耗尽。
回到图10,如果新代码段没有被存储,恢复状态监测管理器1000在永久存储区存储新代码段,并且在新代码段被存储时更新恢复状态表。例如,恢复状态监测管理器1000在代码存储段908中存储CS_n(1002)(见虚箭头″2″所示),然后更新恢复状态表,以便CS_n状态被改变为″载入″(未显示)。应注意,在代码段从文件系统段906移动到代码存储段908中时,通常要使用上文说明的补丁管理器功能。
在本发明的一些方面中,恢复状态监测管理器1000进一步确定与储存每个新代码段相关的风险性,并且如果储存新代码段的风险性是高的,则采取安全预防措施。例如恢复状态监测管理器1000执行安全预防措施,诸如,检查电池组是否有足够的电能来完成新代码存储的过程,提醒用户代码的存储操作的高风险,用提示来确认用户启动的断电,以及防止用户启动的断电。回到图11,风险性因子作为一列列在恢复状态表中。
一些代码段的存储涉及用更新的代码段替换系统软件中关键代码段。例如,文件系统段906可能接收新代码段,诸如根代码段,补丁管理器代码段,代码段地址表,符号偏移地址表,读-写数据和符号访问器代码地址(未示出)。这些代码段的任何一段存储不完全,都可能导致无线设备在启动时彻底不工作。也就是说,无线设备就不得不被送到服务中心重新编程。因此恢复状态监测管理器1000确定在文件系统段中存储这些新代码段的每一段的风险性,从而采取相应的安全预防措施。
文件系统段有能够接收包括新的补丁管理器代码段(例如CS_n(1002))的补丁管理器运行时期指令。如前所述,补丁管理器代码段包括用于将文件系统段906的代码段移动到永久存储区(通常是代码存储段908)的补丁库。在本发明的一些方面,恢复状态监测管理器1000维护在文件系统段906中的备用补丁库1004。恢复状态监测管理器1000读取恢复状态表920以确定重新启动无线通信设备后是否新补丁管理器代码段已被成功地存储在代码存储段。如果新补丁管理器代码段1002没有被成功地存储在代码存储段,备用补丁库1004就被用来将新补丁管理器代码段1002从文件系统段906中移动到代码存储段908。然后,新补丁管理器代码段1002能够被用于系统软件操作。如果没有备用补丁库1004,无线设备不能从新补丁管理器代码段的不完全的存储中恢复。
图12是图9所示的以动态指令集中的动态指令集备份管理器1200为特征的系统900的示意方框图。动态指令集备份管理器在下文被称为备份管理器1200。如该名称所暗示的,备份管理器提供一个系统,用于用系统软件恢复已被不可操作的代码段替换的代码段或系统数据。例如文件系统段906接收更新的第一代码段1202替换代码存储段908中的第一代码段1204。备份管理器1200通常使用补丁管理器代码段1206的库将第一代码段1204从代码存储段908移动到文件系统段906(如虚线“1”所示)。利用补丁管理器代码段1206的库,更新的代码段1202被从文件系统段906移到代码存储段908(如虚线“2”所示)。备份管理器1200确定代码存储段908中的更新的第一代码段1202能否在预定约束内与系统软件工作。如果更新的第一代码段1202被确定不能在预定约束内与系统软件工作,备份管理器1200用在文件系统段906中的第一代码段1204替换在代码存储段908中更新的第一代码段1202。
在本发明的一些方面中,文件系统段906接收带有预定约束的测试代码段1208。通过执行带有更新代码段的测试代码段,备份管理器1200确定代码存储段908中的更新的第一代码段1202能否在预定约束内与系统软件工作。备份管理器记录运行测试代码段1208的结果,并将记录的结果与预定约束做比较。在本发明的其它方面,文件系统段906接收带有测试代码库更新的代码段1202。然后,备份管理器1200运行更新的代码段中的测试代码库,就是说独立的测试代码段不必作为补丁管理器运行时期指令的一部分。
文件系统段906能从各种来源接收测试代码段,例如空中链路接口(图9所示的902)、用户可操作的键盘接口(图未示)、测试接口、测试端口接口如逻辑端口、串行端口或是射频端口、甚至存储器模块。
图13是图9所示的以动态指令集中的动态指令压缩管理器1300为特征的系统900的示意方框图。如上述说明的,压缩管理器负责操纵代码储存段中的代码段以与新代码段相适应,或容纳比被代替的代码段大的更新的代码段。例如,文件系统段906接收更新的第一代码段1302,其代码段尺寸已更新,去替换具有比更新的第一代码段尺寸小的第一尺寸的第一代码段1304。压缩管理器1300访问在补丁管理器代码段1308中的压缩库1306,并调整代码存储段908中代码段大小以容纳更新的第一代码段1302。
就象恢复状态监测管理器一样,压缩管理器1300确定在代码储存段中压缩代码段的风险性,如果压缩代码段的风险性是高的,就采取安全预防措施。例如,由于无线设备不能从不正确的或没完成的压缩操作中恢复,因而压缩补丁管理器代码段或系统软件的其他关键部分是有风险的。压缩管理器1300执行安全预防(措施),例如检查电池组是否有充足的能量来完成新代码存储的过程,警告用户代码存储操作的高风险性,用提示确认用户进行的断电,和防止用户进行的断电。
图14是图9所示的以动态指令集中动态指令更新排序管理器1400为特征的系统900的示意方框图。当多个新的或更新的代码区要被储存时,更新排序管理器1400决定储存的次序。例如文件系统906收到带有多个新代码段的更新排序动态指令集或更新排序管理器1400,诸如新的第一代码段1402,新的第二代码段1404和新的第三代码段1406。更新排序管理器1400将新的代码段1402-1406从文件系统储存906按排序管理器1400指定的顺序移动到代码储存段908。
如图14所示,新的第二代码段1404被首先移动(如虚线″1″所示),第一新代码段1402随后被移动(如虚线″2″所示),第三新代码段1406再被移动(如虚线″3″所示)。移动和存储操作是在补丁管理器代码段1408的帮助下完成的。在本发明的一些方面中,排序管理器1400确定储存每个新代码段1402-1406的风险性,并在低风险储存段移动之后,移动高风险代码段。在上面的例子中,更新排序管理器1400已确定储存新的第三代码段1406风险性最高。
图15A和15b是本发明的用于在无线通信设备中执行动态指令集的方法流程图。虽然为清楚起见,用连续编号的步骤进行描述,但除非明确指出,不应从这些编号(下面示出的本方法的编号)中得出先后顺序。该方法在步骤1500开始。步骤1501a将系统软件设置成符号库,每个符号库包含具有相关功能的符号。步骤1501b将符号库排列到代码段。步骤1502执行系统软件。步骤1503启动运行-时期引擎。通常,所启动的运行-时期引擎包括调用来自第一代码段的运行-时期库。运行-时期引擎能从易失性或非易失性存储器中启动。在步骤1503之后的步骤1504中,接收动态指令集。在步骤1504中接收动态指令集包括通过从一个组中所选的接口接受动态指令集,该组包括空中链路、射频(RF)硬线(hardline)、可安装存储器模块、红外的以及逻辑端口界面。在本发明的一些方面,在步骤1504中接收动态指令集包括接收非易失性存储器的文件系统段内的补丁管理器运行时期指示(PMRTI)。
步骤1506处理动态指令集。处理动态指令集包括根据数学和逻辑运算处理指令。在本发明的某些方面中,在处理动态指令集之后,步骤1507(图未示)删除动态指令集。步骤1508操作系统数据和系统软件。步骤1510根据对系统软件和系统数据的操作,控制系统软件执行。
在步骤1504中接收补丁管理器运行时期指令通常包括接收条件操作代码和数据项。然后,在步骤1506中处理动态指令集包括子步骤。步骤1506a1使用运行时期引擎读取补丁管理器运行时期指令操作代码。步骤1506b根据操作代码进行一系列操作。
在某些方面,在步骤1501b中将符号库排列为代码段的操作包括在代码段的开始处开始符号库并从各自的代码段起始地址排列需偏移的符号。本发明还包括如下步骤。步骤1501c在相应的起始地址存储起始代码段。步骤1501d维护代码段地址表(CSAT),代码段地址表用相应的起始地址交叉引用代码段标识符。步骤1501e维护符号偏移地址表(SOAT),该符号偏移地址表用相应的偏移地址和相应的代码段标识符交叉引用符号标识符。
在本发明的某些方面中,在步骤1504中接收补丁管理器运行时期指令包括接收符号标识符。本方法还包括如下步骤。步骤1506a2通过使用代码段地址表和偏移地址表定位与接收的符号标识符相应的符号。根据操作代码在步骤1506b中进行的一系列操作包括一些子步骤。当定位的符号是数据项时,步骤1506b1提取数据。当定位的符号是指令时,步骤1506b2执行符号。
在本发明的某些方面中,在步骤1506b1中处理动态指令集包括其它子步骤。步骤1506b1a利用运行-时期引擎获取管理器运行时期指令长度。步骤1506b1b根据操作代码从管理器运行时期指令中提取数据项。步骤1506b1c根据操作代码使用提取的数据进行一系列操作。
图16是动态指令集的一个例子的操作流程图。图16中的几个步骤和图15中的相同,为了简洁起见这里不再重复。在步骤1606中处理动态指令集包括一些子步骤。步骤1606a访问存储在文件系统段中第二代码段中的系统数据。步骤1606b分析此系统数据。步骤1606c创建更新的系统数据。在步骤1608中操作系统数据和系统软件包括用更新的系统数据代替第二代码段中的系统数据,在步骤1610中控制执行系统软件包括在系统软件的执行中使用更新的系统数据。
图17是动态指令集另一示例的操作流程图。图17中的几个步骤和图15中的相同,为了简洁这里就不再重复。步骤1701c在非易失性存储器的代码存储段存储多个代码段。在步骤1706中处理动态指令集包括一些子步骤。步骤1706a访问存储在代码存储段(CSS)中第三代码段中的系统数据。步骤1706b分析此系统数据。步骤1706c创建更新的系统数据。在步骤1708中操作系统数据和系统软件包括用更新的系统数据代替第三代码段中的系统数据。在步骤1710中对系统软件执行的控制包括在系统软件的执行中使用更新的系统数据。
图18是动态指令集第三示例的操作流程图。图18中的几个步骤和图15中的相同,为了简洁这里不再重复。步骤1801c在非易失性存储器的代码存储段存储多个代码段。步骤1801d将读写数据加载入易失性存储器。在步骤1806中处理动态指令集包括子步骤。步骤1806a访问易失性储存器中的读写数据。步骤1806b分析此读写数据。步骤1806c创建更新的读写数据。在步骤1808中操作系统数据和系统软件包括用更新的读写数据代替易失性存储器中的读写数据。在步骤1810中控制系统软件执行包括在系统软件的执行中使用更新的读写数据。
图19是动态指令集操作的第四示例的流程图。图19中的几个步骤和图15中的相同,为了简洁这里就不再重复。处理动态指令集包括子步骤。步骤1906a监测系统软件的执行以响应操作代码。步骤1906b收集性能数据。步骤1906c存储此性能数据。步骤1906d通过空中链路接口传输存储的数据。在步骤1908中操作系统数据和系统软件包括在系统软件的评估中使用此性能数据。步骤1910控制系统软件的执行。
图20是动态指令集操作的第五示例的流程图。图20中的几个步骤和图15中的相同,为了简洁这里就不再重复。步骤2001c在非易失性存储器的代码存储段存储多个代码段。在步骤2003中接收补丁管理器运行时期指令包括接收新代码段。在步骤2008中操作系统数据和系统软件包括将新代码段加入到代码存储段中,在步骤2010中对执行系统软件的控制包括在系统软件的执行中使用新代码段。
可选择地,在步骤2003中接收新代码段包括接收更新的代码段。在步骤2008中操作系统数据和系统软件包括用更新的代码段代替代码存储段中的第四代码段。
图21是本发明的用于管理无线通信设备中的系统软件下载操作的方法的流程图。该方法从步骤2100开始。在步骤2102中将系统软件设置为符号库,每个符号库包含具有相关功能的符号。在步骤2104中将符号库排列为储存在非易失性存储器的代码存储段中的代码段。在步骤2106中执行系统软件。在步骤2108中启动运行-时期引擎。步骤2110接收在文件系统段非易失性存储器中的补丁运行时期指令(PMRTIS),补丁管理器运行时期指令包括动态指令集和新代码段。在步骤2112中对动态指令集进行处理。在步骤2114中依据对动态指令集的操作,管理通过空中链路接口接收的系统软件更新材料的下载。步骤2116执行更新的系统软件。
在步骤2114中对通过空中链路接口接收的系统软件更新材料的下载的管理包括处理动态指令集管理功能。动态指令集管理功能包括恢复状态监测功能、备份功能、压缩功能和更新排序功能。
图22是图21所示的附加细节的流程图,着重说明了本发明的恢复状态监测功能。在步骤2112中处理恢复状态监测动态指令集包括一些子步骤。在步骤2200中,维护用新代码段的更新状态交叉引用新代码段标识符的恢复状态表。在重新启动无线通信设备后,在步骤2202中读取恢复状态表,确定新代码段是否已被存储在永久存储区中。如果新代码段没有被存储,在步骤2204中在永久存储区中存储新代码段。当新代码段已经被存储时,在步骤2206中更新恢复状态表。
在本发明的一些方面包括一些附加步骤。步骤2202a确定存储的每一新代码段的风险性。如果存储的新代码段风险性高,步骤2202b采取安全预防措施。在步骤2102b中的安全预防措施包括所选择的安全预防措施,可选择的安全预防措施有检查电池组是否有充足的能量来完成新代码存储过程,警告用户代码存储操作的高风险性,用提示确认用户启动的断电,和防止用户启动断电。
在步骤2202a中确定存储每一新代码段的风险性,包括确定从启动代码段、补丁管理器代码段、代码段地址表、符号偏移地址表、读写数据和符号访问器代码地址中所选的新代码段的风险性。
在本发明的一些方面中,将系统软件设置成符号库(图21所示的步骤2102)包括形成带有补丁库的补丁管理器代码段以将在文件系统段中的代码段移动到永久存储区。在文件系统段非易失性存储器中接收补丁管理器运行时期指令(图21所示的步骤2110)包括接收新补丁管理器代码段。随后,操作恢复状态监测动态指令集包括进一步的子步骤。步骤2202c在文件系统段维护备用补丁库。在重新启动无线通信设备后,在步骤2202中读取恢复状态表,以确定新补丁管理器代码段是否已被成功地存储在代码存储段中。如果新补丁管理器代码段没有被成功存储在代码存储段,步骤2202d利用备用补丁库将新补丁管理器代码段从文件系统段移动到代码存储段。
图23是图21所示的附加细节的流程图,着重说明了本发明的备份功能。接收新代码段(图21所示的步骤2110)包括接收更新的第一代码段以替换代码存储段中第一代码段。然后,在步骤2112中对备份管理器动态指令集的处理包括一些子步骤。步骤2300将第一代码段从代码存储段移动到文件系统段。步骤2302确定代码存储段中的更新的第一代码段是否可在预定约束内与系统软件操作。如果更新的第一代码段被确定为不能在预定约束内与系统软件操作,在步骤2304中用来自文件系统段的第一代码段替换代码存储段中的更新的第一代码段。
在本发明的一些方面中,接收新的代码段(图21所示的步骤2110)包括接收带有预定约束的测试代码段。然后,在步骤2302对代码存储段中的更新的第一代码段能否在预定约束内与系统软件操作的确定包括有一些子步骤。步骤2302a执行带有更新的代码段的测试代码段。步骤2302b记录执行测试代码段的结果。在步骤2302c中用预定约束比较所记录的结果。
在本发明的一些方面中,接收新代码段(图21所示的步骤2110)包括接收带有测试代码库的更新代码段。然后,在步骤2302中确定代码存储段中更新的第一代码段能否能在预定约束内与系统软件工作,包括执行更新的代码段中测试代码库。接收新代码段(图21所示的步骤2110)包括接收带有预定约束的测试代码段,可通过从包括空中链路接口、用户可操作的键盘接口以及测试接口的组中选择的接口来接收。
图24是图21所示的附加细节的流程图,着重说明了本发明的压缩功能。接收新代码段(图21所示的步骤2110)包括接收更新的第一代码段,带有更新的代码段尺寸,替换比更新的第一代码段尺寸小的第一代码段。在步骤2112中对压缩管理动态指令集的处理包括一些子步骤。步骤2400访问补丁管理器代码段中的压缩库。在步骤2402中调整代码存储段中的代码段的大小以容纳更新的第一代码段。
在本发明的一些方面中,本发明包括进一步的步骤在步骤2400a中确定在代码储存段中压缩代码段的风险性。如果压缩代码段的风险性是高的,在步骤2400b中采用安全预防措施。在步骤2400b中采用执行安全预防措施包括采取从如下一组措施中选择的安全预防措施,即检查电池组是否有充足的能量来完成新的代码存储过程,警告用户代码存储操作的高风险,用提示确认用户启动的断电,和防止用户开始断电。
图25是图21所示的附加步骤的流程图,着重说明了本发明的更新排序功能。接收动态指令集(图21所示步骤2110)包括接收更新排序指令,接收新的代码段包括接收多个新代码段。步骤2112对更新排序管理动态指令集的操作包括将新的代码段从文件系统存储区按照排序指令指定的顺序移动到代码存储段。
在本发明的一些方面中,在步骤2112中操作处理更新排序动态指令集包括子步骤。步骤2500确定存储每一新代码段的风险性。在步骤2502中,将高风险代码段排序在低风险储存段被移动之后移动。
已经提供了用于在无线通信设备中执行动态指令集的系统和方法,从而有助于管理软件更新材料的下载。因为代码段中符号库的排列,并用表访问存储器中代码段的起始地址和符号库中符号偏移地址,所以系统容易被更新。动态指令集的使用允许根据设备的具体特征对其进行定制修改。举出了几个常用实施例用以阐明动态指令集的可能应用。然而,本发明不仅限于这些实施例。本领域所属技术人员可以想到本发明的其它变化和实施方案。
权利要求
1.一种在无线通信设备中管理系统软件下载操作的方法,所述方法包括执行系统软件;启动运行-时期引擎;处理动态指令集;以及,根据对动态指令集处理,管理通过空中链路接口接收的系统软件更新材料的下载。
2.根据权利要求1所述的方法,进一步包括执行更新后的系统软件。
3.根据权利要求1所述的方法,进一步包括将系统软件形成为符号库,每个符号库包含具有相关功能的符号;将符号库排列到储存在非易失性存储器的代码存储段中的代码段;以及,在文件系统段非易失性存储器中,接收补丁运行时期指令(PMRTI),所述补丁管理器运行时期指令包括动态指令集和新的代码段。
4.根据权利要求3所述的方法,其特征在于,所述管理通过空中链路接口接收的系统软件更新材料的下载包括处理从包含有恢复状态监测、备份、压缩和更新排序的组中选出的动态指令集管理功能。
5.根据权利要求4所述的方法,其特征在于,处理恢复状态监测动态指令集包括维护用新代码段更新状态交叉引用新代码段标识符的恢复状态表;在重新启动无线通信装置后,读取恢复状态表以确定新的代码段是否已被存储在永久存储区中;如果新的代码段没有被存储,则在永久存储区中存储新的代码段;以及,当新的代码段已经被存储时,更新所述恢复状态表。
6.根据权利要求5所述的方法,其特征在于,处理恢复状态监测动态指令集进一步包括确定存储每一新代码段的风险性;以及,如果存储新代码段风险性高,则采取安全预防措施。
7.根据权利要求6所述的方法,其特征在于,所述采取安全预防措施包括采取从以下一组措施中选择的安全预防措施检查电池组是否有充足的能量来完成新代码存储过程、警告用户代码存储操作的高风险、用提示确认用户启动的断电以及防止用户启动的断电。
8.根据权利要求7所述的方法,其特征在于,确定每一新代码段存储的风险性包括确定从下列一组中所选择的新代码段相关的风险性根代码段、补丁管理器代码段、代码段地址表、符号偏移地址表、读写数据和符号访问器代码地址。
9.根据权利要求8所述的方法,其中,将系统软件设置成符号库包括形成带有补丁库的补丁管理器代码段,以将在文件系统段中的代码段移动到永久存储区;其中,在文件系统段非易失性存储器中接收补丁管理器运行时期指令包括接收新补丁管理器代码段;其中,处理恢复状态监测动态指令集进一步包括在所述文件系统段维持一个备用的补丁库;在重新启动无线通信装置后,读取恢复状态表,以确定新补丁管理器代码段是否已被成功地存储在代码存储段中;如果新补丁管理器代码段没有被成功地存储在代码存储段,利用备用的补丁库将新补丁管理器从文件系统段移到代码存储段。
10.根据权利要求4所述的方法,其中,接收新代码段包括接收更新的第一代码段以替换在代码存储段中第一代码段;其中,处理备份管理动态指令集包括将所述第一代码段从所述代码存储段移动到所述文件系统段;确定代码存储段中的更新的第一代码段在预定约束内是否可与系统软件操作;以及如果更新的第一代码段被确定为不能在预定约束内与系统软件工作,则用来自文件系统段的第一代码段替换代码存储段中的更新的第一代码段。
11.根据权利要求10所述的方法,其中,接收新的代码段包括接收带有预定约束的测试代码段;其中,确定在代码存储段中更新的第一代码段是否在预定约束内与系统软件一起操作,包括执行带有更新的代码段的测试代码段;记录执行测试代码段的结果;将所记录的结果与预定约束比较。
12.根据权利要求11所述的方法,其中,接收新的代码段包括接收带有测试代码库的更新代码段;其中,所述确定代码存储段中的更新的第一代码段是否在预定约束内与系统软件一起操作的步骤包括执行更新的代码段中测试代码库。
13.根据权利要求11所述的方法,其特征在于,接收新代码段包括用包括空中链路接口、用户可操作的键盘接口和测试端口接口的组中选择的源中接收带有预定约束的测试代码段。
14.根据权利要求4所述的方法,其特征在于,接收新代码段包括接收更新的第一代码段,其带有更新的代码段大小,去替换比更新的第一代码段尺寸小的第一代码段;其中,处理压缩管理动态指令集包括访问补丁管理器代码段中的压缩库;以及调整代码存储段中的代码段的大小,以容纳更新的第一代码段。
15.根据权利要求14所述的方法,其特征在于,处理压缩管理动态指令集进一步包括确定在代码储存段中压缩代码段的风险性;以及如果压缩代码段的风险性是高的,采取安全预防措施。
16.根据权利要求15所述的方法,其特征在于,采取的安全预防措施包括从以下一组措施中选择的安全预防措施检查电池组是否有充足的能量来完成新代码存储过程、警告用户代码存储操作的高风险、用提示确认用户启动的断电,以及防止用户启动的断电。
17.根据权利要求4所述的方法,其中,接收动态指令集包括接收更新排序指令;以及其中接收新代码段包括接收多个新代码段;以及,其中,处理更新排序管理动态指令集包括按照排序指令指定的顺序将新代码段从文件系统存储区移动到代码存储段。
18.根据权利要求17所述的方法,其特征在于,处理更新排序动态指令集进一步包括确定存储每一新代码段的风险性;在移动低风险存储段之后移动高风险代码段。
19.在无线通信设备中,一种用于管理系统软件下载操作的方法,所述方法包括执行系统软件;启动运行-时期引擎;处理动态指令集;以及,根据对动态指令集的处理,用从包括恢复状态监测、备份、压缩和更新排序的组中选择的管理功能管理通过空中链路接口接收的系统软件更新材料的下载。
20.在无线通信设备中,一种用于管理系统软件下载操作的系统,所述系统包括空中链路接口;被分为非易失性存储器永久存储区中的代码段的可执行的系统软件和系统数据;用于管理通过空中链路接口接收的系统软件更新材料的下载的动态指令集;以及,用来处理动态指令集的运行-时期引擎。
21.根据权利要求20所述的系统,其特征在于,根据对动态指令集的处理,可执行的系统软件和系统数据被更新。
22.根据权利要求20所述的系统,其特征在于,可执行的系统软件被设置成符号库,每个符号库包含具有相关功能的符号,符号库被排列进存储在代码存储段中的代码段;以及该系统进一步包括非易失性存储器的文件系统段,其接收包括动态指令集和新代码段的补丁管理器运行时期指令(PMRTI)。
23.根据权利要求22所述的系统,其特征在于,动态指令集包括从包括恢复状态监测、备份、压缩和更新排序的组中选出的功能管理器。
24.根据权利要求23所述的系统,进一步包括恢复状态表,用新代码段更新状态交叉引用新代码段标识符;和,其中在重新启动无线通信装置后,动态指令集恢复状态监测管理器读取恢复状态表以确定新代码段是否已被存储在永久存储区中,其中如果新的代码段没有被存储,则在永久存储区中存储新的代码段;以及,当新的代码段已经被存储时,更新所述恢复状态表。
25.根据权利要求24所述的系统,其特征在于,动态指令集恢复状态监测管理器进一步确定存储每一新代码段的风险性,如果存储新代码段风险性高,则采取安全预防措施。
26.根据权利要求25所述的系统,其特征在于,动态指令集恢复状态监测管理器采取从以下一组措施中选择的安全预防措施检查电池组是否有充足的能量来完成新代码存储过程、警告用户代码存储操作的高风险、用提示确认用户启动的断电以及防止用户启动的断电。
27.根据权利要求26所述的系统,其特征在于,文件系统段接收从根代码段、补丁管理器代码段、代码段地址表、符号偏移地址表、读写数据和符号访问器代码地址中所选择的新代码段;其特征在于,动态指令集恢复状态监测管理器确定在文件系统段中存储每一新代码段存储的风险性。
28.根据权利要求27所述的系统,其中,可执行的系统软件包括带有补丁库的补丁管理器代码段,用于将文件系统段中的代码段移动到永久存储区;其中,文件系统段接收包括新补丁管理器代码段的补丁管理器运行时期指令;其中,动态指令集恢复状态监测管理器在文件系统段维持备用的补丁库,在重新启动无线通信装置后,读取恢复状态表,以确定新补丁管理器代码段是否已被成功地存储在代码存储段中,如果新补丁管理器代码段没有被成功地存储在代码存储段,利用备用的补丁库将新补丁管理器代码段从文件系统段移动到代码存储段。
29.根据权利要求23所述的系统,其中,文件系统段接收更新的第一代码段以替换代码存储段中的第一代码段;和,其中,动态指令集备份管理器将第一代码段从代码存储段移动到文件系统段;确定代码存储段中的更新的第一代码段在预定约束内是否与系统软件一起操作,如果更新的第一代码段被确定为在预定约束内未与系统软件一起操作,则用来自文件系统段的第一代码段替换代码存储段中的更新的第一代码段。
30.根据权利要求29所述的系统,其中,文件系统段接收带有预定约束的测试代码段;以及,其中动态指令集备份管理器通过执行带有更新的代码段的测试代码段;记录执行测试代码段的结果;比较所记录的结果与预定约束,来确定在代码存储段中更新的第一代码段在预定约束内是否与系统软件一起操作。
31.根据权利要求30所述的系统,其中,所述文件系统段带有测试代码库的更新的代码段;以及,其中动态指令集备份管理器执行更新的代码段中的测试代码库。
32.根据权利要求30所述的系统,其特征在于,所述文件系统段从以下一组来源中选择的来源接收测试代码段空中链路接口、用户可操作的键盘接口和测试端口接口。
33.根据权利要求23所述的系统,其中,所述文件系统段接收更新的第一代码段,其带有更新的代码段大小,去替换比更新的第一代码段尺寸小的第一代码段;其中,动态指令集压缩管理器访问补丁管理器代码段中的压缩库;以及调整代码存储段中的代码段的大小,以容纳更新的第一代码段。
34.根据权利要求33所述的系统,其特征在于,动态指令集压缩管理器确定在代码储存段中压缩代码段的风险性,并且如果压缩代码段的风险性是高的,采取安全预防措施。
35.根据权利要求34所述的系统,其特征在于,动态指令集压缩管理器执行从以下一组措施中选择的安全预防措施检查电池组是否有充足的能量来完成新代码存储过程、警告用户代码存储操作的高风险、用提示确认用户启动的断电,以及防止用户启动的断电。
36.根据权利要求23所述的系统,其中,所述文件系统段接收带有更新排序动态指令集的多个代码段;以及,其中动态指令集更新排序管理器按照排序指令指定的顺序将新代码段从文件系统存储区中移动到代码存储段。
37.根据权利要求36所述的系统,其特征在于,动态指令集更新排序管理器确定存储每一新代码段的风险性,并在移动低风险存储段之后再移动高风险代码段。
38.在无线通信设备中,一种用于管理系统软件下载操作的系统,系统包括空中链路接口;可执行的系统软件和系统数据,其被分为非易失性存储器永久存储区中的代码段;动态指令集,用于利用从包括恢复状态监测、备份、压缩和更新排序的组中选出的功能管理器管理通过空中链路接口接收的系统软件更新材料的下载;以及,用来处理动态指令集的运行-时期引擎;以及,非易失性存储器的文件系统段,用于接收包括动态指令集和新代码段的补丁管理器运行时期指令(PMRTI)。
全文摘要
本发明公开了一种用于管理无线通信设备中的系统软件现场下载的系统和方法,所述方法包括执行系统软件、启动运行-时期引擎、处理动态指令集和根据对动态指令集的处理,利用所选择的管理功能管理通过空中链路接口接收的系统软件更新材料的下载。可选择的管理功能包括恢复状态监测、备份、压缩和升级排序。
文档编号G06F9/445GK1535418SQ02814831
公开日2004年10月6日 申请日期2002年7月22日 优先权日2001年7月26日
发明者高里·拉贾拉姆, 保罗·泽肯多夫, 迭戈·卡普兰, 卡普兰, 泽肯多夫, 高里 拉贾拉姆 申请人:基奥赛拉无线公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1