在电子通信装置的编译系统平台上下载应用程序的方法

文档序号:6653103阅读:211来源:国知局
专利名称:在电子通信装置的编译系统平台上下载应用程序的方法
近年来,个人数字助理器(Personal Digital Assistance,简称PDA)的设计及发展,不仅朝着轻薄短小的市场趋势,大步迈进,其功能及用途的规划,更为满足消费大众的需求,而逐渐与一般电子消费产品相结合,成为一机多用途的电子通信产品。如与一般移动电话相结合,即成为一具备移动电话功能的个人数字助理器,如与调制解调器相结合,即成为一具备互联网传讯功能的个人数字助理器。诸如此类之构想,实不胜枚举。目前,在这些电子通信装置中,许多产品已具备可互联网上下载应用程序的功能,而这些电子通信装置的编译系统,在下载应用程序时,其处理方法一般可分为下列两种1.针对每个被下载的应用程序,均会提供多种可进行下载的连接地址,令编译系统可根据实际需要,自应用程序下载相对应的地址代码。
2.需在系统存储空间中预留一段区域,使编译系统要执行所下载的应用程序时,可将其拷贝至该区域,再予以执行。
前述传统电子通信装置的编译系统,在其对应用程序进行下载的作业过程中,其处理方法存在有若干不甚理想,且令人诟病的缺点。其中利用前述第一种方法,进行下载处理时,由于编译系统需为这些应用程序分别预留不同的地址段,令每一应用程序均可针对不同的地址段,生成相对应的地址代码,意即,若编译系统分配了十个地址段,供十个应用程序使用,则每一应用程序均需要针对该十个地址对应生成十种代码,以供编译系统在下载这些应用程序时使用,尤其是,在对所下载的应用程序进行后续整理时,若需将应用程序挪移到另外的地址段,尚需重新下载与该另外地址段相匹配的其它代码,造成应用程序的维护整理上极大的不便;另,利用前述第二种方法所下载的应用程序,由于每次执行时,均需将其拷贝至预留的区域上,再予以执行,导致应用程序执行的速度极慢。此外,因预留区域的空间大小有其限制,故所下载的应用程序之大小亦因而受限,无法太大。
有鉴于前述传统电子通信装置的编译系统,在其对应用程序进行下载的作业过程中,所存在的诸多缺点,发明人经过长久努力研究与实验,终于开发设计出本发明的一种在电子通信装置的编译系统平台上下载应用程序的方法,该方法使电子通信装置的编译系统,在其存储空间中划分出一块总括的区域,供被下载的应用程序使用,这样该应用程序可被存放至该区域内的任意地址,以充分且灵活地使用系统存储空间,并令该编译系统在下载应用程序时,针对直接寻址的操作指令,可直接将其修改成正确地址,进行寻址作业,而对于间接寻址的操作指令,则可藉软件中断(Software Interrupt,以下简称SWI)作为桥梁,替换这些指令,从而取得编译系统所需的正确地址,进行间接寻址作业。
本发明的目的是令编译系统仅需在存储空间中划分出一块总括的区域,供被下载的应用程序使用,使该应用程序可被存放在该区域内的任意地址,而无需预留一块专门用来执行下载应用程序的空间,如此,在执行应用程序时,即无需拷贝的动作,可有效提高执行效率及速度,同时,令所下载的应用程序不受该预留空间的大小限制。
本发明的另一目的是令编译系统无需为所下载的应用程序另外分配多个地址段,使这些应用程序宾安排不仅不受地址的约束,且在该总括区域容许的范围内,这些应用程序的下载个数亦可不受限制,大幅改善了使用上的方便性。
本发明的又一目的是令编译系统可将所下载的应用程序存放在该区域内的任意地址,故在对这些应用程序进行整理时,可更轻而易举,令空间的利用性发挥到最大。此外,由于本发明利用软件中断,故无需增加额外的硬件设备,即可轻易实现。
图示简单说明

