用于编制现场可升级的无线通信设备软件的系统及方法

文档序号:6425196阅读:129来源:国知局
专利名称:用于编制现场可升级的无线通信设备软件的系统及方法
背景技术
1.发明领域本发明一般涉及无线通信设备,特别涉及一种通过无线链路接口以可使无线通信设备的系统软件现场更新及改变的方式来编制软件的系统和方法。
2.背景技术发行用于电话的现场更新软件不是罕见的。一旦电话已经被制造出并销售给公众,那么这些更新可能涉及到在此软件中发现的问题。一些更新可能涉及到电话新功能的使用或者由服务供应商提供的服务。而其它更新则可能涉及到区域性问题或与某些载体(carrier)相关的问题。例如,在某些区域中,载体的网络布局可将无线链路(airlink)接口条件的影响加于手机上,从而引起手机表现出不希望的行为,例如异常的信道搜索、异常的呼叫终止、异常的声音等。
此类更新的传统方法是将无线通信设备收回到最接近的运营商零售/服务出口或收回到制造商以处理这种改变,在本文中无线通信设备也被称为无线设备、电话(phone)、电话机(telephone)或手机。这样的更新涉及到昂贵的成本并且超过成本底线。此外,用户会感到不便且有可能愤怒。经常的实际解决方案是给用户提供新电话。
如果无线通信设备软件可以被便宜地升级而且不会给用户带来不便,那么将是有利的。
如果无线通信设备的软件在不会使用户在相当长时间内没有电话使用的情况下升级,那么将是有利的。
如果无线通信设备软件可以在最小的技术服务时间内或不需要将设备送到服务工厂的情况下得到更新,那么将是有利的。
如果无线通信设备软件可以通过无线链路接口被编制以允许现场修改,那么将是有利的。
发明概述无线通信设备的软件更新可带给用户尽可能好的产品和用户体验。昂贵的商业部分涉及到收回手机以更新软件。手机制造完成后,这些更新对于向用户提供增值服务或解决电话使用中发现的问题可能是必须的。本发明使得通过无线链路接口在现场实际升级手机软件成为可能。
由此,本发明提供了一种用于在无线通信设备中编制现场可升级的系统软件的方法。该方法包括将系统软件代码形成为第一组符号库,所述每个库包括具有相关功能的符号;将所述第一组符号库排列进第二组代码段,以使符号库在代码段的起始处开始;创建第二组连续编址的存储块;利用相应代码段标识每个存储块;在被标识的存储块中存储代码段,代码段的起始位置处于相应的起始地址处;维护代码段地址表,所述代码段地址表交叉引用代码段标识符与相应的起始地址;及执行无线设备系统软件。
将系统软件代码形成为第一组符号库包括形成符号存取器代码。将第一组符号库排列进第二组代码段包括对待从其各自代码段起始地址偏移的各个符号进行排列,并且包括在第一代码段中排列符号存取器代码。另外,该方法还包括维护符号偏移地址表,所述符号偏移地址表交叉引用符号标识符与相应的偏移地址及代码段标识符;以及在存储器的第一单元中保存符号存取器代码地址。
所述代码段地址表、符号偏移地址表、针对所有符号库的读写数据、当执行系统软件时可计算库中的符号地址的符号存取器代码、以及符号存取器代码地址被排列进通常为补丁管理器代码段的共用代码段中的符号库。所述读写数据、代码段地址表、符号偏移地址表、符号存取器代码地址以及符号存取器代码被装入并由随机存取易失性读写存储器访问。
所述代码段的长度可以容纳排列的符号库,或在符号库被较大库更新时所述代码段的长度可大于排列的符号库。连续编址的存储块正好可容纳相应的代码段。
下面将提供上述方法的其它细节以及无线通信设备现场可升级的系统软件结构。
附图的简要说明

