用于现场诊断无线通信设备系统软件的系统和方法

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

发明内容
无线通信设备的软件更新可向用户提供尽可能最适合的产品和用户体验。回收手机而更新软件在商业上是昂贵的。手机制成后,这些更新对于向用户提供增值服务或解决电话使用中发现的问题可能是必须的。本发明使得通过空中链路接口现场升级手机在实践中成为可能。尤其是本发明可允许无线通信设备执行动态指令集。这些动态指令集可使无线设备“智能化地”或有条件地更新系统软件或系统数据。此外动态指令集可使无线设备收集数据,并依据所收集的数据对系统软件进行更改。另外,可以收集数据并将所收集的数据传送给无线设备制造商用于分析。
因而,提供一种现场诊断无线通信设备中的系统软件的方法。该方法包括执行系统软件;启动运行时期引擎,在非易失性存储器的文件系统段接收包括动态指令集和新代码段的补丁管理器运行时期指令(PMRTI);以及处理动态指令集以现场诊断系统软件。
对动态指令集的处理包括执行带有系统软件的诊断指令集以收集数据;分析所收集的数据,以及根据对所收集的数据的分析,对系统数据和系统软件进行操作。所述方法进一步包括在对系统软件和系统数据操作之后,执行系统软件。
下面将提供上述系统软件现场诊断方法和用于现场诊断无线通信设备中的系统软件的系统的详细说明。
附图简要说明

