CN102023843A - 函数的调用方法、装置及智能卡 - Google Patents
函数的调用方法、装置及智能卡 Download PDFInfo
- Publication number
- CN102023843A CN102023843A CN2010105592695A CN201010559269A CN102023843A CN 102023843 A CN102023843 A CN 102023843A CN 2010105592695 A CN2010105592695 A CN 2010105592695A CN 201010559269 A CN201010559269 A CN 201010559269A CN 102023843 A CN102023843 A CN 102023843A
- Authority
- CN
- China
- Prior art keywords
- function
- interface function
- access parameter
- address
- call
- 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.)
- Granted
Links
Images
Landscapes
- Telephone Function (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明的实施例公开了一种函数的调用方法、装置及智能卡,涉及数据信息领域,解决了接口函数的存储空间受限的技术问题。本发明实施例执行所述调用方法的芯片包括至少两个存储区以及所述至少两个存储区共用的公共区,所述至少两个存储区之间共用逻辑地址;所述调用方法包括:获取第一存储区发送的接入参数,并在公共区的索引表中根据所述接入参数获取与所述接入参数对应的接口函数的索引号;执行跳转函数以根据所述索引号确定所述接入参数对应的接口函数在第二存储区中的调用地址;根据所述调用地址调用所述接口函数;在完成所述接口函数的调用后返回所述跳转函数,以跳转回第一存储区。本发明实施例主要适用于调用函数的场景。
Description
技术领域
本发明涉及数据信息领域,尤其涉及一种函数的调用方法,一种函数调用的装置及一种智能卡。
背景技术
存储器结构在物理上分为程序存储区和数据存储区。随着技术的不断进步,程序存储区和数据存储区的空间都在不断扩大,一般对于8位的CPU芯片来讲,最大的寻址空间只有64K,然而目前有不少存储器已经扩大到超过64K,故而为了应对存储空间变大带来的寻址问题,出现了一种对存储块进行分块(BANK)管理的芯片。
如图1所示,是一种采用分BANK管理方式的共用高32K的芯片。芯片程序存储器由64K的程序存储区(地址空间0x0000H-0xFFFFH)和32K大小的数据存储区(0x8000H-0xFFFFH)组成。由图1可知,32K的数据存储区和程序存储区的高32K共用从0x8000H-0xFFFFH的地址段。其中COMMON区的逻辑地址是从0x0000H-0x7FFFH地址段的低32K,BANK1和BANK2占用高32K。COMMON区是BANK1和BANK2这两个BANK的公用区域,即COMMON区可以和BANK1,BANK2分别组成64K的连续空间。两个BANK之间不能直接互相访问,必须通过调用COMMON里的程序才能实现相互的访问。
程序存储区与数据存储区同时存在但却截然分开,程序存储区用于存放程序,而数据存储区是用于运行程序。数据存储区在运行程序时势必需要操作程序存储区中的接口函数,然而,基于上述分BANK芯片的特点,数据存储区BANK2只能直接访问程序存储区低32K地址COMMON的内容,当数据存储区访问高32KBANK1的程序时,目前一般采用的方案是:将所有数据存储区需要调用的接口函数放到COMMON区,以便数据存储区的使用。
但是,在实现上述方案的过程中,发明人发现现有技术中至少存在如下问题:
由于智能卡芯片支持的应用种类的增多,所需的代码空间也随之扩大,所以很难将所有的接口函数都放到低32K的COMMON区。并且,一旦有某个接口函数没有存放在COMMON区,那么数据存储区将无法通过该接口函数调用相应程序使用。
发明内容
本发明的实施例提供一种函数的调用方法,装置及智能卡,可解决接口函数的调用问题,使接口函数的存放位置不受限制,进而扩大存放接口函数的空间。
为达到上述目的,本发明的实施例采用如下技术方案:
一种函数的调用方法,执行所述调用方法的芯片包括至少两个存储区以及所述至少两个存储区共用的公共区,所述至少两个存储区之间共用逻辑地址;
所述调用方法包括:
获取第一存储区发送的接入参数,并在公共区的索引表中根据所述接入参数获取与所述接入参数对应的接口函数的索引号;
执行跳转函数以根据所述索引号确定所述接入参数对应接口函数在第二存储区中的调用地址;
根据所述调用地址调用所述接口函数;
在完成所述接口函数的调用后返回所述跳转函数,以跳转回第一存储区一种函数的调用装置,运用所述调用装置的芯片包括至少两个存储区以及所述至少两个存储区共用的公共区,所述至少两个存储区之间共用逻辑地址;
所述调用装置包括:
获取单元,用于获取第一存储区发送的接入参数,并在公共区的索引表中根据所述接入参数获取与所述接入参数对应的接口函数的索引号;
确定单元,用于执行跳转函数以根据所述索引号确定所述接入参数对应接口函数在第二存储区中的调用地址;
跳转单元,根据所述调用地址调用所述接口函数;还用于在完成所述接口函数的调用后返回所述跳转函数,以跳转回第一存储区。
一种包括上述函数的调整装置的智能卡。
本发明实施例提供的技术方案根据接入参数获取索引表中的索引号,并在确定对应该索引号的接口函数在程序存储区中的调用地址;然后跳转到所述函数在程序存储区的调用地址并调用所述接口函数,并在完成所述接口函数的调用后返回所述跳转函数,以跳转回数据存储区,由于可以通过跳转的方式访问接口函数,使得公共区不用存放太多的接口函数,而只是存储相应的调用地址即可,节约了较多的COMMON区的存储空间。故而本发明实施例能够解决了现有技术中因为COMMON区存储容量受限,导致的只能将部分接口函数存放在COMMON区的技术问题,进而取得了可扩大存储接口函数的存储空间,使接口函数的调用不受存放位置的限制,无须经过复杂的设计对接口函数的存放位置进行特殊处理的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种分BANK管理的芯片的结构示意图;
图2为本发明实施例1中函数的调用方法的流程图示意图;
图3为本发明实施例2中函数的调用方法的流程图示意图;
图4为本发明实施例2中一种获取接入参数的方法的流程示意图;
图5为本发明实施例2中另一种获取接入参数的方法的流程示意图;
图6为本发明实施例2中跳转函数的实现方法的流程示意图;
图7为本发明实施例3中程序存储区共用多BANK的芯片的结构示意图;
图8为本发明实施例4中函数的调用装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。并且,以下各实施例均为本发明的可选方案,实施例的排列顺序及实施例的编号与其优选执行顺序无关。
实施例1
本实施例提供了一种函数的调用方法,执行所述调用方法的芯片包括至少两个存储区以及所述至少两个存储区共用的公共区,所述至少两个存储区之间共用逻辑地址;下面以其中一个存储区为运行程序的数据存储区、另一个存储区为存储程序的程序存储区为例进行说明;该方法如图2所示,主要包括:
步骤101,获取数据存储区发送的接入参数,并在索引表中根据所述接入参数获取对应所述接入参数对应的接口函数的索引号。
其中,该接入参数可理解为用户欲调用的接口函数的一种代表形式,包括了欲调用函数的参数信息用来确定具体要调用的接口函数,在本实施例以及下述各实施例中,该用户欲调用的接口函数可以用第一类接口函数的标识代表,也可以用第二类接口函数的地址代表;并且,该索引号也可以理解成为一种标识(例如序号),以便用于指示出具体是哪个接口函数。
步骤102,执行跳转函数以根据所述索引号确定所述接入参数对应的接口函数在程序存储区中的调用地址。
步骤103,跳转到所述函数在程序存储区的调用地址并调用所述接口函数。
步骤104、在完成所述接口函数的调用后返回所述跳转函数,以跳转回数据存储区。
本发明实施例提供的技术方案根据接入参数获取索引表中的索引号,并在确定对应该索引号的接口函数在程序存储区中的调用地址;然后跳转到所述函数在程序存储区的调用地址并调用所述接口函数,并在完成所述接口函数的调用后返回所述跳转函数,以跳转回数据存储区,由于可以通过跳转的方式访问接口函数,使得公共区不用存放太多的接口函数,而只是存储相应的调用地址即可,节约了较多的COMMON区的存储空间。故而本发明实施例能够解决了现有技术中因为COMMON区存储容量受限,导致的只能将部分接口函数存放在COMMON区的技术问题,进而取得了可扩大存储接口函数的存储空间,使接口函数的调用不受存放位置的限制,无须经过复杂的设计对接口函数的存放位置进行特殊处理的技术效果。
实施例2
本实施例具体结合一种数据存储区为位于高32K地址段的一个分块,称为BANK2,与该数据存储区共用高32K地址段的程序存储区也是一个分块,称为BANK1,低32K地址段是COMMON区的存储器(可参考图1所示的芯片)结构为例,介绍一种函数的调用方法,如图3所示,该方法包括如下步骤:
步骤201,获取数据存储区发送的接入参数,并在索引表中根据所述接入参数获取对应所述接入参数对应的接口函数的索引号;
其中,上述函数列表根据接入参数对应的接口函数的索引号对应记录有所述接口函数的调用地址;
举例来说,可在COMMON区建立一个包含外部常用接口函数列表BASE,将接口函数按顺序排列,每个接口函数有相应的序号。目的是可以正确进入到程序存储区中的具体函数。由此可知,函数列表为BASE,接入参数对应的接口函数的索引号为接口函数的序号,接口函数的调用地址为该接口函数在存储器中的绝对地址。相应地,该BASE的形式为:
序号1 函数1的绝对地址;
序号2 函数2的绝对地址;
序号3 函数3的绝对地址。
举例来说,建立一个可以作为上述BASE表的索引表FUNCLIST。在FUNCLIST上对上述BASE中的接口函数的序号做相应记录,这样数据存储区在调用程序存储区接口函数的时候可直接定位到该FUNCLIST表中的相应接口函数项即可。由此可知,该索引表为FUNCLIST,接入参数对应的接口函数的索引号具体为接入参数的序号,相应地,该FUNCLIST的形式如下:
地址1 序号1
地址2 序号2
地址3 序号3
........
地址n-1 序号0xFF
地址n 序号0x FF
需要说明的是:因为32K的地址段最多可以有0-255bit,故而当遇到其他地址(可以是非常用函数地址)时序号皆为对应255bit的0xFF。
简单来说,当知道接入参数的地址时,可以根据FUNCLIST获取到该接入参数对应的接口函数的索引号,即该接口函数的序号,若该序号存在于BASE表中,则可根据该序号在BASE表中获知到接口函数的绝对地址,进而调用该接口函数。
在本实施例中,所述接入参数对应的接口函数可以为第一类接口函数,也可以为第而类接口函数,那么接入参数则可以是第一类接口函数的标识,也可以是第二类接口函数的地址,故而下面将根据这两种情况如何获取接入参数的地址的具体执行分别进行描述。为了便于理解,在本实施例中,该第一类接口函数具体为常用接口函数;该第二类接口函数具体为非常用接口函数。
在用户需要调用的某一接口函数时,可根据已公开的常用函数列表获取该需要调用的接口函数是否存在于BASE表中,故而在调用该函数时,可直接输入该需要调用的常用接口函数的标识(本实施例中该标识具体为序号)即可。即:当所述接入参数是第一类接口函数的标识时,如图4所示,步骤201具体包括:
401,在用户输入需要调用的常用接口函数的序号后,芯片根据该常用接口函数的序号和补丁规则获取所述常用接口函数在索引表FUNCLIST中的地址。
其中,该补丁规则用于根据常用接口函数的标识映射出所述常用接口函数的地址;具体形式可如下:
接口函数地址=索引表的起始地址+步长*接口函数序号
其中,索引表的起始地址在建表时便可知,步长根据编辑器的性质设定,故而索引表的起始地址和步长均已知量;接口函数序号是用户输入的,故而也是已知量。
402,芯片根据所述常用接口函数在索引表FUNCLIST中的地址获取索引表FUNCLIST中对应所述地址的所述常用接入参数对应的接口函数的索引号(该索引号在本实施例中为接口函数的序号)。
例如:用户需要调用接口函数X,用户从常用接口函数列表中获知该X为常用函数,且序号为3。用户输入序号3,芯片根据该序号3和上述补丁规则,可以计算出该常用接口函数X的地址,设该计算出的地址为地址3。根据FUNCLISIT表可知,该地址3在FUNCLIST表中对应的序号为3。故而当接入参数为常用接口函数X的序号3时,在FUNCLIST表中获取的相应索引号为序号3。
在需要调用的接口函数为非常用接口函数时,用户需要输入该非常用接口函数的地址,在本实施例中,该地址为绝对地址,即当所述接入参数是非常用接口函数的地址时,参照图5,步骤201具体包括:
501,接收人工输入的非常用接口函数的绝对地址;
502,根据所述非常用接口函数的绝对地址在索引表FUNCLIST中获取对应所述地址的所述非常用接口函数的序号。
例如:用户需要调用的非常用接口函数Y的绝对地址为地址n,根据FUNCLIST表可知,该地址n在FUNCLIST表中对应的序号为0xFF。故而当接入参数为非常用接口函数Y的绝对地址n时,在FUNCLIST表中获取的相应所以号为序号0xFF。
在这里说明一点:在获取到FUNCLIST表中的索引号后,剩下的主要是需要根据索引号完成从BASE表到FUNCLIST表之间的跳转过程,以便到BASE表中根据BASE表中的提供的绝对地址调用函数。该跳转过程可通过跳转函数TABLE实现。
进入跳转函数TABLE后,跳转函数TABLE将实现从FUNCLIST表进入到BASE表相应位置的功能,相当于连接这两个表格之间的关键纽带。进入和退出该跳转函数都需要借助于芯片的BANK切换寄存器BSR(Boundary ScanRegister,周边扫描寄存器)进行相应的切换。下面对该寄存器做简单介绍:
当BSR指向某一BANK时,该BANK将和COMMON区形成一个连续的存储空间。上电之后,BSR默认选择一个BANK,即把当前BANK和COMMON区形成了一个连续的64K空间。当BSR指向另外一个BANK时,该另外一个BANK和COMMON区就形成了一个连续的64K存储空间。
下面步骤202和步骤203为具体如何实现从FUNCLIT表跳转到BASE表的过程,也可以理解为TABALE函数的具体实现过程。
步骤202,根据所述接入参数对应的接口函数的索引号确定对应所述接入参数的接口函数是否存在于函数列表中;如果确定对应所述接入参数的接口函数存在于所述函数列表中,则执行步骤203;如果确定对应所述接入参数的接口函数不存在于所述函数列表中,则执行步骤204。
在进入跳转函数TABLE后,一般需要执行BANK间的切换,如从当前数据存储区BANK2切换到程序存储区BANK1。具体地,如图6所示,包括:
601,判断所述接入参数对应的接口函数的索引号是否超出所述函数列表的索引号的范围;如果所述接入参数对应的接口函数的索引号未超出所述函数列表的索引号的范围则确定对应所述接入参数的接口函数存在于所述函数列表中,可执行步骤203中对应过程;否则确定对应所述接入参数的接口函数不存在于所述函数列表中,可执行步骤204中对应过程。
在本实施例中,因为是以32K地址段的BANK为例,故而索引号的范围为0-255,即0x00-0xFF,所以根据上述过程可知,不在BASE表中的非常用接口函数的序号皆为0xFF,因此当序号为0xFF时,即代表索引号超出BASE表索引号范围,故而可确定接口函数不存在于BASE表中,即为非常用接口函数;否则代表索引号未超出BASE表索引号范围,可确定接口函数存在于所述BASE表中。
例如:在接入参数为接口函数Y的绝对地址,相应的获取到的接口函数Y的序号为0xFF时,则判断该0xFF是否超出BASE的序号范围255,即判断该0xFF是否为0xFF,判定结果为是,则代表该接口函数Y为非常用接口函数,故而执行步骤204。
又例如:在接入参数为接口函数X的序号,相应获取到的接口函数X的序号为0x83时,则判断该0x83是否超出BASE的序号范围255,即判断该0xFF是否为0xFF,判定结果为否,则代表该接口函数X为常用接口函数,确定接口函数X(即对应所述接入参数的接口函数)存在于函数列表中,可通过BASE表调用,故而执行步骤203。
步骤203,进入所述函数列表,并调用所述函数列表中对应所述索引号的接口函数。
具体地,如图6所示,步骤203可通过如下方式实现:
602,根据所述索引号进入所述函数列表获取对应所述索引号的接口函数的调用地址;
603,根据所述地址调用所述接口函数。
例如:根据序号3进入BASE表中,进而获取到序号3对应的接口函数的绝对地址,寻址到该绝对地址即可调用常用接口函数X。函数调用结束后将返回到步骤202,即返回到跳转函数TABLE,目的是返回到数据存储区,以便等待执行下一任务。
步骤204,根据所述接入参数中的函数地址调用对应的接口函数。
当芯片经过步骤202后,确定用户需要调用的接口函数不在BASE表中时,代表该接口函数是非常用接口函数。因为当为非常用函数时,用户输入的接入参数为该非常用接口函数的绝对地址,故而可利用接入参数中用户提供的绝对地址调用该接口函数。
如图6所示,步骤204具体可通过如下方式实现:
604,直接采用步骤201中作为接入参数输入的绝对地址调用对应的非常用接口函数。
函数调用结束后将返回到步骤202,即返回到跳转函数TABLE,目的是返回到数据存储区,以便等待执行下一任务。
本实施例提供的方案,通过在公共(COMMON)区建立函数列表和索引表的方案解决了数据存储区进入到COMMON区后可以调用程序存储区中存储的包括在高32K地址段中的接口函数,通过跳转函数的应用解决了函数列表到索引表之间相互跳转,以及当接口函数调用结束返回后,还可通过该跳转函数返回到数据存储区的技术问题,进而取得了在分块管理的芯片中,可调用存储于任何程序存储区BANK中的接口函数,使接口函数的存放位置不受限制,扩大存放接口函数的空间的有益效果。
实施例3
实施例2中提供的芯片存储器的结构是:以与数据存储区的BANK(即BANK2)共用地址段的程序存储区仅包含一个程序块(即仅包含BANK1)的情况下进行描述的,本实施例将具体结合程序存储区包含至少两个BANK共用一个地址段的芯片结构为例,提供的函数的调用方法。如图7所示,在该芯片中BANK3与BANK1同为程序存储区的程序块,且BANK3、BANK1与数据存储区的BANK2共用高32K地址段,即地址0x8000-0xFFFF。本实施例与实施例2执行起来的不同之处在于,还包括如下过程:
A、获取所述接入参数对应接口函数所在程序存储区的标识,所述标识用于指示所述接入参数适用的程序存储区,即用于指示接口函数存储在BANK1中,还是BANK3,或COMMON区中;;
B、根据所述程序存储区的标识确定所述接入参数对应接口函数所在的存储区,并切换到所述标识对应的程序存储区。
在图7所示的情况下,首先需要定位数据存储区在整个芯片的存储体系中的结构,具体设置在哪个BANK,数据存储区在调用程序存储区中接口函数的时候,需要将接口函数所在的BANK的BANK号也作为一个参数送入到跳转函数TABLE,此时,跳转函数TABLE在开始执行时,要先切换到对应BANK号的BANK,并且返回的时候仍然要切换回数据存储区所在的BANK。
本发明实施例中的BANK号可以单独作为一个参数送入到跳转函数TABLE;BANK号可以作为本发明实施例中接入参数的中一部分送入到跳转函数TABLE。
例如:用户知道需要调用的接口函数存储在BANK3中,故而将BANK3的块标识3输入到芯片中,芯片获取到该块标识3的时机可以是与接入参数一起,也可以在获取到索引号之前,在获取到接入参数和所述块标识后,可按照实施例2的步骤201的方法继续执行,直到在进入跳转函数TABLE后,执行BANK间切换过程时,切换到所述块标识3对应的BANK3。在接口函数调用完后,返回原来所在的数据存储区的BANK。
本实施例提供的方法,可解决当存在至少两个程序块共用一个地址段时,函数的调用问题,不仅可实现在切换BANK时正确调用的接口函数,而且还可保证接口函数进入和退出的时候正确切换到相应的BANK,此外,调用接口函数的过程中,还可取得保证常用接口函数通过BASE表调用,同时能够兼顾非常用函数通过绝对地址调用的正确性的技术效果。
实施例4
本实施例提供一种函数的调用装置,运用所述调用装置的芯片包括运行程序的数据存储区、存储程序的程序存储区、以及程序存储区和数据存储区共用的公共区,所述数据存储区和程序存储区之间共用逻辑地址;如图8所示,该装置包括:获取单元81,确定单元82,跳转单元83。
其中,获取单元81用于获取数据存储区发送的接入参数,并在索引表中根据所述接入参数获取对应所述接入参数对应的接口函数的索引号;确定单元82执行跳转函数以根据所述索引号确定所述接入参数对应接口函数在程序存储区中的调用地址;跳转单元83用于跳转到所述函数在程序存储区的调用地址并调用所述接口函数;还用于在完成所述接口函数的调用后返回所述跳转函数,以跳转回数据存储区。
本发明实施例中确定单元82具体实现时完成如下功能:首先确定单元82根据所述接入参数对应的接口函数的索引号确定对应所述接入参数的接口函数是否存在于函数列表中;然后确定单元82在确定对应所述接入参数的接口函数存在于所述函数列表中时,在所述函数列表中获取索引号对应接口函数的调用地址。
相应地,跳转单元83还用于:当所述确定单元82确定对应所述接入参数的接口函数不存在于所述函数列表中时,根据所述接入参数中的函数地址调用对应的接口函数。
在本实施例中,获取单元81包括:第一类函数获取模块811,第二类函数获取模块812。
其中在,当所述接入参数是第一类接口函数的标识时,所述接入参数对应的接口函数为第一类接口函数,第一类函数获取模块811,用于根据第一类接口函数的标识和补丁规则获取所述第一类接口函数在索引表中的地址,并根据所述第一类接口函数在索引表中的地址获取索引表中对应所述地址的所述第一类接口函数的索引号;其中,所述补丁规则用于根据第一类接口函数的标识映射出所述第一类接口函数的地址。
当所述接入参数是第二类接口函数的地址时,所述接入参数对应的接口函数为第二类接口函数,第二类函数获取模块812,用于接收人工输入的所述第二类接口函数的地址,并根据所述第二类接口函数的地址在索引表中获取对应所述地址的所述第二类接口函数的索引号。
并且,确定单元82包括:判断模块821。
判断模块821,用于判断所述接入参数对应的接口函数的索引号是否超出所述函数列表的索引号的范围,当所述接入参数对应的接口函数的索引号未超出所述函数列表的索引号的范围时,确定对应所述接入参数对应的接口函数存在于所述函数列表中;否则确定对应所述接入参数的接口函数不存在于所述函数列表中。
相应地,跳转单元83包括:进入模块831。
进入模块831,用于当所述确定单元82确定对应所述接入参数的接口函数存在于函数列表中时,根据所述索引号进入所述函数列表获取对应所述索引号的接口函数的调用地址,并根据所述调用地址调用所述接口函数。
另外,如图8所示,在本实施例中,该装置还包括:存储单元84。
存储单元84,用于存储所述索引表和函数列表;所述函数列表根据接口函数的索引号对应记录有所述接口函数的调用地址。
如果运用所述调用装置的芯片中包括多个(两个及以上)程序存储区,为了能够准确找到接口函数,如图8所示,本发明实施例中的调用装置还包括:切换单元85。
在具有多个程序存储的情况下,本发明实施例中的获取单元81还用于在执行跳转函数以根据所述索引号确定所述接入参数对应接口函数在程序存储区中的调用地址之前,获取所述接入参数对应接口函数所在程序存储区的标识,所述标识用于指示所述接入参数适用的程序存储区;
切换单元85,用用于根据所述程序存储区的标识确定所述接入参数对应接口函数所在的存储区,并切换到所述标识对应的程序存储区。
所述切换单元85,还用于当跳转单元83执行完函数调用后,返回到原先数据存储区中的BANK。
本发明实施例提供的技术方案根据接入参数获取索引表中的索引号,并在确定对应该索引号的接口函数在程序存储区中的调用地址;然后跳转到所述函数在程序存储区的调用地址并调用所述接口函数,并在完成所述接口函数的调用后返回所述跳转函数,以跳转回数据存储区,由于可以通过跳转的方式访问接口函数,使得公共区不用存放太多的接口函数,而只是存储相应的调用地址即可,节约了较多的COMMON区的存储空间。故而本发明实施例能够解决了现有技术中因为COMMON区存储容量受限,导致的只能将部分接口函数存放在COMMON区的技术问题,进而取得了可扩大存储接口函数的存储空间,使接口函数的调用不受存放位置的限制,无须经过复杂的设计对接口函数的存放位置进行特殊处理的技术效果。
实施例5
本实施例提供一种智能卡,该智能卡包括实施例4所述的函数的调用装置。
本实施例提供的智能卡,可根据接入参数获取索引表中的索引号,并在确定对应该索引号的接口函数存在于函数列表中后,通过函数列表进而调用接口函数,从而扩大存储接口函数存储空间的方案,解决了现有技术中因为COMMON区存储容量受限,导致的只能将部分接口函数存放在COMMON区的技术问题,进而取得了可扩大存储接口函数的存储空间,使接口函数的调用不受存放位置的限制,无线经过复杂的设计对接口函数的存放位置进行特殊处理的技术效果。
本实施例提供的函数的调用装置并不仅可包含在智能卡中,任何一种可以进行函数调用的设备都可以集合本发明实施例提供的函数的调用装置。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台设备执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (20)
1.一种函数的调用方法,其特征在于,执行所述调用方法的芯片包括至少两个存储区以及所述至少两个存储区共用的公共区,所述至少两个存储区之间共用逻辑地址;
所述调用方法包括:
获取第一存储区发送的接入参数,并在公共区的索引表中根据所述接入参数获取与所述接入参数对应的接口函数的索引号;
执行跳转函数以根据所述索引号确定所述接入参数对应的接口函数在第二存储区中的调用地址;
根据所述调用地址调用所述接口函数;
在完成所述接口函数的调用后返回所述跳转函数,以跳转回第一存储区。
2.根据权利要求1所述的方法,其特征在于,所述第一存储区为运行程序的数据存储区,所述第二存储区为存储程序的程序存储区。
3.根据权利要求1所述的方法,其特征在于,所述执行跳转函数以根据所述索引号确定所述接入参数对应的接口函数在第二存储区中的调用地址包括:
根据所述索引号确定所述接入参数对应的接口函数是否存在于函数列表中;所述函数列表根据接口函数的索引号对应记录有所述接口函数的调用地址;
如果确定对应所述接入参数的接口函数存在于所述函数列表中,则进入所述函数列表,并获取所述函数列表中对应所述索引号的接口函数的调用地址。
4.根据权利要求1所述的方法,其特征在于,在执行跳转函数以根据所述索引号确定所述接入参数对应的接口函数在第二存储区中的调用地址之前,所述方法还包括:
根据获取的存储区标识确定所述接入参数对应接口函数所在的存储区为第二存储区,并切换到所述标识对应的第二存储区。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,当所述接入参数是第一类接口函数的标识时,所述接入参数对应的接口函数为第一类接口函数,所述获取第一存储区发送的接入参数,并在公共区的索引表中根据所述接入参数获取与所述接入参数对应的接口函数的索引号包括:
根据第一类接口函数的标识和补丁规则获取所述第一类接口函数在索引表中的地址,所述补丁规则用于根据第一类接口函数的标识映射出所述第一类接口函数的地址;
根据所述第一类接口函数在索引表中的地址获取索引表中对应所述地址的所述第一类接口函数的索引号。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,当所述接入参数是第二类接口函数的地址时,所述接入参数对应的接口函数为第二类接口函数,所述获取第一存储区发送的接入参数,并在公共区的索引表中根据所述接入参数获取与所述接入参数对应的接口函数的索引号包括:
接收人工输入的所述第二类接口函数的地址;
根据所述第二类接口函数的地址在索引表中获取对应所述地址的所述第二类接口函数的索引号。
7.根据权利要求3所述的方法,其特征在于,所述根据所述索引号确定所述接入参数对应的接口函数是否存在于函数列表中包括:
判断所述接入参数对应的接口函数的索引号是否超出所述函数列表的索引号的范围;
如果所述接入参数对应的接口函数的索引号未超出所述函数列表的索引号的范围,则确定对应所述接入参数对应的接口函数存在于所述函数列表中;否则确定对应所述接入参数对应的接口函数不存在于所述函数列表中。
8.根据权利要求3所述的方法,其特征在于,所述如果确定对应所述接入参数的接口函数存在于所述函数列表中,则进入所述函数列表,并调用所述函数列表中对应所述索引号的接口函数包括:
所述如果确定对应所述接入参数对应的接口函数存在于函数列表中,则根据所述索引号进入所述函数列表获取对应所述索引号的接口函数的调用地址。
9.根据权利要求3所述的方法,其特征在于,该方法还包括:
如果确定对应所述接入参数对应的接口函数不存在于所述函数列表中,则根据所述接入参数中的函数地址调用对应的接口函数。
10.一种函数的调用装置,其特征在于,运用所述调用装置的芯片包括至少两个存储区以及所述至少两个存储区共用的公共区,所述至少两个存储区之间共用逻辑地址;
所述调用装置包括:
获取单元,用于获取第一存储区发送的接入参数,并在公共区的索引表中根据所述接入参数获取与所述接入参数对应的接口函数的索引号;
确定单元,用于执行跳转函数以根据所述索引号确定所述接入参数对应的接口函数在第二存储区中的调用地址;
跳转单元,根据所述调用地址调用所述接口函数;还用于在完成所述接口函数的调用后返回所述跳转函数,以跳转回第一存储区。
11.根据权利要求10所述的装置,其特征在于,所述第一存储区为运行程序的数据存储区,所述第二存储区为存储程序的程序存储区。
12.根据权利要求10所述的装置,其特征在于,所述确定单元根据所述接入参数的索引号确定对应所述接入参数对应的接口函数是否存在于函数列表中;所述函数列表根据接口函数的索引号对应记录有所述接口函数的调用地址;如果确定对应所述接入参数的接口函数存在于所述函数列表中,则进入所述函数列表,并获取所述函数列表中对应所述索引号的接口函数的调用地址。
13.根据权利要求12所述的装置,其特征在于,运用所述调用装置的芯片中包括至少一个程序存储区;
所述获取单元还用于根据获取的存储区标识确定所述接入参数对应接口函数所在的存储区为第二存储区;
所述装置还包括:
切换单元,用于切换到所述标识对应的第二存储区。
14.根据权利要求10至13任意一项所述的装置,其特征在于,所述装置还包括:
存储单元,用于存储所述索引表和函数列表;所述函数列表根据接口函数的索引号对应记录有所述接口函数的调用地址。
15.根据权利要求10至13任意一项所述的装置,其特征在于,当所述接入参数是第一类接口函数的标识时,所述接入参数对应的接口函数为第一类接口函数,所述获取单元包括:
第一类函数获取模块,用于根据第一类接口函数的标识和补丁规则获取所述第一类接口函数在索引表中的地址,并根据所述第一类接口函数在索引表中的地址获取索引表中对应所述地址的所述第一类接口函数的索引号;其中,所述补丁规则用于根据第一类接口函数的标识映射出所述第一类接口函数的地址。
16.根据权利要求10至13任意一项所述的装置,其特征在于,当所述接入参数是第二类接口函数的地址时,所述接入参数对应的接口函数为第二类接口函数,所述获取单元包括:
第二类函数获取模块,用于接收人工输入的所述第二类接口函数的地址,并根据所述第二类接口函数的地址在索引表中获取对应所述地址的所述第二类接口函数的索引号。
17.根据权利要求12所述的装置,其特征在于,所述确定单元包括:
判断模块,用于判断所述接入参数对应的接口函数的索引号是否超出所述函数列表的索引号的范围,当所述接入参数对应的接口函数的索引号未超出所述函数列表的索引号的范围时,确定对应所述接入参数对应的接口函数存在于所述函数列表中;否则确定对应所述接入参数对应的接口函数不存在于所述函数列表中。
18.根据权利要求12所述的装置,其特征在于,所述跳转单元包括:
进入模块,用于当所述确定单元确定对应所述接入参数的接口函数存在于函数列表中时,根据所述索引号进入所述函数列表获取对应所述索引号的接口函数的调用地址,并根据所述调用地址调用所述接口函数。
19.根据权利要求12所述的装置,其特征在于,所述跳转单元还用于:当所述确定单元确定对应所述接入参数对应的接口函数不存在于所述函数列表中时,根据所述接入参数中的函数地址调用对应的接口函数。
20.一种智能卡,其特征在于,包括如权利要求10至19中任意一项所述的函数的调用装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010559269.5A CN102023843B (zh) | 2010-11-24 | 2010-11-24 | 函数的调用方法、装置及智能卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010559269.5A CN102023843B (zh) | 2010-11-24 | 2010-11-24 | 函数的调用方法、装置及智能卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102023843A true CN102023843A (zh) | 2011-04-20 |
CN102023843B CN102023843B (zh) | 2014-04-23 |
Family
ID=43865167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010559269.5A Expired - Fee Related CN102023843B (zh) | 2010-11-24 | 2010-11-24 | 函数的调用方法、装置及智能卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102023843B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268237A (zh) * | 2013-05-10 | 2013-08-28 | 东信和平科技股份有限公司 | 一种掩膜智能卡的补丁功能扩展方法及装置 |
CN103823663A (zh) * | 2012-11-19 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 一种调用成员变量的方法和装置 |
CN104199984A (zh) * | 2014-09-26 | 2014-12-10 | 浙江中控技术股份有限公司 | 一种实现功能库的动态引用的方法和装置 |
CN105095931A (zh) * | 2015-06-30 | 2015-11-25 | 小米科技有限责任公司 | 基于近场通信的读卡方法和装置 |
CN106203119A (zh) * | 2016-07-13 | 2016-12-07 | 北京金山安全软件有限公司 | 隐藏光标的处理方法、装置及电子设备 |
CN106776464A (zh) * | 2016-11-10 | 2017-05-31 | 杭州华为数字技术有限公司 | 一种函数地址的获取方法以及电子设备 |
US10783082B2 (en) | 2019-08-30 | 2020-09-22 | Alibaba Group Holding Limited | Deploying a smart contract |
WO2021036174A1 (zh) * | 2019-08-30 | 2021-03-04 | 创新先进技术有限公司 | 部署和执行智能合约的方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095416B (zh) * | 2016-06-01 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 一种在应用程序中的跳转处理方法、装置及智能终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617102A (zh) * | 2003-11-13 | 2005-05-18 | 华为技术有限公司 | 一种在Python中实现API钩子测试的方法 |
CN101178653A (zh) * | 2007-12-03 | 2008-05-14 | 北京中星微电子有限公司 | 一种支持多种处理器的嵌入式系统及方法 |
-
2010
- 2010-11-24 CN CN201010559269.5A patent/CN102023843B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617102A (zh) * | 2003-11-13 | 2005-05-18 | 华为技术有限公司 | 一种在Python中实现API钩子测试的方法 |
CN101178653A (zh) * | 2007-12-03 | 2008-05-14 | 北京中星微电子有限公司 | 一种支持多种处理器的嵌入式系统及方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823663B (zh) * | 2012-11-19 | 2017-12-01 | 腾讯科技(深圳)有限公司 | 一种调用成员变量的方法和装置 |
CN103823663A (zh) * | 2012-11-19 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 一种调用成员变量的方法和装置 |
CN103268237A (zh) * | 2013-05-10 | 2013-08-28 | 东信和平科技股份有限公司 | 一种掩膜智能卡的补丁功能扩展方法及装置 |
CN104199984A (zh) * | 2014-09-26 | 2014-12-10 | 浙江中控技术股份有限公司 | 一种实现功能库的动态引用的方法和装置 |
CN104199984B (zh) * | 2014-09-26 | 2018-01-12 | 浙江中控技术股份有限公司 | 一种实现功能库的动态引用的方法和装置 |
CN105095931A (zh) * | 2015-06-30 | 2015-11-25 | 小米科技有限责任公司 | 基于近场通信的读卡方法和装置 |
CN105095931B (zh) * | 2015-06-30 | 2018-02-02 | 小米科技有限责任公司 | 基于近场通信的读卡方法和装置 |
CN106203119A (zh) * | 2016-07-13 | 2016-12-07 | 北京金山安全软件有限公司 | 隐藏光标的处理方法、装置及电子设备 |
CN106203119B (zh) * | 2016-07-13 | 2019-04-26 | 珠海豹趣科技有限公司 | 隐藏光标的处理方法、装置及电子设备 |
CN106776464A (zh) * | 2016-11-10 | 2017-05-31 | 杭州华为数字技术有限公司 | 一种函数地址的获取方法以及电子设备 |
CN106776464B (zh) * | 2016-11-10 | 2020-03-10 | 杭州华为数字技术有限公司 | 一种函数地址的获取方法以及电子设备 |
US10783082B2 (en) | 2019-08-30 | 2020-09-22 | Alibaba Group Holding Limited | Deploying a smart contract |
WO2021036174A1 (zh) * | 2019-08-30 | 2021-03-04 | 创新先进技术有限公司 | 部署和执行智能合约的方法及装置 |
US11010303B2 (en) | 2019-08-30 | 2021-05-18 | Advanced New Technologies Co., Ltd. | Deploying a smart contract |
US11307990B2 (en) | 2019-08-30 | 2022-04-19 | Advanced New Technologies Co., Ltd. | Deploying a smart contract |
Also Published As
Publication number | Publication date |
---|---|
CN102023843B (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023843B (zh) | 函数的调用方法、装置及智能卡 | |
CN101251964B (zh) | 一种电子地图兴趣点注记方法、系统及设备 | |
CN106909333B (zh) | 显示屏的配屏方法及装置 | |
CN106469165A (zh) | 弹幕展示方法及弹幕展示装置 | |
CN103577207A (zh) | 一种自定义界面系统中界面组件的加载方法和装置 | |
CN104407935A (zh) | 快照回滚方法和存储设备 | |
CN110555014B (zh) | 一种数据迁移方法和系统、电子设备、存储介质 | |
KR20100004605A (ko) | 네트워크 시스템 상에서의 작업 노드 선택방법 및 그시스템 | |
CN103593447B (zh) | 用于数据库表的数据处理方法和装置 | |
CN106598548A (zh) | 存储单元读写冲突的解决方法及装置 | |
CN113609237B (zh) | 一种建设用地变更的数据处理方法、装置、设备及介质 | |
CN109271247A (zh) | 内存优化方法、装置、计算机装置以及存储介质 | |
CN104765792A (zh) | 一种维度数据存储的方法、装置及系统 | |
CN102780780B (zh) | 云计算模式下的数据处理方法、设备和系统 | |
CN105955996A (zh) | 图片处理方法及装置 | |
CN115758989B (zh) | 用于修复数字芯片版图设计规则时序违例的方法及系统 | |
CN108228340A (zh) | 终端控制方法及装置、终端设备及计算机可读存储介质 | |
CN107832011A (zh) | 一种数据存储方法、装置、设备及计算机可读存储介质 | |
CN104281561A (zh) | 一种数据恢复的方法及电子设备 | |
CN106708445A (zh) | 链路选择方法及装置 | |
CN103136343A (zh) | 一种共享资源实时交互方法 | |
CN115660941A (zh) | 图像搬移方法、装置、电子设备和计算机可读存储介质 | |
CN105677456A (zh) | 一种进程信息的写方法及用户设备 | |
CN110221778A (zh) | 酒店数据的处理方法、系统、存储介质以及电子设备 | |
CN104182181A (zh) | 一种存储卡的数据处理方法、装置及终端 |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee after: BEIJING WATCHDATA Co.,Ltd. Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140423 Termination date: 20211124 |