图1是整个无线设备软件维护系统的示意性方块图。
图2是软件维护系统的示意性方块图,其中突出表明了通过无线链路接口的指令集安装。
图3是本发明所述用于无线通信设备中的现场可升级系统软件结构的示意性方块4是无线设备存储器的示意性方块图。
图5的表示出了图3中的代码段地址表。
图6是图3中带有符号的符号库1的详细说明。
图7的表示出了图3中的符号偏移地址表。
图8a和图8b的流程图说明了在无线通信设备中用于编制现场可升级系统软件的本发明方法。
优选实施方案的详细说明下面将结合无线设备微处理器或存储器中数据位的操作流程、步骤、逻辑块、代码、方法和其它操作的符号表示而给出详细说明的一些部分。这些说明和表示可使数据处理领域的所属技术人员能最有效地将他们的工作内容转达给本领域所属的其他工作人员。此处的流程、微处理器执行步骤、应用、逻辑块、方法等通常被认为是指可导致所需结果的前后一致的顺次步骤或指令。步骤是指那些需要对物理量进行物理处理的步骤。通常尽管不是必须的,但在微处理器基无线设备中,这些量表现为能够存储、传输、组合、比较或其它可处理的电信号或磁信号的形式。有时为了方便,主要是由于通用的原因而将这些信号称为位、值、单元、符号、字符、项、数字等。其中物理设备(如文中提到的存储器)通过数据线或其它的电连接而与其它的物理设备连接。这些物理设备可被认为与逻辑处理或应用程序相互作用,因此它们与逻辑操作“连接”。例如,存储器可存储或访问代码以进行逻辑操作。
然而应该记住,所有这些术语和相似的术语都应与相应的物理量相关,其仅是加到这些物理量上的方便标记。除非在下面的讨论中另有特别指明,应该理解,在整个发明讨论中所使用的术语,如“处理”或“连接”或“翻译”或“显示”或“提示”或“确定”或“显示”或“识别”等,都指的是无线设备微处理系统中的活动和过程,其可对计算机系统寄存器和存储器中表示物理(电子)量的数据进行处理并转换成在无线设备存储器或寄存器或其它此类信息存储、传输或显示设备中类似地表示物理量的其它数据。
图1是整个无线设备软件维护系统100的示意性方块图。在下面对软件维护系统100做总的说明之后,详细说明本发明的系统软件结构。总系统100说明了一种用于传输系统软件更新程序和指令集(程序)并在无线设备中安装传输的软件的方法。系统软件更新程序或补丁制作指令集(PMIS)是由手机制造商创建的。系统软件可被编制成符号库。符号库被排列进代码段。当欲更新符号库时,软件更新程序102按一个或多个代码段传输。将软件更新程序现场传播到无线通信设备104所代表的无线设备中,或使用公知的常规无线、数据或信息传输协议在单独的通信系统中从基站106传输。由于无线通信设备可容易地被改进以装入任何可用的无线传输协议从而达到接受系统软件和PMIS更新程序的目的,所以本发明不限于任何特定的传输形式。
系统软件也可被认为是不同子系统的集合。代码对象可被紧密结合地连接成这些抽象子集中的一个,所得到的集合可称为符号库。此举提供了源代码的逻辑分类,并且软件补丁和修补可与这些符号库中的一个关联。在大多数情况下,单独的更新程序与一个或至多两个符号库相关联。而源代码的其余部分、其它符号库则保持不变。
符号库的概念为处理代码和常数提供了方法。另一方面,读写(RW)数据适合于含有针对所有库的基于RAM的数据的唯一单个RW库。
一旦传输的代码段被无线设备104接收到,则其必须被处理。无线设备将覆盖写入非易失性存储器108的特定代码段。非易失性存储器108包括文件系统段(FSS)110和代码存储段112。为最小化在FSS 110中的占用空间,代码段在传输前通常被压缩。更新的代码段通常伴随有其RW数据,它是含有针对各个符号库的所有RW数据的另一类符号库。尽管当执行系统软件时,RW数据被装入随机存取易失性读写存储器114中,但是RW数据总归要被存储在非易失性存储器108中,所以每次无线设备被复位时,其都能被装入随机存取易失性读写存储器114中。这包括第一次被装入随机存取易失性读写存储器中的RW数据。如下面更详细地说明中的那样,RW数据通常和补丁管理器代码段排列在一起。
系统100包括虚拟表的概念。使用这种表,在一个代码段中的符号库可被修补(替换),而不会破坏(替换)系统软件(其它代码段)的其它部分。为了更有效率,虚拟表从随机存取易失性读写存储器114中执行。代码段地址表和符号偏移地址表都是虚拟表。
更新的代码段被无线设备104接收到并存储在FSS 110中。无线设备用户接口(UI)通常将通知用户有新软件可用。作为对UI提示的响应,用户以修补或更新操作来回答通知和信号。可选择地,更新操作可自动进行。当进行更新操作时,无线设备可能不能进行标准的通信任务。补丁管理器代码段包括也被装入随机存取易失性读写存储器114中的非易失性读写驱动符号库。非易失性读写驱动符号库使得代码段被更新的代码段盖写。如图所示,代码段n和补丁管理器代码段被更新的代码段盖写。补丁管理器代码段包括读写数据、代码段地址表、符号偏移地址表以及符号存取器代码和符号存取器代码地址(下面讨论)。当引入更新的代码段,并且更新的补丁管理器代码段包括读写数据、代码段地址表、以及对更新的代码段有效的符号偏移地址表时,该数据的一些部分是无效的。一旦更新的代码段被装入代码存储段112中,无线设备被复位。在复位操作之后,无线设备能执行更新的系统软件。应该理解,补丁管理器代码段可包括上面没有讨论的其它符号库。这些其它的符号库不需要被装入易失性读写存储器114中。
图2是软件维护系统100的示意性方块图,其中突出表明了通过无线链路接口的指令集安装。除了更新系统软件代码段外,维护系统100可下载并安装指令集或程序,在本文中也被称为补丁制作指令集(PMIS)。PMIS代码段200按照与上述系统软件代码段相同的方式被传输给无线设备104。PMIS代码段起初储存在FSS 110中。PMIS代码段通常是二进制文件,并可被直观化(visualized)成针对手机的编译指令。对于基本数学操作性能和条件执行操作性能而言,PMIS代码段是足够全面的。例如,RF校准PMIS能执行下面的操作IF RF CAL ITEM IS LESS THAN XEXECUTE INSTRUCTIONELSEEXECUTE INSTRUCTIONPMIS可支持基本数学操作,如加、减、乘、除。与系统软件代码段相同,可装入PMIS代码段以响应UI提示,并且在PMIS装入到代码存储段112后无线设备必须复位。然后PMIS段可再执行。如果PMIS代码段与任何虚拟表或读写数据关联,则为了在代码存储段112中安装,更新的补丁管理器代码段将和PMIS一起被传输。可选择地,PMIS也可被保持并在FSS 110中处理。当手机104执行完PMIS段中的所有指令后,可从FSS 110删除PMIS段。
在本发明的某些方面中,将系统软件编制进符号库中可能会影响执行所需要的易失性存储器114和非易失性存储器108的大小。这是由于通常代码段比排列在代码段中的符号库更大的原因。这些较大代码段用以容纳更新的代码段。将系统软件编制成库的集合对非易失性存储器的大小需求有影响。对于同样的代码长度而言,使用非易失性存储器的容量较大,这是由于代码段可比排列于其中的符号库更大的原因。
PMIS是一种非常有效的运行时期(runtime)指令引擎。通过PMIS环境,手机可执行任何传给它的指令。这种机制可被用来支持RF校准和PRI更新程序设计。更一般而言,当制造商或服务供应商认识到通常作为用户报怨的结果的软件问题时,PMIS可被用于远程调试无线设备软件。PMIS也可记录诊断软件问题所需要的数据。PMIS可提供用于数据分析、调试及修复的最新下载的系统应用程序。PMIS可提供用于分析的基于RW数据的更新程序,并可能代替更新的系统软件代码段而对问题进行短期修复。PMIS可提供由无线设备使用的存储器压缩算法。
一旦软件更新程序被传输到无线设备,则软件维护系统100支持存储器压缩。存储器压缩与台式计算机中的磁盘碎片整理(de-fragmentation)应用相似。这种压缩方法可确保存储器的最佳使用,并对将来的代码段更新程序有很好的节余,因为更新的代码段大小是不可预测的。当系统100被修补(更新)时,其可分析代码存储段。系统100试图将更新的代码段装入由被代替的代码段所占据的存储空间。如果更新的代码段比被代替的代码段更大,那么系统100在存储器112中压缩代码段。可选择地,制造商或服务提供商可计算这种压缩,并且压缩指令可被传输到无线设备104。
由于算法的复杂性和大量的数据移动,所以压缩是耗费时间的过程。在开始任何过程之前,压缩算法可预测可能性。在试图压缩之前,可利用来自用户的UI提示以提出请求。
在本发明的某些方面中,所有的系统软件代码段可被同时更新。然而,完整的系统软件升级将需要较大的FSS 110。
图3是本发明所述用于无线通信设备104中的现场可升级系统软件结构的示意性方块图。系统软件结构300包括被区分成第二组代码段的可执行系统软件。图中示出的是代码段1(302)、代码段2(304)、代码段n(306)以及补丁管理器代码段308,然而本发明不限于任何特定数量的代码段。系统300还包括排列进第二组代码段的第一组符号库。图中示出的是排列在代码段1(302)中的符号库1(310)、排列在代码段2(304)中的符号库2(312)和符号库3(314)以及排列在代码段n(306)中的符号库m(316)。每个库都包括具有相关功能的符号。例如,符号库1(310)可能与无线设备液晶显示器(LCD)的操作有关。则此符号与显示功能关联。如下面详细说明的,其它符号库被排列在补丁管理器代码段308中。
图4是无线设备存储器的示意性方框图。如图所示,存储器是图1中的代码存储段112。该存储器是可写的非易失性存储器,如闪存。应该理解,代码段不必一定要存储在与FSS 110相同的存储器中。还应该理解,本发明的系统软件结构能使代码段存储在多个合作的存储器中。代码存储段112包括第二组连续编址的存储块,其中每个存储块存储来自于第二组代码段的相应代码段。因而,代码段1(302)存储在第一存储块400中,代码段2(304)存储在第二存储块402中,代码段n(306)存储在第n存储块404中,并且补丁管理器代码段(308)存储在第p存储块406中。
比较图3与图4,每个代码段的起始位置都存储在存储器中相应的起始地址处,符号库被排列成从代码段的起始位置处开始。也就是说,每个符号库开始于第一地址处并从第一地址顺序通过一定地址范围。例如,代码段1(302)从代码存储段存储器112中的第一起始地址408(用“S”标示)开始。在图3中,符号库1(310)从第一代码段的起始位置318处开始。类似地,代码段2(304)从第二起始地址410(如图4)开始,符号库2从代码段2的起始位置320(图3)处开始。代码段n(306)从代码存储段存储器112中的第三起始地址412(图4)开始,符号库m(316)从代码段n的起始位置322(图3)处开始。补丁管理器代码段从代码存储段存储器112的第p起始地址(414)处开始,补丁管理器代码段308中的第一符号库从补丁管理器代码段的起始位置324处开始。因而,符号库1(310)最终存储在第一存储块400中。如果代码段包括多个符号库,如代码段2(304),则此多个符号库被存储在相应的存储块中,在这种情况下是第二存储块402。
在图3中,系统软件结构300还包括作为一种符号的代码段地址表326,该类符号包括在排列于补丁管理器代码段308中的符号库内。代码段地址表可交叉引用代码段标识符与存储器中的相应代码段起始地址。
图5的表示出了图3中的代码段地址表326。代码段地址表326被查询以用于为符号库搜索代码段起始地址。例如,当需要执行符号库1中的符号时,系统300将搜索代码段1。为了找到代码段1的起始地址并且由此定位符号库1中的符号,则需查询代码段地址表326。代码段内的符号库排列及用表跟踪代码段使得代码段可被移动或扩展。扩展或移动操作对于安装升级代码段(带有升级符号库)是需要的。
参照图3,应该注意,并非每个符号库都必须在代码段的起始位置处开始。如图所示,符号库3(314)排列在符号段2(304)中,但是其不从符号段起始地址320处开始。因而,如果需要执行符号库3(314)中的符号,系统300需查询代码段地址表326以寻找到代码段2(304)的起始地址。如下所述,符号偏移地址表使得符号库3(314)中的符号可被定位。穿过多个符号库传送符号也没有关系,只要它们和相同的代码段保留在一起。
如上所述,每个符号库包括功能上相关的符号。符号是由程序员定义的名称,其用于定位和使用程序主体(routine body)、变量或数据结构。因而,符号可以是地址或值。符号可以在内部或外部。内部符号在超出当前代码段的范围时是不可见的。更具体而言,它们不能被其它代码段内的其它符号库找到。外部符号在多个代码段之间使用及调用,并且可被不同代码段内的库找到。符号偏移地址表通常包括所有外部符号的列表。
例如,符号库1可以在无线设备显示器上生成字符。在这个库中,符号将依次生成电话号码、姓名、时间或其它显示特征。各个特征都是利用程序产生的,其在本文中被称为符号。例如,符号库1(310)中的一个符号可在显示器上生成电话号码。这个符号以“X”表示,且为外部符号。当无线设备接收电话呼叫并且呼叫方ID服务被激活时,系统必须执行符号“X”以在显示器上产生数字。因而,系统必须找到符号“X”的位置。
图6是对图3中带有符号的符号库1的详细说明。符号从各自代码段起始地址处开始偏移排列。在许多情况下,符号库的起始位置就是代码段的起始位置,但是如果代码段包括超过一个的符号库,这就不准确了。符号库1在代码段1的起始位置处开始(参见图3)。如图6所示,符号“X”被定位在距符号库起始位置的偏移量(03)处,符号“Y”被定位在偏移量(15)的位置处。符号偏移地址保存在补丁管理器代码段中的符号偏移地址表328中(参见图3)。
图7的表示出了图3中的符号偏移地址表328。符号偏移地址表328可交叉引用符号标识符和相应的偏移地址以及存储器中的相应代码段标识符。因而,当系统试图执行符号库1中的符号“X”时,需查询符号偏移地址表328以找到符号相对于其内排列有此符号的代码段的确切地址。
返回到图3,第一组符号库通常都包括必须在这些符号库的执行中被查询或设置的读写数据。例如,符号库可以包括由条件语句决定的操作。读写数据段被查询以确定完成条件语句所需要的状态。本发明将所有符号库中的读写数据分组成共享的读写段。在本发明的某些方面中,读写数据330排列在补丁管理器代码段308中。可选择地(未示出),读写数据可被排列在不同的代码段中,例如代码段n(306)中。
第一组符号库也包括排列在代码段中的符号存取器代码用以计算所寻找符号的地址。符号存取器代码可被排列并存储在单独的代码段中的地址内,例如代码段2(304)内。然而,如图所示,符号存取器代码332被排列并存储在补丁管理器代码段308中的地址内。系统软件结构300还包括用于存储符号存取器代码地址的第一单元。所述第一单元可以是在代码存储段112中或是在无线设备的独立存储器段(图未示)内的代码段。该第一单元也可与读写数据排列在相同的代码段中。如图所示,第一单元334与读写数据330、符号偏移地址表328、代码段地址表326、符号存取器代码332及补丁库(补丁符号库)336一起存储在补丁管理器代码段308中。
符号存取器代码使用代码段地址表和符号偏移地址表以在存储器内找到所寻找的符号的确切地址。也就是说,符号存取器代码可访问代码段地址表及符号偏移地址表以计算所寻找的符号的地址。例如,如果要寻找符号库1中的符号“X”,那么需调用符号存取器以寻找相应于符号“X”的符号标识符(符号ID)X_1(参见图7)。符号存取器代码查询符号偏移地址以确定出X_1符号标识符距代码段1起始位置的位移量(03)(参见图6)。调用符号存取器代码以寻找相应于代码段1的代码段标识符CS_1。符号存取器代码查询代码段地址表以确定出与代码段标识符(代码段ID)CS_1相关的起始地址。按照这种方式,符号存取器代码就确定出符号标识符X_1距地址(00100)的偏移量(03),或其被定位在地址(00103)处。
因为是实际代码的一部分,所以符号“X”是保留名。换句话说,其包括与其相关的绝对数据。此数据可以是地址或值。符号标识符是为了跟踪符号而产生的别名。符号偏移地址表和代码段地址表二者与标识符一同起作用以避免与保留符号和代码段名称的混淆。相同的符号名称也有可能在许多符号库之间交叉使用。标识符的使用可防止这些符号间的混淆。
参照图1,系统软件结构300还包括易失性读写存储器114,其一般为随机存储器(RAM)。读写数据330、代码段地址表326、符号偏移地址表328、符号存取器代码332及符号存取器代码地址334被从补丁管理器段装入到易失性读写存储器114中,以用于系统软件执行期间的访问。众所周知,代码在RAM中的访问次数明显少于在非易失性存储器(如闪存)中的访问次数。
返回到图3,应该注意,符号库不一定必须填满排列于其中的代码段,尽管存储块的大小被设置成恰好可容纳存储在其内的相应代码段。可选择地,第二组代码段中的每个代码段都具有可容纳被排列的字符库的字节长度,每个连续编址的存储块都具有可容纳相应代码段的字节长度。例如,代码段1(302)可以是100字节的段以容纳具有100字节长度的符号库。第一存储块将是100字节以匹配代码段1的字节长度。然而,装入到代码段1的符号库可以小于100字节。如图3所示,当符号库1(310)小于100字节时,代码段1(302)具有未用段340。因而,第二组代码段的每个代码段可以比容纳被排列的符号库所需的长度更大的长度。通过“扩大”代码段,就可以容纳更大长度的更新符号库。
图8a和图8b的流程图表明了在无线通信设备中用于编制现场可升级系统软件的本发明方法。尽管为清楚起见以连续编号的步骤描述本方法,但是除非明确说明,否则不应从编号中得出先后顺序。本方法从步骤800开始。步骤802将系统软件形成为第一组符号库,每个符号库都包括具有相关功能的符号。步骤804将第一组符号库排列进第二组代码段。步骤806执行无线设备系统软件。
在步骤804中,将第一组符号库排列进第二组代码段包括使符号库从代码段的起始位置处开始。本方法还包括如下步骤。步骤805a在相应的起始地址处保存代码段的起始位置。步骤805b维护交叉引用了代码段标识符与相应的起始地址的代码段地址表。
在步骤804中,将第一组符号库排列进第二组代码段包括从各自的代码段起始地址处偏移排列符号。然后,步骤805c维护交叉引用了符号标识符与相应的偏移地址及相应的代码段标识符的符号偏移地址表。
在本发明某些方面中,在步骤802中将系统软件代码形成为第一组符号库包括形成用于多个符号库的读写数据。在步骤804中将第一组符号库排列进第二组代码段包括在共享的读写代码段中排列读写数据。
在本发明某些方面中,在步骤802中将系统软件代码形成为第一组符号库包括形成符号存取器代码。并且在步骤804中将第一组符号库排列进第二组代码段包括在第一代码段中排列符号存取器代码。本方法还包括如下步骤。步骤805d在存储器内的第一单元中存储符号存取器代码地址。在步骤806中执行作为系统软件的代码段包括一些子步骤。步骤806a将第三组符号库装入通常是RAM的易失性读写存储器中。第三组符号库不一定必须包括补丁管理器代码段中的所有符号库。第三组符号库也可包括排列在除了补丁管理器代码段之外的其它代码段内的符号库。步骤806b访问符号存取器代码以响应对存储器内第一单元的引用。步骤806c调用符号存取器代码以利用相应的符号标识符及相应的代码段标识符来计算所寻找的符号的地址。步骤806d访问随机存取器(RAM)中的第三组符号库。
在步骤806b中,调用符号存取器代码以计算所寻找的符号的地址包括访问代码段地址表和符号偏移地址表来计算所寻找的符号的地址。通常,在步骤805d中,在存储器内的第一单元中存储符号存取器代码地址包括在第一代码段中存储符号存取器代码地址。
在本发明的某些方面,在步骤804中,将第一组符号库排列进第二组代码段包括在通常为补丁管理器代码段的第一代码段中排列读写数据、代码段地址表、符号偏移地址表及符号存取器代码。然后,步骤806a从第一代码段将读写数据、代码段地址表、符号偏移地址表、符号存取器代码及符号存取器代码地址装入到易失性读写存储器(通常为RAM)中。步骤806d从易失性读写存储器中访问读写数据、代码段地址表、符号偏移地址表、符号存取器代码及符号存取器代码地址。
在步骤805a中,在相应的起始地址处存储代码段的起始位置包括一些子步骤。步骤805a1创建第二组连续编址的存储块。步骤805a2用相应的代码段识别每个存储块。步骤805a3在识别的存储块中存储代码段。
在本发明的某些方面中,在步骤804中将第一组符号库排列进第二组代码段包括在第一代码段中排列第三组符号库。然后,在步骤805a2中用相应的代码段识别每个存储块包括用第一代码段识别第一存储块,并且在步骤805a3中在识别的存储块中存储代码段包括在第一存储块中存储第三组符号库。
可选择地,在步骤804中将第一组符号库排列进第二组代码段包括在第一代码段中排列第一符号库。然后,在步骤805a3中用相应的代码段识别每个存储块包括用第一代码段识别第一存储块。在步骤805a3中在识别的存储块中存储代码段包括在第一存储块中存储第一符号库。
在步骤804中将第一组符号库排列进第二组代码段包括使代码段的大小可以容纳排列的符号库。然后,在步骤805a1中创建第二组连续编址的存储块包括使存储块的大小能够容纳相应的代码段。可选择地,在步骤804中将第一组符号库排列进第二组代码段包括使代码段的大小可以容纳具有更大大小的排列的符号库。
已经提供了用于通过无线链路现场更新来编制无线设备系统软件的系统和方法。由于代码段中符号库的排列并带有可存取存储器中代码段的起始地址和符号库中符号偏移地址的表,所以此系统非常容易更新。尽管为了说明而给出了这些库排列和交叉引用表的几个实施例,但是本发明不仅限于这些实施例。本领域所属技术人员可以想到本发明的其它变化和实施方案。
权利要求
1.在无线通信设备中,一种用于编制现场可升级的系统软件的方法,所述的方法包括将系统软件代码形成为第一组符号库,所述每个库都包括具有相关功能的符号;将所述第一组符号库排列进第二组代码段;以及执行无线设备系统软件。
2.如权利要求1所述的方法,其特征在于,将所述第一组符号库排列进第二组代码段包括使符号库在代码段的起始处开始;所述的方法还包括在相应的起始地址处存储代码段的起始位置;维护代码段地址表,所述代码段地址表交叉引用代码段标识符与相应的起始地址。
3.如权利要求2所述的方法,其特征在于,将所述第一组符号库排列进第二组代码段包括从其各自的代码段起始地址开始偏移排列符号;而且所述方法还包括维护符号偏移地址表,所述符号偏移地址表交叉引用符号标识符与相应的偏移地址及相应的代码段标识符。
4.如权利要求1所述的方法,其特征在于,将系统软件代码形成为第一组符号库包括形成用于多个符号库的读写数据;而且其中将所述第一组符号库排列进第二组代码段包括将读写数据排列在共享的读写代码段中。
5.如权利要求1所述的方法,其特征在于,将系统软件代码形成为第一组符号库包括形成符号存取器代码;其中将第一组符号库排列进第二组代码段包括在第一代码段中排列符号存取器代码;而且所述方法还包括在存储器内的第一单元中存储符号存取器代码地址;其中执行作为系统软件的代码段包括访问符号存取器代码以响应对存储器内第一单元的引用;以及调用符号存取器代码以利用相应的符号标识符及相应的代码段标识符来计算所寻找的符号的地址。
6.如权利要求5所述的方法,其特征在于,调用符号存取器代码以计算所寻找的符号的地址包括访问代码段地址表和符号偏移地址表来计算所寻找的符号的地址。
7.如权利要求5所述的方法,其特征在于,在存储器内的第一单元中存储符号存取器代码地址包括在第一代码段中存储代码存取器代码地址。
8.如权利要求5所述的方法,其特征在于,将所述第一组符号库排列进第二组代码段包括在所述第一代码段中排列读写数据、代码段地址表、符号偏移地址表及符号存取器代码。
9.如权利要求8所述的方法,其特征在于,执行无线设备系统软件包括从所述第一代码段将读写数据、代码段地址表、符号偏移地址表、符号存取器代码及符号存取器代码地址调入到易失性读写存储器中;及从易失性读写存储器中访问读写数据、代码段地址表、符号偏移地址表、符号存取器代码及符号存取器代码地址。
10.如权利要求2所述的方法,其特征在于,在相应的起始地址处存储代码段的起始位置包括创建第二组连续编址的存储块;利用相应的代码段识别每个存储块;及在识别的存储块中存储代码段。
11.如权利要求10所述的方法,其特征在于,将所述第一组符号库排列进第二组代码段包括在第一代码段中排列第三组符号库;其中利用相应的代码段识别每个存储块包括用第一代码段识别第一存储块;及其中在识别的存储块中存储代码段包括在第一存储块中存储第三组符号库。
12.如权利要求10所述的方法,其特征在于,将第一组符号库排列进第二组代码段包括在第一代码段中排列第一符号库;其中利用相应的代码段识别每个存储块包括用第一代码段识别第一存储块;及其中在识别的存储块中存储代码段包括在第一存储块中存储第一符号库。
13.如权利要求10所述的方法,其特征在于,将第一组符号库排列进第二组代码段包括使代码段的大小能够容纳排列的符号库;并且其中创建第二组连续编址的存储块包括使存储块的大小能够容纳相应的代码段。
14.如权利要求13所述的方法,其特征在于,将第一组符号库排列进第二组代码段包括使代码段的大小能够容纳具有更大的大小的排列的符号库。
15.在无线通信设备中,一种用于编制现场可升级的系统软件的方法,所述的方法包括将系统软件代码形成为第一组符号库,每个库都包括具有相关功能的符号;将第一组符号库排列进第二组代码段,以使符号库在代码段的起始处开始;创建第二组连续编址的存储块;利用相应的代码段识别每个存储块;在识别的存储块中存储代码段,并使代码段的起始位置处于相应的起始地址处;维护代码段地址表,所述代码段地址表交叉引用代码段标识符与相应的起始地址;以及执行无线设备系统软件。
16.如权利要求15所述的方法,其特征在于,将系统软件代码形成为第一组符号库包括形成符号存取器代码;其中将第一组符号库排列进第二组代码段包括从其各自代码段起始地址处开始偏移排列每个符号,并包括在第一代码段中排列符号存取器代码;并且所述方法还包括维护符号偏移地址表,所述符号偏移地址表交叉引用符号标识符与相应的偏移地址及相应的代码段标识符;及在存储器的第一单元中保存符号存取器代码地址。
17.在无线通信设备中,一种现场可升级的系统软件结构,所述系统软件结构包括被区分成第二组代码段的可执行系统软件;及排列进第二组代码段的第一组符号库,每个库都包括具有相关功能的符号。
18.如权利要求17所述的系统软件结构,其特征在于,符号库从代码段的起始位置开始排列;并且所述系统软件结构还包括存储器,代码段的起始位置保存在所述存储器的相应起始地址处;及代码段地址表,其可交叉引用代码段标识符与存储器中的相应代码段起始地址。
19.如权利要求18的系统软件结构,其特征在于,符号被排列成从各自的代码段起始地址处开始偏移;并且所述系统软件结构还包括符号偏移地址表,其可交叉引用符号标识符与相应的偏移地址及相应的代码段标识符。
20.如权利要求17所述的系统软件结构,其特征在于,所述第二组代码段包括共享的读写段;并且其中所述第一组符号库包括排列在所述读写段中的读写数据。
21.如权利要求17所述的系统软件结构,其特征在于,所述第二组代码段包括第一代码段;其中第一组符号库包括排列在第一代码段中的符号存取器代码以计算所寻找的符号的地址;其中所述存储器包括存储在地址中的存取器代码;并且所述系统软件结构还包括用于存储符号存取器代码地址的第一单元。
22.如权利要求21所述的系统软件结构,其特征在于,所述符号存取器代码访问代码段地址表和符号偏移地址表以计算所寻找的符号的地址。
23.如权利要求22所述的系统软件结构,其特征在于,所述第一单元处于所述第一代码段内。
24.如权利要求22所述的系统软件结构,其特征在于,所述第一组符号库包括排列在所述第一代码段内的读写数据、代码段地址表、符号偏移地址表及符号存取器代码。
25.如权利要求24所述的系统软件结构,还包括易失性读写存储器;并且其中读写数据、代码段地址表、符号偏移地址表、符号存取器代码及符号存取器代码地址被从所述第一代码段调入到所述易失性读写存储器中用以在系统软件运行期间访问。
26.如权利要求17所述的系统软件结构,其特征在于,所述存储器包括第二组连续编址的存储块,每个存储块都存储有来自所述第二组代码段的相应代码段。
27.如权利要求26所述的系统软件结构,其特征在于,所述第二组代码段包括第一代码段;其中所述第一组符号库包括排列在所述第一代码段内的第三组符号库;其中所述存储器包括第一存储块用以存储所述第一代码段;并且其中所述第一存储块存储有所述第三组符号库。
28.如权利要求26所述的系统软件结构,其特征在于,所述第二组代码段包括第一代码段;其中所述第一组符号库包括排列在所述第一代码段中的第一符号库;其中所述存储器包括第一存储块用以存储所述第一代码段;并且其中所述第一存储块存储有第一符号库。
29.如权利要求26所述的系统软件结构,其特征在于,所述第二组代码段中的每个代码段都具有可容纳被排列的字符库的字节长度;并且其中每个连续编址的存储块都具有可容纳相应代码段的字节长度。
30.如权利要求29所述的系统软件结构,其特征在于,所述第二组代码段中的每个代码段都具有比容纳被排列的符号库所需要的长度更大的长度。
31.如权利要求17所述的系统软件结构,其特征在于,所述存储器为非易失性可写存储器。
32.在无线通信设备中,一种现场可升级系统软件结构,所述系统软件结构包括被区分成第二组代码段的可执行系统软件;排列在所述第二组代码段的起始位置处的第一组符号库,每个库都包括具有相关功能的符号;包括第二组连续编址的存储块的存储器,每个存储块都在起始地址处存储来自所述第二组代码段的相应代码段;代码段地址表,其可交叉引用代码段标识符与存储器中的相应代码段起始地址;以及符号偏移地址表,其可交叉引用符号标识符与存储器中相应的偏移地址及相应的代码段地址标识符。
全文摘要
本发明提供了一种用于在无线通信设备中编制现场可升级的系统软件的方法。该方法包括将系统软件代码形成为第一组符号库,每个库都包括具有相关功能的符号;将第一组符号库排列进第二组代码段,以使符号库在代码段的起始处开始;创建第二组连续编址的存储块;利用相应代码段识别每个存储块;在识别的存储块中存储代码段,并在相应的起始地址处存储代码段的起始位置;维护代码段地址表,所述代码段地址表交叉引用代码段标识符与相应的起始地址;以及执行无线设备系统软件。将系统软件代码形成为第一组符号库包括形成符号存取器代码。将第一组符号库排列进第二组代码段包括从其各自代码段起始地址处开始偏移排列每个符号,并包括在第一代码段中排列符号存取器代码。另外,该方法还包括维护符号偏移地址表,所述符号偏移地址表交叉引用符号标识符与相应的偏移地址及相应的代码段标识符;并且在存储器第一单元中存储符号存取器代码地址。
文档编号G06F9/445GK1535419SQ02814833
公开日2004年10月6日 申请日期2002年7月22日 优先权日2001年7月26日
发明者高里·拉贾拉姆, 保罗·泽肯多夫, 迭戈·卡普兰, 卡普兰, 泽肯多夫, 高里 拉贾拉姆 申请人:基奥赛拉无线公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1