图1是整个无线设备软件维护系统的示意方框图。
图2是软件维护系统的示意性方框图,突出表明通过空中链路接口对指令集的安装。
图3是本发明的用于在无线通信设备中执行动态指令集的系统的示意方框图。
图4是无线设备存储器的示意方框图。
图5是图3所示的代码段地址表。
图6是图3所示的符号(suymbol)库的符号的详细描述。
图7是图3所示的符号偏移地址表。
图8a和图8b是对由运行时期引擎所存取的操作码(op-code)的说明。
图9是本发明的用于现场诊断无线通信设备中的系统软件的系统。
图10是图9所示系统的更详细说明。
图11是图10所示的诊断指令集的条件逻辑或数学方面的示意图。
图12是本发明的现场诊断系统的简单更新方面的示意方框图。
图13是本发明的现场诊断系统的重复代码补丁方面的示意方框图。
图14是对由图13所示的现场诊断系统所建立的临时修正的永久解决方案的示意方框图。
图15a和15b是本发明的用于执行无线通信设备中的动态指令集的方法流程图。
图16是动态指令集操作的一个示例的流程图。
图17是动态指令集操作的另一示例的流程图。
图18是动态指令集操作的第三示例的流程图。
图19是动态指令集操作的第四示例的流程图。
图20是动态指令集操作的第五示例的操作流程图。
图21是本发明的用于现场诊断无线通信设备中的系统软件方法的流程图。
图22是图21所示的本发明方法的另外特性的流程图。
图23是图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接收,并存储在FSS 110中。通常无线设备用户接口(UI)将通知使用者新软件可用,使用者对UI提示作出响应,确认该通知,发出进行修补或更新操作的信号。可选地,更新操作是自动完成的。在更新过程中,无线设备可能不能进行标准的通信作业。补丁管理器代码段包括非易失性可读写驱动器符号库,该非易失性可读写驱动器符号库也被装入随机存取可读写易失性存储器114。该非易失性读写驱动器符号库可使代码段被更新的代码段重写。补丁管理器代码段包括读-写数据,代码段地址表和符号偏移地址表,以及符号存取器代码和符号存取器代码地址(在下面讨论)。在引进更新代码段时,这些数据中的一部分是无效的;更新的补丁管理器代码段包括对更新的代码段有效的读写数据、代码段地址表和符号偏移地址表。一旦更新的代码段被装入代码存储段112,无线设备即复位。在复位操作之后,无线设备能执行更新的系统软件。也应该理解,补丁管理器代码段可能包括其他上面未讨论过的符号库。这些其他符号库不需要装入可读写易失性存储器114。
图2是软件维护系统100的示意方框图,突出显示了经空中链路(airlink)接口对指令集的安装。除了更新系统软件代码段,维护系统100能下载和安装在本文被称为补丁管理器运行时期指令集(PMRTI)的动态指令集、程序、或补丁管理器指令集(PMIS)。PMRTI代码段200以与上述系统软件代码段同样的方式被传送到无线设备104。PMRTI代码段最初存储在FSS 110中。PMRTI代码段通常是二进制文件,可作为编译的指令显示在手机上。PMRTI代码段是足够详尽的,可用于基本数学运算和条件运算。例如,RF校准的PMRTI可能执行下列各项操作IF RF CAL ITEM IS LESS THAN X(如果RE CAL项小于X)EXECUTE INSTRUCTION (执行指令)ELSE (否则)EXECUTE INSTRUCTION (执行指令)
PMRTI能支持基本数学运算,例如加、减、乘、除。与系统软件代码段一样,PMRTI代码段可被加载以响应UI提示,在PMRTI被装入代码存储段112之后,无线设备必须被重起。随后可以执行PMRTI代码段。如果PMRTI代码段与任何虚拟表或读-写数据有关,更新的补丁管理器代码段与PMRTI将同时被传送,以在代码存储段112内安装PMRTI。可选地,PMRTI能从FSS 110中被保持和处理。在手机104已执行了PMRTI段内的全部指令之后,可以从FSS 110中删除该PMRTI段。可选地,保留该PMRTI以便将来的操作。例如,每次无线设备开机时,可以执行PMRTI。
PMRTI是很强大的运行时期指令引擎。通过PMRTI环境,手机能执行任何传来的指令。这种机制可被用于支持RF标准。更一般的,通常是由用户抱怨而使厂商或服务提供商意识到软件问题时,PMRTI能用于远程调试无线设备软件。PMRTI也能记录诊断软件问题所需要的数据。PMRTI能启动新下载的系统应用软件,用于数据分析、调试和修正。PMRTI能提供用来取代更新的系统软件代码段的基于RW数据的更新材料,以针对问题进行分析和短期修正。PMRTI能提供无线设备使用的存储器压缩算法。
在本发明的一些方面中,将系统软件组织进符号库的这种结构可影响执行所需要的易失性存储器114和非易失性存储器108的大小。这通常是由于代码段比排列在代码段中的符号库更大。这些较大代码段用于容纳(accommodate)更新的代码段。将系统软件作为库的集合进行组织影响所需的非易失性存储器的大小。对于同样大小的代码而言,由于代码段比排列于其中的符号库更大,因而使用的非易失性存储器的量较大。
一旦软件更新资料被传输到无线设备,软件维护系统100就进行支持存储器压缩。存储器压缩与台式计算机中的磁盘碎片整理程序相似。这种压缩方法可确保存储器的最佳使用并有更多的节余,以用于将来的代码段更新资料,而更新代码段的大小是不可预测的。当系统100被修补(更新)时,其可分析代码存储段。系统100意图将更新代码段装入由被代替的代码段所占据的存储空间。如果更新代码段比被代替的代码段更大,那么系统100在存储器112中压缩代码段。可选择地,制造商或服务提供者可计算这种压缩,并且压缩指令可被传输到无线设备104。
压缩会由于算法复杂、数据移动量大而成为耗费时间的过程。压缩算法在开始处理之前进行可行性分析。在压缩开始前,可用UI提示来请求使用者的许可。
在本发明的一些情况中,所有的系统软件代码段能被同时更新。但全部系统软件升级需要更大的FSS 110。
图3是本发明的无线通信设备中的动态指令集的执行示意方框图。系统300包括在存储器108中的代码存储段112,该代码存储段112包括被分成多个当前代码段的可执行的无线设备系统软件。在图中示出了代码段一(302)、代码段二(304),代码段n(306)和补丁管理器代码段308。然而,本发明不受任何具体的代码段数的限制。进一步,系统300还包含排列到第二组的代码段中的第一组符号库。如图示出了排列到代码段一(302)中的符号库一(310)、排列在代码段二(304)中的符号库二(312)和符号库三(314)、以及排列在代码段n(306)中的符号库m(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,符号库m(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可以依据PMRTI 454用新的或更新的代码段450代替代码存储段中的第一代码段,例如代码段n(306)。通常用更新的补丁管理器代码段452代替补丁管理器代码段308。当代码段被代替时,补丁库336用文件系统段110中的更新的代码段例如代码段450重写代码存储段112中的第一代码段,例如代码段n(306)。在极端情况下,存储段112中的所有代码段都被更新的代码段所代替。即FSS110接收第二组的更新代码段(图未示),并且补丁库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可通过红外接口或蓝牙(Bluetooth)接口来接收。
图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是本发明系统的用于现场诊断无线通信设备中的系统软件的系统的示意方框图。系统900包含与图1中的空中链路接口150相等同的空中链路接口902,以及与图1中的存储器108等同、分入到存储在非易失性存储器永久存储器904的代码段中的可执行的系统软件和系统数据,系统900实质上与上述的系统100一样,为使文章简短,相似的特性将不再重复。非易失性永久存储器904包括文件系统段906和代码存储段908。
用于现场诊断系统软件的动态指令集910已经通过空中链路接口902接收。动态指令集910以及新代码段912是补丁管理器运行时期指令914的一部分。通常,动态指令集910存储在文件系统段906中。运行时期引擎,或运行-时期库916处理动态指令集910。如上所述,运行-时期库916通常是补丁管理器代码段918的一部分。
可执行的系统软件和系统数据(永久存储器904中的代码段)由动态指令集910操作。在动态指令集910对系统软件和系统数据操作之后,系统软件被执行。
如上面所详细说明的,系统软件被设置进符号库。每个符号库包含具有相关功能的符号,这些符号排列在非易失性存储器908的代码存储段的代码段中。非易失性存储器的文件系统段906接收补丁管理器运行时期指令(PMRTI)914,包括动态指令集910和新代码段(新代码段912被示出)。
在本发明的一些方面,动态指令集910是诊断指令集,新代码段912是诊断代码段。在被文件系统段906接收之后,诊断代码段912被存储在非易失性存储器904中,通常是在代码存储段908(见点划线标示的″1″)中。诊断指令集910执行带有系统软件的诊断代码段912。
图10是图9所示系统的更详细的示意方框图。诊断指令集910的一个功能是在执行带有系统软件的诊断代码段912时,收集响应的系统数据。在本发明的一个方面,重要的系统软件符号和符号数据被收集在被收集数据代码段1000,被收集数据代码段1000通常是在文件系统段906中(如图所示),但是也能在代码存储段(未示出)或可读写易失性存储器1002上。
在本发明的另一方面,系统软件存储符号和数据项,并更新所存储的符号和数据项以提供系统软件操作记录。这种临时的状态信息能被保持在易失性存储器1002中。这样,诊断指令集910可以更简单地收集存储在可读写易失性存储器中符号的地址和符号值,以存储在被收集数据代码段1000中。
随后被收集数据代码段1000上的被收集数据被现场诊断系统900分析,以进行临时的修正(如下面的图13和图14所示),或被传输到无线设备厂商进行分析。诊断指令集910导致被收集系统数据1000被空中链路接口902(见点划线标示的″1″)传输。然后,新的补丁管理器运行时期指令1004经空中链路接口902被接收,见点划线标示的″2″。新的PMRTI 1004包括带有更新数据的新代码段。诊断指令集910用新代码段取代永久存储器中的初始代码段(见图9),系统软件执行新的代码段。
图11是图10所示的诊断指令集912的条件逻辑或数学方面的示意图。在本发明的这个方面,诊断指令集912使用条件诊断指令集分析所收集的数据。条件操作可能是简单的数学操作,例如数据项加″3″,操作也可能复杂得多,如图所示,操作为如果X<3,则使X=5,否则X值不变。由于条件操作是基于标准的软件功能,因而条件逻辑操作总数、类型、和变量太多而不能全部提及。依据对被收集数据的分析,系统数据被更新,系统软件用更新的系统数据执行,如图所示,系统软件操作X,X的值为5。
图12是本发明的现场诊断系统900的简单更新的示意方框图。诊断代码段914包括预定的更新系统数据集,在图中示为Z_1(1200)、Z_2(1202)、和Z_3(1204)。诊断动态指令集912选择更新系统数据集,例如,Z_1(1200)。然后,系统软件(例如代码段1206)用所选择的更新系统数据集Z_1(1200)执行。应注意Z_1数据集1200取代了R_1数据集1208。诊断指令集912已经确定,使用R_1数据集的系统软件是低效的。
图13是本发明的现场诊断系统900的重复代码补丁的示意方框图。诊断代码段914包括多个临时代码符号库,在图中示为Y_(1300)、Y_2(1302)和Y_3(1304)以及相应约束YC_1(1306),YC_2(1308),和YC_3(1310)。该诊断代码段914也被称作测试代码段。虽然所示的库和约束段是分开的,但约束段1306-1310可选地可以是临时库1300-1304的一部分,或位于其他诊断代码段内(未示出)。
诊断指令集912执行第一临时代码,例如Y_1(1300)。也就是说,诊断指令集912使系统软件,例如代码段1312,利用第一临时代码Y_1(1300)执行。系统数据因第一临时代码Y_1(1200)的执行而在诸如被收集数据代码段1000中(见点划线标示的″1″)被收集。诊断指令集912将所收集的系统数据与相应的约束YC_1(1306)相比较。如上所述,分析可基于由诊断指令集生成的简单的或复杂的条件逻辑或数学运算。简单地说,诊断代码段914包括作为系统数据触发值的约束,通过将根据第一临时代码Y_1(1300)的执行而收集的系统数据1000与YC_1(1306)中的系统数据触发值相比较,诊断指令集912分析所收集的数据。
如果被收集的系统数据1000通过了分析(分析合格),那么第一临时代码Y_1(1200)被假定为是可操作的,并且系统数据是按照第一临时代码约束YC_1(1306)临时更新的。既然代码段1312将使用临时代码段代替已安装代码-例如R_1(1314)-工作,那么,系统软件暂时将所选择的系统软件符号重定向(redirect)到诊断代码段914的第一临时代码符号库Y_1(1300)中的相对应符号(见点划线标签″2″)。如上面所详细解释的,代码段地址表和符号偏移地址表用于定位代码段和代码段内的符号。在临时代码段被修补到系统软件内时,诊断指令集912也用诊断代码段的地址更新符号偏移地址表和代码段地址表。如图所示,将用临时代码段Y_1(1300)取代代码段R_1(1314)中的相对应符号,以更新代码段1312。
然而,与约束相比较,所收集的数据1000可能是不对的。这种不对的比较结果表明临时代码不是对系统软件问题的成功修正。然后,如果被收集的系统数据不能通过分析,诊断指令集912执行其它临时代码符号库。反复测试临时代码段直到发现″好″代码段。如果没发现″好″代码,系统软件继续用最初安装的代码操作。应注意到,上述的临时修正是被设计为诊断工具的,但是,临时修正能无限期地被修补到系统中。
图14是图13的现场诊断系统900所建立的临时修正的永久解决方案的示意方框图。为永久解决所诊断到的问题,诊断指令集912使临时软件数据资料和临时重定向的系统软件符号经空中链路接口902传输(见标为“1”的点划线箭头)。如图所示,临时更新信息被存储在代码段1400。临时修正的传送使厂商可以完成对信息的分析,因而可以产生全面而有效的解决办法。然后,永久更新代码段1402以及更新的代码段地址表和更新的符号偏移地址表作为新PMRTI经空中链路接口902,在文件系统段906被接收(见标为“2”的点划线箭头)。诊断指令集912在永久存储器中存储更新代码段1402以及更新代码段地址表和符号偏移表。如图所示,更新代码段存储在代码存储段908中(见标为“3”的点划线箭头)。
图15a和15b是本发明的用于在无线通信设备中执行动态指令集的方法流程图。虽然为清楚起见,用连续编号的步骤进行描述,但除非明确指出,不应从这些编号(下面示出的本方法的编号)中得出先后顺序。该方法在步骤1500开始。步骤1501a将系统软件设置为符号库,每个符号库包含具有相关功能的符号。步骤1501b将符号库排列到代码段。步骤1502执行系统软件。步骤1503启动运行-时期引擎。通常,所启动的运行-时期引擎包括调用来自第一代码段的运行-时期库。运行-时期引擎能从易失性或非易失性存储器中启动。在步骤1503之后的步骤1504中,接收动态指令集。在步骤1504中接收动态指令集包括通过从一个组中所选的接口接受动态指令集,该组包括空中链路、射频(RF)硬线(hardline)、可安装存储器模块、红外的以及逻辑端口界面。在本发明的一些方面,在步骤1504中接收动态指令集包括接收非易失性存储器的文件系统段内的补丁管理器运行时期指令(PMRTI)。
步骤1506处理动态指令集。处理动态指令集包括根据数学和逻辑操作处理指令。在本发明的某些方面中,在处理动态指令集之后,步骤1507(图未示)删除动态指令集。步骤1508操作系统数据和系统软件。步骤1510根据对系统软件和系统数据的操作,控制系统软件执行。
在步骤1504中接收补丁管理器运行时期指令通常包括接收条件操作代码和数据项。然后,在步骤1506中处理动态指令集包括子步骤。步骤1506al使用运行时期引擎读取补丁管理器运行时期指令操作代码。步骤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在非易失性存储器的文件系统段接收补丁管理器运行时期指令(PMRTI),包括动态指令集和新的代码段。步骤2108处理动态指令集以现场诊断系统软件。步骤2110依据步骤2108对系统软件的现场诊断,对系统数据和系统软件进行操作。在步骤2110对系统软件和系统数据操作之后,步骤2112执行系统软件。
如前所述,而在本图中未特别指明的,步骤2101a将系统软件设置为符号库,每个符号库包含具有相关功能的符号,步骤2101b将符号库排列到非易失性的存储器的代码存储段的代码段中。
在本发明的一些方面,在步骤2106接收动态指令集包括接收诊断指令集。进一步,接收新的代码段包括接收诊断代码段。随后,步骤2107在非易失性存储器永久存储区存储诊断代码段。在步骤2108中处理动态指令集包括对诊断指令集的处理以执行带有系统软件的诊断代码段。
在本发明一些方面,在步骤2108中对诊断指令集的处理包括一些子步骤。步骤2108a收集系统数据。通常,系统数据依据带有系统软件的诊断代码段的执行而收集。在一些方面,在步骤2108a中对系统数据的收集包括收集在可读写易失性存储器中的符号的地址和值。步骤2108b在文件系统段的第一代码段存储收集的系统数据。步骤2108c使用条件操作代码分析收集的数据。然后,在步骤2110对系统数据和系统软件的操作包括依据对所收集数据的分析更新系统数据。在步骤2112中对系统软件的执行包括使用更新系统数据。应该理解,在步骤2108a到步骤2108c中的收集、存储、和分析数据是不必按所描述的次序进行的。一些过程是重复的,包括收集、存储、和分析的循环。其他处理可能分析数据随后存储它。本领域的技术人员同样应该意识到存在着其他收集、存储、和分析的次序变化。
在本发明的一些方面,在步骤2106中对诊断代码段的接收包括接收预定设置的更新系统数据。在步骤2108中对诊断指令集的处理包括选择更新系统数据集,在步骤2110中对系统数据和系统软件的操作包括使用已选择的更新系统数据集执行系统软件。
图22是图21中所示的本发明方法的其他特性的流程图。为简短起见,应注意到,在步骤21中描述的大多数步骤在图22是一样的,在这里不对他们进行重复描述。在步骤2106中对诊断代码段的接收包括接收带有多个临时代码符号库和相应约束的测试代码段。在步骤2108中对诊断指令集的处理包括执行第一临时代码。在步骤2108c中分析所收集的数据包括对系统数据(依据第一临时代码的执行而收集)和相应约束的比较。在步骤2110中对系统数据和系统软件的操作包括一些子步骤。如果被收集的系统数据通过了分析,步骤2110a按照第一临时代码约束暂时更新软件数据。步骤2110b暂时将已选择系统软件符号重定向到在诊断代码段的第一临时代码符号库中的副本符号。如果所收集的系统数据未分析合格,步骤2108中对诊断指令集的处理包括执行备选的临时代码符号库。
在步骤2101b中将符号库排列到代码段,包括在代码段的开始处开始符号库,以及排列符号使他们从各自的代码段起始地址偏移。正如上面所详细提及的并因此未示出的,步骤2101c在相应的开始地址存储代码段的开始。步骤2101d维持代码段地址表,该代码断地址表用相应的开始地址前后参照代码段标识符。步骤2101e维持符号偏移地址表,该符号偏移地址表用相应的偏移地址和相应的代码段标识符对照符号标识符。然后,在步骤2112中,执行来自测试代码段的临时代码符号库包括用诊断代码段中的地址更新符号偏移地址表和代码段地址表。
在一些方面,在步骤2106中对诊断代码段的接收包括接收测试代码段,该测试代码段带有临时代码符号库和作为系统数据触发值组织的约束。然后,在步骤2108c对被收集的数据的分析包括将系统数据(依据第一临时代码的执行而收集)与系统数据触发值的集合相比较。
步骤2114经空中链路接口传输临时软件数据资料并暂时重定向系统软件符号的集合。步骤2116在文件系统段接收带有更新代码段地址表和更新符号偏移地址表更新代码段(永久的更新)。然后,在步骤2108中对动态指令集的处理包括在永久存储区中存储带有更新代码段地址表和符号偏移地址表更新代码段。
图23是图21所示的现场诊断方法的外部分析特性的流程图。再次说明,图23中的大多数步骤是与图21中的步骤相同的。为简洁起见,将不予重复。在步骤2108中,对诊断指令集的处理包括通过空中链路接口传输所收集的系统数据。在外部分析之后,步骤2108d接收新的补丁管理器运行时期指令。新的补丁管理器运行时期指令带有新的代码段,新的代码段包括更新数据。在步骤2108e中,用新的代码段取代永久存储区内的第一代码段。然后,在步骤2112中执行使用新的代码段的系统软件。在本发明的一些方面,在步骤2108的系统软件现场诊断之后的步骤2118中,从文件系统段移去动态(诊断)指令集。
已经提供了用于在无线通信设备中执行动态指令集的系统和方法,从而有助于在诊断和/或修正(至少是暂时的)系统软件的问题。由于代码段中符号库的排列,并用表访问存储器中代码段的起始地址及符号库中符号的偏移地址,因而此系统非常容易更新。动态指令集的使用可根据设备的具体特征对其进行定制修改。举出了几个常用实施例用以阐明动态指令集的可能应用。然而,本发明不仅限于这些实施例。本领域所属技术人员可以想到本发明的其它变化和实施方案。
权利要求
1.一种在无线通信设备中现场诊断系统软件的方法,所述方法包括执行系统软件;启动运行-时期引擎;以及,处理动态指令集以现场诊断系统软件。
2.根据权利要求1所述的方法,进一步包括根据对系统软件的现场诊断,操作系统数据和系统软件;和,在对系统软件和系统数据操作之后,执行系统软件。
3.根据权利要求2所述的方法,进一步包括将系统软件设置为符号库,每个符号库包括具有相关功能的符号;将符号库排列为非易失性存储器的代码存储段中的代码段;和,在非易失性存储器的文件系统段,接收补丁管理器运行时期指令(PMRTI),包括动态指令集和新的代码段。
4.根据权利要求3所述的方法,其特征在于,接收动态指令集包括接收诊断指令集,接收新的代码段包括接收诊断代码段;所述方法进一步包括在非易失性存储器的永久存储区中存储诊断代码段;和,其中对动态指令集的处理包括对诊断指令集的处理以用系统软件执行诊断代码段。
5.根据权利要求4所述的方法,其特征在于,对诊断指令集的处理包括收集系统数据。
6.根据权利要求5所述的方法,其特征在于,对诊断指令集的处理包括根据带有系统软件的诊断代码段的执行,收集系统数据。
7.根据权利要求5所述的方法,其特征在于,收集系统数据包括在可读写易失性存储器中收集符号的地址和值。
8.根据权利要求5所述的方法,其特征在于,对诊断指令集的处理包括在文件系统段的第一代码段存储收集的系统数据。
9.根据权利要求5所述的方法,其特征在于,对诊断指令集的处理包括使用条件操作代码分析收集的数据。
10.根据权利要求9所述的方法,其特征在于,对系统数据和系统软件的操作包括根据对收集数据的分析更新系统数据;和,其中对系统软件的执行包括对更新的系统数据的使用。
11.根据权利要求6所述的方法,其特征在于,接收诊断代码段包括接收预定的更新的系统数据集;对诊断指令集的处理包括选择更新的系统数据集;和,对系统数据和系统软件的操作包括使用已选择的更新的系统数据集执行所述系统软件。
12.根据权利要求11所述的方法,其特征在于,对诊断代码段的接收包括接收测试代码段,所述测试代码段带有多个临时代码符号库和相应的约束;对诊断指令集的处理包括执行第一临时代码;分析所收集的数据包括比较根据第一临时代码的执行而收集的系统数据与相应的约束;对系统数据和系统软件的操作包括如果收集的系统数据分析合格,依据第一临时代码约束暂时更新软件数据;和,暂时将选择的系统软件符号重定向到诊断代码段的第一临时代码符号库的对应符号;和,对诊断指令集的处理包括如果收集的系统数据分析不合格,执行可选的临时代码符号库。
13.根据权利要求12所述的方法,其特征在于,将符号库排列为代码段包括在代码段的开始处排列符号库的开始以及将各符号从各自的代码段起始地址起偏移;该方法进一步包括在相应的开始地址存储代码段的开始;维护代码段地址表,该表以相应的开始地址相互参照代码段标识符;维护符号偏移地址表,该表以相应的偏移地址和相应的代码段标识符参照符号标识符;和,其中执行来自测试代码段的临时代码符号库包括用诊断代码段的地址更新符号偏移地址表和代码段地址表。
14.根据权利要求13所述的方法,其特征在于,接收诊断代码段包括接收带有临时代码符号库和组织为系统数据触发值的约束;和,分析收集的数据包括将根据执行第一临时代码而收集的系统数据与系统数据触发值的集合比较。
15.根据权利要求13所述的方法,进一步包括经空中链路接口传输临时软件数据更新资料的集合以及暂时重定位的系统软件符号;在文件系统段接收更新代码段及更新代码段地址表和更新符号偏移地址表;和,对诊断指令集的处理包括在永久存储区存储更新代码段以及更新代码段地址表和符号偏移地址表。
16.根据权利要求8所述的方法,其特征在于,对诊断指令集的处理包括经空中链路接口传输收集的系统数据;所述方法进一步包括接收新的补丁管理器运行时期指令,所述新的补丁管理器运行时期指令带有包括更新数据的新的代码段;用新的代码段取代在永久存储区的第一代码段;和,用新的代码段执行所述系统软件。
17.根据权利要求3所述的方法,其特征在于,在系统软件的现场诊断之后,从文件系统段移去动态指令集。
18.在无线通信设备中,一种用于现场诊断系统软件的方法,所述方法包括执行系统软件;启动运行-时期引擎;在非易失性存储器的文件系统段,接收补丁管理器运行时期指令(PMRTI),包括动态指令集和新的代码段;按如下的步骤处理动态指令集以现场诊断系统软件执行诊断指令集及系统软件以收集数据;分析收集的数据;根据对收集的数据的分析,操作系统数据和系统软件;以及,在对系统软件和系统数据操作之后,执行系统软件。
19.在无线通信设备中用于现场诊断系统软件的系统,所述系统包括可执行的系统软件和系统数据,被分入存储在非易失性存储器永久存储区中的代码段内;动态指令集,用于现场诊断系统软件;和,运行-时期引擎,用于处理动态指令集。
20.根据权利要求19所述的系统,其特征在于,现场诊断动态指令集对系统数据和系统软件进行操作;以及,在动态指令集操作系统软件和系统数据之后,系统软件被执行。
21.根据权利要求20所述的系统,其特征在于,系统软件被设置进符号库,每个符号库包括具有相关功能的符号,在非易失性存储器代码存储段中排列为代码段;以及,系统进一步包括非易失性存储器的文件系统段,用来接收包括动态指令集和新的代码段的补丁管理器运行时期指令(PMRTI)。
22.根据权利要求21所述的系统,其特征在于,文件系统段接收诊断指令集和诊断代码段;所述诊断代码段存储在非易失性的存储器中;以及,所述诊断指令集执行所述诊断代码段及所述系统软件。
23.根据权利要求22所述的系统,其特征在于,诊断指令集收集系统数据。
24.根据权利要求23所述的系统,其特征在于,诊断指令集根据带有系统软件的诊断代码段的执行收集系统数据。
25.根据权利要求23所述的系统,其特征在于,进一步包括可读写易失性存储器;以及,其中诊断指令集收集存储在可读写易失性存储器中的符号的地址和值。
26.根据权利要求23所述的系统,其特征在于,诊断指令集在文件系统段的第一代码段存储收集的系统数据。
27.根据权利要求23所述的系统,其特征在于,诊断指令集使用条件诊断指令集分析收集的数据。
28.根据权利要求27所述的系统,其特征在于,系统数据依据对所收集的数据的分析更新,系统软件用更新系统数据执行。
29.根据权利要求24所述的系统,其特征在于,诊断代码段包括预定的更新系统数据集;其中诊断动态指令集选择更新系统数据集;以及,系统软件用所选择的更新系统数据集执行。
30.根据权利要求29所述的系统,其特征在于,所述诊断代码段包括多个临时代码符号库和相应的约束;诊断指令集执行第一临时代码并将根据第一临时代码的执行而收集系统数据与相应的约束相比较;如果收集的系统数据分析合格,系统数据根据第一临时代码约束暂时更新,并且系统软件暂时将所选择的系统软件符号重定向到诊断代码段的第一临时代码符号库中的相对应符号;以及,如果收集的系统数据分析不合格,诊断指令集依次执行临时代码符号库。
31.根据权利要求30所述的系统,其特征在于,所述系统软件包括起始于代码段的开始处的符号库,所排列的符号从各自的代码起始地址处偏移,代码段的开始被存储在相应的开始地址;该系统进一步包括代码段地址表,用相应的开始地址参照代码段标识符;符号偏移地址表,它将代码段标识符与相应的偏移地址交叉引用和将偏移地址和相应的代码段标识符交叉引用;以及,其中诊断指令集用诊断代码段中的地址更新符号偏移地址表和代码段地址表。
32.根据权利要求31所述的系统,其特征在于,所述诊断代码段包括组织为系统数据触发值的约束;诊断指令集通过比较根据执行第一临时代码而收集的系统数据和系统数据的触发值来分析收集的数据。
33.根据权利要求31所述的系统,其特征在于,进一步包括空中链路接口;其中诊断指令集经空中链路接口传输临时软件数据材料和和暂时重定向系统软件符号的集合,并经空中链路接口在文件系统段接收更新代码段、更新代码段地址表和更新符号偏移地址表;以及,诊断指令集在永久存储区存储更新的代码段及更新代码段地址表和符号偏移表。
34.根据权利要求26所述的系统,其特征在于,进一步包括空中链路接口,用于传输诊断指令集收集的系统数据;以及,新的补丁管理器运行时期指令,带有经过所述空中链路接口接收的新的代码段,所述代码段包括更新的数据;其中诊断指令集用新的代码段取代永久存储区中的首次代码段;以及,其中系统软件用新的代码段执行。
35.在无线通信设备中,一种用于现场诊断系统软件的系统,所述系统包括执行系统软件和系统数据,所述系统软件和系统数据被分入非易失性存储器永久存储区中的代码段;非易失性的存储器的文件系统段,接收包括动态指令集和新的代码段的补丁管理器运行时期指令(PMRTI);运行-时期引擎,用于处理动态指令集;以及,其中动态指令集通过收集和分析数据来现场诊断系统软件,并根据对所收集数据的分析来操作系统数据和系统软件。
全文摘要
一种用于现场诊断无线通信设备中的系统软件的系统和方法,所述方法包括执行系统软件;启动运行-时期引擎;在非易失性存储器的文件系统段,接收包括动态指令集和新的代码段的补丁管理器运行时期指令(PMRTI);以及处理动态指令集以现场诊断系统软件。对动态指令集的处理包括执行带有系统软件的诊断指令集以收集数据;分析收集的数据;操作系统数据和系统软件。所述方法进一步包括在对系统软件和系统数据操作之后,执行系统软件。
文档编号G06F9/445GK1537276SQ02814837
公开日2004年10月13日 申请日期2002年7月23日 优先权日2001年7月26日
发明者高里·拉贾拉姆, 保罗·泽肯多夫, 迭戈·卡普兰, 卡普兰, 泽肯多夫, 高里 拉贾拉姆 申请人:基奥赛拉无线公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1