图1所示为本发明的指令替换的流程示意图。
图2所示为本发明的中断服务的流程示意图。
本发明主要应用于电子通信装置中,用以在网络上或PC上下载应用程序的方法,该电子通信装置可为移动电话(cellar phone)、个人数字助理器(Personal Digital Assistant)或其它电子通信装置。该电子通信装置内设有一微处理器(Processor),该微处理器用以操控通信装置上的电子元件,令这些元件得以正常运作,以与互联网的服务器(server)或PC相连线,并通过该微处理器的编译系统,自网络上下载应用程序。本发明是令该编译系统可在其存储器中划分出一块总括的区域,供被下载的应用程序使用,使该应用程序可被存放至该区域内的任意地址,以充分且灵活地使用系统存储空间,并令该编译系统在下载应用程序时,针对直接寻址的操作指令,可直接将其修改成正确地址,进行寻址作业,而对于间接寻址的操作指令,则可藉软件中断(Software Interrupt,以下简称SWI)作为桥梁,替换这些指令,从而取得编译系统所需的正确地址,进行间接寻址作业。
在本发明的较佳实施例中,是以日本TOSHIBA公司设计生产的编号T900的微处理器为例,说明本发明的设计理念及作业流程如下在该微处理器所使用的编译系统的各指令中,与地址有关的指令有三类,即LD、JP及CALL等三类,其中LD类指令包含系统的全局变量及常数,JP类指令是用以直接修改IP(instruction pointer),来改变处理流程的指令,CALL类指则用以将当前IP压入堆栈(Stack),然后藉修改IP,令其指向至调用地址,再于返回主程序时,从堆栈中取回IP原值,恢复指向原来的地址,该JP类与CALL类指令间的差别,是在CALL类指令多了IP的保存及恢复。由于,这些指令对数据操作及处理流程有极大的影响,故若能妥善处理该三类指令,该编译系统即可顺利且正确地自网络上下载应用程序。
在本发明中,对于LD类指令,可在程序执行时,将全局变量及常数存放至固定的区域里。如此,即可很容易地对LD类指令进行妥善的处理。至于JP及CALL类的指令,依其寻址方式的不同,可区分为直接寻址(如JP 400000H、CALL 440000H...)及间接寻址(如JP XWA、CALL XHL...)等二种,其中直接寻址的指令,可在下载应用程序或搬移应用程序的程序中,直接将代码中的地址修改成正确的地址。且在下载过程中,令程序自动产生一索引文件,以用来记录该指令所寻找的地址,如此,即可令程序执行的速度较快。
由于,在该T900微处理器中,JP类与CALL类指令间,因CALL类指令需要返回主程序,故多了对IP的保存及恢复动作,故该微处理器的编译系统,将转换成汇编程序后,使该程序执行时先将参数逐一入栈,再执行CALL的动作,返回主程序后,接着再令这些参数逐一出栈。本发明即利用此一观念,在编译系统中提供一指令SWI,使藉由该指令SWI产生软件中断,该软件中断的执行过程是将IP压栈,并令标志暂存器(SR)压栈后,再将指标指向相对应的中断入口地址,且在返回主程序时,令该标志暂存器(SR)出栈后,再令IP出栈。
本发明对于间接寻址的指令,可利用暂存器的寻址方式,加以说明,该类指令有JP<CC>,MEM及CALL<CC>,MEM等,其中MEM表示暂存器,这些指令的长度为2~5个字节(byte)。由于在已链接好的二进制档的应用程序中,并藉由插入一个2字节长度的指令,来修改暂存器的内容,以达成修改这些地址的目的。故若本发明欲利用一具2字节长度的指令,来解决此一问题,即需先对其进行下列二项处理1、指令替换处理参阅图1所示,在应用程序的下载过程中,完成对所下载的二进制码进行扫描,当发现JP<CC>,MEM或CALL<CC>,MEM时,以SWI来替代,并于其后放入类型号,该类型号是本发明预先设定的编号,以藉不同的类型号定义不同的指令,使本发明在执行后续处理时,知道原来的操作模式。至于,空余的字节则以NOP填入。
2、中断服务处理参阅图2所示,提供中断服务函数,令程序执行到SWI后,跳转至对应的中断入口地址,执行该服务函数,并根据类型号,取出对应暂存器内的内容,将其修改成正确的值,如加上一偏移量,该偏移量可根据应用程序被置放的地址算出,再将该值作为SWI的返回地址,放入堆栈内。如此,在中断返回时,就会跳转至本发明所需的地址上。如果是CALL类指令,本发明尚需在堆栈里先插入CALL的返回地址,如没修改前在堆栈内SWI的原返回地址上加1,或可根据类型号计算出。
本发明在前述指令替换处理的流程中,主要是先对所下载的二进制代码进行扫描,并依下列步骤,再参阅图1所示,进行相关指令的替换(1.1)读取一条指令;(1.2)判断该指令的寻址方式是否系绝对跳转或绝对调用,即是否是属直接寻址,若是,则继续下列步骤,否则,进入步骤(1.4);(1.3)若是直接寻址,即将该指令所要跳转的地址直接修改成正确地址,并进入步骤(1.8);(1.4)若不是直接寻址,则再判断是否是暂存器之间接跳转或调用?若是,则继续下列步骤,否则,进入步骤(1.8);(1.5)若是暂存器的间接寻址,则把不同的指令转换成不同的类型号,该类型号是本发明预先设定的编号,以藉不同的类型号定义不同的指令;(1.6)将指令的第一个字节改成软件中断的标记SWI;(1.7)将指令的第二个字节改成类型号;(1.8)判断对该二进制代码的扫描是否结束?若尚未结束,则返回步骤(1.1),取下一条指令,直到扫描结束为止,否则,即结束替换指令的程序。
本发明在前述中断服务处理的流程中,主要是藉提供一中断服务函数,在程序执行到SWI后,跳转至对应的中断入口,并依下列步骤,再参阅图2所示,执行该中断服务函数(2.1)首先,将所有暂存器的内容保存至自定义的变量中,意即可将其存放至存储空间中,以便保持中断返回后的桯序,仍能正确运行;(2.2)将标志暂存器(SR)弹出堆栈,以保存该值,以便在后续程序中回复,然后,再将中断返回地址弹出堆栈,以便在后续程序中修改成新的返回地址入栈;(2.3)读取出类型号;(2.4)根据该类型号,判断指令是否是属CALL类指令?若是,则继续下列步骤,否则,进入步骤(2.6);(2.5)若是CALL指令,根据前述说明,因CALL指令需在执行完毕后返回原程序,故,此时需将其返回地址,该地址即原先没修改前其在堆栈内SWI的返回地址加1,并压入堆栈,予以保存;(2.6)根据类型号读取出对应暂存器内值,并将其修改为正确地址,即加上一偏移量,该偏移量可根据应用程序所放置的地址计算出;(2.7)将修改后的值作为SWI的返回地址,压入堆栈内,以中断返回时,程序可跳转至该地址,继续执行,相当完成了JP或CALL指令,亦完成了地址的正确修改;(2.8)将标志暂存器(SR)内容压入堆栈,此时,由于该标志暂存器是未经修改的标志暂存器,故可确保标志暂存器内容值的正确性;(2.9)最后,再将步骤(2.1)中所保存的暂存器内容恢复原值,意即将该原值从变量中再传回暂存器,以确保该暂存器中的内容在经过中断后能回复至未经改变的原值,并结束中断,返回主程序。
如此,该电子通信装置的编译系统仅需在存储空间中划分出一块总括的区域,令所下载的应用程序被存放至该区域内的任意地址,而无需预留一块专门空间,执行所下载的应用程序。如此,在执行应用程序时,即无需拷贝的动作,可有效提高执行效率及速度,同时,令所下载的应用程序不受该预留空间的大小限制。另,由于该编译系统无需为所下载的应用程序另分配多个地址段,故这些应用程序的安排不仅不受地址的约束,且在该总括区域的范围内,应用程序的下载个数亦不受限制,大幅改善了使用上的方便性。此外,由于该编译系统是利用软件中断方式,完成间接寻址作业,故完全无需增加额外的硬件设备,即可轻易实现。
以上所述,仅为本发明所列举的最佳具体实施例,但本发明的特征并不局限于此,任何熟悉本技术领域者,在本发明领域内,可轻易思及的变化或修饰,都应涵盖在以下本发明的权利要求中。
权利要求
1.在电子通信装置的编译系统平台上下载应用程序的方法,该方法是在电子通信装置与互联网的服务器相连线,并通过该电子通信装置上的微处理器的编译系统,自网络上下载应用程序时,可令该编译系统在其存储器中划分出一块总括的区域,供被下载的应用程序使用,使该应用程序可被存放至该区域内的任意地址,并令该编译系统在下载应用程序时,针对直接寻址的操作指令,直接将其修改成正确地址,再进行寻址作业,而对于间接寻址的操作指令,则可藉一软件中断作为桥梁,替换这些指令,从而取得该编译系统所需的正确地址,进行间接寻址作业。
2.如权利要求1所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,直接寻址的指令,可在下载应用程序的程序中,直接将代码中的地址修改成正确的地址,且令程序自动产生索引文件,以用来记录该指令所寻找的地址。
3.如权利要求1所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,对于间接寻址的指令,可在应用程序的下载过程中,完成对所下载的二进制码进行扫描,当发现间接寻址的指令时,以该软件中断来替代,并于其后放入一类型号,以在执行后续处理时,知道原来的操作模式。
4.如权利要求3所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,当程序执行到该软件中断后,将跳转至对应的中断入口地址,执行一中断服务函数,并根据该类型号,取出对应暂存器内的内容,将其修改成正确的值再将该值作为该软件中断的返回地址,放入堆栈内,如此,在中断返回时,就会跳转至所需的地址上。
5.如权利要求4所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,该正确值是将自该对应暂存器内所取出的内容,加上一偏移量,该偏移量可根据应用程序被置放的地址算出。
6.如权利要求3所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,在对间接寻址的指令进行替换处理时,先对所下载程序的二进制代码进行扫描,并依下列步骤,进行相关指令的替换首先,读取一条指令;判断该指令的寻址方式是否是绝对跳转或绝对调用?若是直接寻址,即将该指令所要跳转的地址直接修改成正确地址,并判断对该二进制代码的扫描是否结束?若尚未结束,则重新读取下一条指令,直到扫描结束为止,否则,即结束替换指令的程序。
7.如权利要求6所述的在电子通信装置之编译系统平台上下载应用程序的方法,其特征在于,若不是直接寻址,则再判断是否是暂存器的间接跳转或调用;若是暂存器的间接寻址,则把不同的指令转换成不同的类型号,该类型号是本发明预先设定的编号,以藉不同的类型号定义不同的指令;将指令的第一个字节改成软件中断的标记;将指令的第二个字节改成类型号;最后,判断对该二进制代码的扫描是否结束?若尚未结束,则重新读取取下一条指令,直到扫描结束为止,否则,即结束替换指令的程序。
8.如权利要求4所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,在对间接寻址的指令进行中断服务处理时,是藉提供一中断服务函数,在程序执行到该软件中断后,跳转至对应的中断入口,并依下列步骤,执行该中断服务函数首先,将所有暂存器的内容保存至自定义的变量中,意即可将其存放至存储空间中,以便保持中断返回后的桯序,仍能正确运行;再将标志暂存器弹出堆栈,以保存该值,以便在后续程序中回复,然后,再将中断返回地址弹出堆栈,以便在后续程序中修改成新的返回地址入栈;读取出类型号;并根据该类型号,判断指令是否是属一需返回主程序的指令,若是,即将其返回地址,该地址系原先没修改前其在堆栈内该软件中断的返回地址加1,并压入堆栈,予以保存;再根据类型号读取出对应暂存器内的值,并将其修改为正确地址,即加上一偏移量,该偏移量可根据应用程序所放置的地址计算出;将修改后的值作为该软件中断的返回地址,压入堆栈内,以中断返回时,程序可跳转至该地址,继续执行;最后,将标志暂存器内容压入堆栈,并将原保存的暂存器内容恢复原值,并结束中断,返回主程序。
9.如权利要求8所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,若判断指令非属一需返回主程序的指令,则根据该类型号读取出对应暂存器内的值,并将其修改为正确地址,即加上一偏移量,该偏移量可根据应用程序所放置的地址计算出;将修改后的值作为该软件中断的返回地址,压入堆栈内,以便在中断返回时,程序可跳转至该地址,继续执行;最后,将标志暂存器内容压入堆栈,并将原保存的暂存器内容恢复原值,并结束中断,返回主程序。
10.如权利要求3或4所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,该类型号系预先设定的编号,以藉不同的类型号定义不同的指令。
11.如权利要求1、2、3或4所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,该电子通信装置为移动电话。
12.如权利要求1、2、3或4所述的在电子通信装置的编译系统平台上下载应用程序的方法,其特征在于,该电子通信装置为一个人数字助理器。
全文摘要
本发明涉及在电子通信装置的编译系统平台上下载应用程序的方法,该方法令电子通信装置的编译系统,在其存储空间中划分出一块总括区域,供被下载的应用程序使用,使该应用程序可被存放至该区域内的任意地址,以充分且灵活地使用系统存储空间,并令该编译系统在下载应用程序时,针对直接寻址的操作指令,可直接将其修改成正确地址,进行寻址作业,而对于间接寻址的操作指令,则可藉软件中断作为桥梁,替换这些指令,从而取得编译系统所需的正确地址,进行间接寻址作业。
文档编号G06F12/02GK1371053SQ01104758
公开日2002年9月25日 申请日期2001年2月22日 优先权日2001年2月22日
发明者赖振兴, 樊晓龙, 武劲松 申请人:英业达集团(南京)电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1