CN116841657A - 接口函数调用方法和装置 - Google Patents
接口函数调用方法和装置 Download PDFInfo
- Publication number
- CN116841657A CN116841657A CN202310863251.1A CN202310863251A CN116841657A CN 116841657 A CN116841657 A CN 116841657A CN 202310863251 A CN202310863251 A CN 202310863251A CN 116841657 A CN116841657 A CN 116841657A
- Authority
- CN
- China
- Prior art keywords
- function
- interface function
- interface
- identification information
- address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000006870 function Effects 0.000 claims description 285
- 238000012545 processing Methods 0.000 claims description 35
- 238000013507 mapping Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及计算机技术领域,尤其涉及一种接口函数调用方法和装置。先获取接口函数调用指令,接口函数调用指令包含接口函数的标识信息,然后在函数地址关联表中确定与接口函数的标识信息相关联的函数地址,最后根据函数地址调用相应的接口函数。通过设置标识信息和函数地址的关联关系,使得接口函数的调用更加便捷,此外,函数地址关联表容易维护且占用存储空间较小。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种接口函数调用方法和装置。
背景技术
如今的嵌入式操作系统通常包括内核程序和应用程序,内核程序中设置有内核接口,应用程序通过调用内核接口即可使用内核程序提供的接口函数,实现相应的功能。例如,外部开发者可调用内核接口实现创建线程、创建定时器和内存管理等操作。
目前在实现调用接口函数时,需要在应用程序中维护一个数组,用来记录接口函数的函数地址,该数组记录的接口函数的顺序和函数地址必须完全匹配,随着接口函数的变化以及数量的增多,该数组的维护也变得越来越复杂,使得接口函数的调用变得繁琐。
发明内容
本发明实施例提供了一种接口函数调用方法和装置,通过设置标识信息与函数地址相关联,简化了接口函数的调用流程。
第一方面,本发明实施例提供了一种接口函数调用方法,包括:
获取接口函数调用指令,所述接口函数调用指令包含接口函数的标识信息;
在函数地址关联表中确定与所述接口函数的标识信息相关联的函数地址;
根据所述函数地址调用相应的接口函数。
一种实施例中,所述根据所述函数地址调用相应的接口函数,包括:
将所述接口函数的标识信息替换为所述相关联的函数地址;
运行所述接口函数调用指令调用相应的接口函数,其中,所述接口函数调用指令在运行时跳转至所述函数地址。
一种实施例中,所述获取接口函数调用指令之前,所述方法还包括:
获取各接口函数的函数地址;
确定各接口函数对应的标识信息;
基于所述接口函数的函数地址以及所述接口函数对应的标识信息配置所述函数地址关联表。
一种实施例中,所述基于所述接口函数的函数地址以及所述接口函数对应的标识信息配置所述函数地址关联表,包括:
针对每个接口函数,确定当前接口函数的标识信息与函数地址的映射关系,其中,每个接口函数的标识信息指向对应的函数地址。
一种实施例中,所述获取接口函数调用指令之前,所述方法还包括:
根据接口函数的名称生成所述接口函数对应的标识信息;
基于程序跳转指令和各接口函数对应的标识信息生成各接口函数对应的接口函数调用指令,其中,所述程序跳转指令在运行时跳转至所述标识信息所指的位置。
一种实施例中,各接口函数的标识信息与函数地址的数据类型相同。
一种实施例中,各接口函数的标识信息为哈希值。
第二方面,本发明实施例提供了一种接口函数调用装置,包括:
获取模块,用于获取接口函数调用指令,所述接口函数调用指令包含接口函数的标识信息;
确定模块,用于在函数地址关联表中确定与所述接口函数的标识信息相关联的函数地址;
处理模块,用于根据所述函数地址调用相应的接口函数。
第三方面,本发明实施例提供了一种电子芯片,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序被处理器执行时实现第一方面提供的方法。
本发明实施例中,先获取接口函数调用指令,接口函数调用指令包含接口函数的标识信息,然后在函数地址关联表中确定与接口函数的标识信息相关联的函数地址,最后根据函数地址调用相应的接口函数。通过设置标识信息和函数地址的关联关系,使得接口函数的调用更加便捷,此外,函数地址关联表容易维护且占用存储空间较小。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种接口函数调用方法的流程图;
图2为本发明实施例提供的另一种接口函数调用方法的流程图;
图3为本发明实施例提供的另一种接口函数调用方法的流程图;
图4为本发明实施例提供的一种接口函数调用装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更好的理解本说明书的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
图1为本发明实施例提供的一种接口函数调用方法的流程图。该方法可以应用于安装了嵌入式系统的处理设备,如图1所示,该方法可以包括:
步骤101,获取接口函数调用指令,接口函数调用指令包含接口函数的标识信息。
装载了了嵌入式系统的处理设备启动时,内核首先运行,然后进行动态加载,即载入和运行应用程序,动态是指应用程序不随着内核一起启动运行,而是内核先运行,然后再加载应用程序。一些实施例中,应用程序为了实现某些功能会调用内核提供的接口函数,具体的,应用程序中设置接口函数调用指令,当处理设备加载应用程序时,可基于接口函数调用指令调用相应的接口函数。
本发明实施例中,接口函数调用指令包含接口函数的标识信息,处理设备根据该标识信息可确定并调用相应的接口函数。
步骤102,在函数地址关联表中确定与接口函数的标识信息相关联的函数地址。
处理设备预先存储有函数地址关联表,该表中可为每个接口函数存储标识信息和函数地址的关联关系。处理设备在接口函数调用指令中获取需调用的接口函数的标识信息后,可基于该标识信息在函数地址关联表中进行检索,确定与该标识信息相关联的函数地址。
步骤103,根据函数地址调用相应的接口函数。
接口函数调用指令中包含程序跳转指令和标识信息,处理设备在函数地址关联表中检索出与标识信息相关联的函数地址后,可将接口函数调用指令中的标识信息替换为对应的函数地址,则程序跳转指令运行后,程序将跳转至函数地址所指的位置运行,即运行对应的接口函数。
下面以一个具体实施例对本发明的接口函数调用方法做进一步说明。
在程序运行之前,处理设备需配置接口函数调用指令和函数地址关联表,整个配置流程可如图2所示,具体包括:
步骤201,函数名称转换为哈希值。
函数地址关联表中包含接口函数的标识信息以及函数地址,本发明实施例中,标识信息以哈希值的形式呈现。对于每个接口函数,处理设备可根据接口函数的函数名称确定相应的哈希值,然后将哈希值与函数地址进行关联。
具体的,处理设备可根据公式V=HASH(name)确定每个接口函数的哈希值,其中name表示接口函数的函数名称,HASH表示哈希函数,V表示哈希值。
步骤202,生成函数地址关联表。
处理设备通过公式Map=(V,A)可设置哈希值与函数地址的映射关系,其中V表示哈希值,A表示接口函数的函数地址,Map表示哈希值和函数地址的映射关系(函数地址关联表)。
步骤203,编译内核程序。
函数地址关联表配置完成后,处理设备可通过公式编译内核程序,公式可表示为Core=Compile(src_core,Map),其中,src_core表示内核程序源文件,Map表示函数地址关联表,Compile表示编译、链接的过程,Core表示可执行的内核程序。
步骤204,生成接口函数调用指令。
对于每个接口函数,处理设备可通过公式Item={I,V}生成接口函数调用指令,其中,I表示程序跳转指令,V表示哈希值,I的跳转地址为V的值,Item表示由{I,V}构成一个接口函数调用指令。每个接口函数的接口函数调用指令配置完成后,处理设备可通过公式IF={Item1,Item2,......,Itemn}生成接口指令文件,其中,n表示有n个接口函数,{Item1,Item2,......,Itemn}表示所有接口函数调用指令,IF表示将所有接口函数调用指令存成一个接口指令文件。
步骤205,编译应用程序。
接口函数调用指令配置完成后,处理设备可通过公式对应用程序进行编译,公式可表示为App={Insapp,Insif}=Compile(src_app,IF),Insif∈App,其中,src_app表示应用程序源文件,IF表示上述生成的接口指令文件,Compile表示编译、链接的过程,Insapp表示编译src_app产生的机器指令,Insif表示编译IF产生的机器指令,App表示可执行的应用程序,Insif属于App的一部分。
基于上述配置完成的接口函数调用指令和函数地址关联表,处理设备可实现应用程序的动态加载,具体流程可如图3所示,包括:
步骤301,拷贝接口函数调用指令到内存。
在内核程序加载应用程序的过程中,处理设备首先将接口函数调用指令拷贝到内存中。具体的,处理设备可基于公式Memif=Copy(Insif)拷贝接口函数调用指令,Copy表示拷贝动作,Memif表示位于内存中的接口函数调用指令。
步骤302,遍历查找哈希值。
接口函数调用指令中包含需调用的接口函数的哈希值,处理设备根据该哈希值遍历查找函数地址关联表,函数地址关联表中存储了哈希值和函数地址的关联关系,处理设备可基于接口函数的哈希值确定对应的函数地址。
步骤303,判断是否查找成功。
处理设备依次将函数地址关联表中的哈希值与接口函数调用指令的哈希值进行比对,若数值相同,则确定查找成功,否则继续查找。
步骤304,修改哈希值为函数地址。
当在函数地址关联表中查找到与接口函数调用指令中的哈希值相同的哈希值时,确定已查找成功,处理设备将接口函数调用指令中的哈希值替换为函数地址关联表中与该哈希值对应的函数地址。
具体的表达式如下:{I,A}=F((I,V),(V,A)),其中,(I,V)表示位于内存中的接口函数调用指令,(V,A)表示哈希值和函数地址的映射表,F表示将(I,V)中的哈希值修改为函数地址的过程,{I,A}表示程序跳转指令和函数地址。
F的具体流程如下:内存中有之前拷贝的接口函数调用指令Memif=(I,V),I表示程序跳转指令,V表示哈希值,函数地址关联表中包含哈希值和函数地址的映射关系Map=(V,A),V表示哈希值,A表示函数地址。处理设备遍历Memif,对于每一组(I,V),取出V的值,然后根据V的值在Map中搜索,当找到相等的V时,取出A的值,并修改(I,V)中V的值为A,得到(I,A),即(I,V),(V,A)→(I,A)。
步骤305,调用应用程序入口函数。
I运行时将跳转至A所指的位置,A即为函数地址,处理设备基于修改后的接口函数调用指令(I,A)可调用接口函数,应用程序可正常加载。
本发明实施例中,通过设置函数地址关联表,解决了接口函数的函数地址维护复杂的问题,且使得接口函数的调用更加便捷。
通过哈希值(标识信息)调用接口函数更加稳定,以下以具体的场景进行说明。(1)如果应用程序更新,由于接口函数的函数名称不变,因此接口函数对应的哈希值不变,内核程序中的Map=(V,A)未改变,应用程序更新后(I,V)未改变,在动态加载的过程中仍可将哈希值替换为函数地址。(2)如果内核程序更新,函数地址发生改变(新的函数地址为new_A),可将映射关系修改为Map=(V,new_A),应用程序中的(I,V)未改变,则处理设备可将V替换为new_A,得到(I,new_A),仍可动态加载应用程序。
一种实施例中,现有的接口函数调用通过要维护一个数组,该数组记录了内核接口函数名称和地址的对应关系,例如,core_function_array[]={{“osiMutexCreate”,(void*)osiMutexCreate},{“semaphore_create”,(void*)semaphore_create}......}。其中,osiMutexCreate是函数名称,(void*)osiMutexCreate表示函数地址。上述数组core_function_array[]至少存在以下问题:(1)数组core_function_array[]需要开发者手动维护,当接口函数增加或变化时需要开发人员手动对数组进行修改;(2)函数名称长度较长,需占用更多的存储空间;(3)基于函数名称查找对应的函数地址过程繁琐。
在本发明实施例中,处理设备可生成函数地址关联表,函数地址关联表也可以数组的形式实现,例如,core_func_hash_array[]={{0x7f503656,0x80008020},{0x4589ab12,0x80008090}……}。其中,0x7f503656是字符串“osiMutexCreate”的哈希值,0x80008020是osiMutexCreate的函数地址。在函数地址关联表中,函数地址以具体的数值存储,哈希值同样为具体数值,二者数据类型以及所占的存储空间相同。哈希值占用的字节数等于函数地址的字节数,比如在32位系统上为4字节,在64位系统上为8字节。
相比于以函数名称生成的数组,本发明实施例中通过哈希值生成数组可节省存储空间,减少资源浪费。在数组中查找函数地址过程中,如果以函数名称进行查找,由于函数名称为字符串,处理设备比对任一函数名称时,需依次比对当前字符串的每个字符,耗费时间较长。而如果以哈希值进行查找,由于哈希值和函数地址都为数值,处理设备可直接判断二者数值是否相同,使得查找函数地址的时间大幅度降低。在替换函数地址的过程中,如果将函数名称替换为函数地址,二者数据类型不同,字节长度也不同,替换过程较为繁琐;而哈希值与函数地址的数据类型相同,字节长度也相同,可直接将哈希值替换为函数地址,该过程更加简单。
图4为本发明实施例提供的一种接口函数调用装置的结构示意图。该装置可以作为具体设备,实现本发明实施例提供的接口函数调用方法,如图4所示,该装置可以包括:获取模块410、确定模块420和处理模块430。
获取模块410,用于获取接口函数调用指令,接口函数调用指令包含接口函数的标识信息。
确定模块420,用于在函数地址关联表中确定与接口函数的标识信息相关联的函数地址。
处理模块430,用于根据函数地址调用相应的接口函数。
图5为本发明实施例提供的一种电子设备的结构示意图。图5显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器510,存储器530,连接不同系统组件(包括存储器530和处理器510)的通信总线540。
通信总线540表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器530可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read Only Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read Only Memory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与通信总线540相连。存储器530可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器530中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本发明所描述的实施例中的功能和/或方法。
电子设备也可以与一个或多个外部设备通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,或者与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过通信接口520进行。并且,电子设备还可以通过网络适配器(图5中未示出)与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信,上述网络适配器可以通过通信总线540与电子设备的其它模块通信。应当明白,尽管图5中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(RedundantArrays of Independent Drives;以下简称:RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器510通过运行存储在存储器530中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例提供的接口函数调用方法。
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质存储计算机指令,上述计算机指令使上述计算机执行本发明实施例提供的接口函数调用方法。
上述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable Programmable ReadOnly Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种接口函数调用方法,其特征在于,包括:
获取接口函数调用指令,所述接口函数调用指令包含接口函数的标识信息;
在函数地址关联表中确定与所述接口函数的标识信息相关联的函数地址;
根据所述函数地址调用相应的接口函数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述函数地址调用相应的接口函数,包括:
将所述接口函数的标识信息替换为所述相关联的函数地址;
运行所述接口函数调用指令调用相应的接口函数,其中,所述接口函数调用指令在运行时跳转至所述函数地址。
3.根据权利要求1所述的方法,其特征在于,所述获取接口函数调用指令之前,所述方法还包括:
获取各接口函数的函数地址;
确定各接口函数对应的标识信息;
基于所述接口函数的函数地址以及所述接口函数对应的标识信息配置所述函数地址关联表。
4.根据权利要求3所述的方法,其特征在于,所述基于所述接口函数的函数地址以及所述接口函数对应的标识信息配置所述函数地址关联表,包括:
针对每个接口函数,确定当前接口函数的标识信息与函数地址的映射关系,其中,每个接口函数的标识信息指向对应的函数地址。
5.根据权利要求1所述的方法,其特征在于,所述获取接口函数调用指令之前,所述方法还包括:
根据接口函数的名称生成所述接口函数对应的标识信息;
基于程序跳转指令和各接口函数对应的标识信息生成各接口函数对应的接口函数调用指令,其中,所述程序跳转指令在运行时跳转至所述标识信息所指的位置。
6.根据权利要求1所述的方法,其特征在于,各接口函数的标识信息与函数地址的数据类型相同。
7.根据权利要求1所述的方法,其特征在于,各接口函数的标识信息为哈希值。
8.一种接口函数调用装置,其特征在于,包括:
获取模块,用于获取接口函数调用指令,所述接口函数调用指令包含接口函数的标识信息;
确定模块,用于在函数地址关联表中确定与所述接口函数的标识信息相关联的函数地址;
处理模块,用于根据所述函数地址调用相应的接口函数。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序被处理器执行时实现如权利要求1至7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310863251.1A CN116841657A (zh) | 2023-07-13 | 2023-07-13 | 接口函数调用方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310863251.1A CN116841657A (zh) | 2023-07-13 | 2023-07-13 | 接口函数调用方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116841657A true CN116841657A (zh) | 2023-10-03 |
Family
ID=88161532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310863251.1A Pending CN116841657A (zh) | 2023-07-13 | 2023-07-13 | 接口函数调用方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841657A (zh) |
-
2023
- 2023-07-13 CN CN202310863251.1A patent/CN116841657A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9052993B2 (en) | Multi-core processor system, control program, and control method | |
US7558804B1 (en) | Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory | |
US8549271B1 (en) | Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device | |
US10684846B2 (en) | Using semantic annotations to control compatibility behaviors | |
US20100313182A1 (en) | Extensible user interface generation | |
CN108132890B (zh) | 存储芯片的垃圾回收方法、装置、设备及存储介质 | |
CN111240689B (zh) | 应用程序的构建方法、装置、设备及存储介质 | |
US9400667B2 (en) | String cache file for optimizing memory usage in a Java virtual machine | |
US7149865B2 (en) | Memory allocation using mask-bit pattern to encode metadata within memory address | |
CN109739600B (zh) | 数据处理方法、介质、装置和计算设备 | |
CN104079613A (zh) | 用于多租户间共享应用程序对象的方法和系统 | |
CN113296786B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20130205291A1 (en) | Recipe-Based Application Conversion | |
JP6338713B2 (ja) | 柔軟性の高いメタデータの合成 | |
US20080127034A1 (en) | Distributed resource understanding tool management | |
WO2007026484A1 (ja) | 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US20160342400A1 (en) | Compact Type Layouts | |
CN116841657A (zh) | 接口函数调用方法和装置 | |
US8413114B1 (en) | Method to simplify developing software having localization | |
CN110327626B (zh) | 虚拟服务器创建方法及装置 | |
US9720660B2 (en) | Binary interface instrumentation | |
CN112114811A (zh) | 一种编译方法、装置和设备 | |
CN114077575A (zh) | 用于内存快照文件的格式转换方法、设备和系统 | |
CN112540889B (zh) | 在用户态调整硬盘启动顺序的方法、装置、设备及介质 | |
US10346225B2 (en) | Synthesized modules for module renaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |