公开/公告号CN103034501A
专利类型发明专利
公开/公告日2013-04-10
原文格式PDF
申请/专利权人 广东威创视讯科技股份有限公司;
申请/专利号CN201210572378.X
发明设计人 张涛;
申请日2012-12-25
分类号G06F9/44(20060101);G06F11/36(20060101);
代理机构11227 北京集佳知识产权代理有限公司;
代理人王宝筠
地址 510663 广东省广州市广州高新技术产业开发区彩频路6号
入库时间 2024-02-19 17:52:51
法律状态公告日
法律状态信息
法律状态
2022-12-02
未缴年费专利权终止 IPC(主分类):G06F 9/44 专利号:ZL201210572378X 申请日:20121225 授权公告日:20160803
专利权的终止
2017-06-30
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F9/44 变更前: 变更后: 申请日:20121225
专利权人的姓名或者名称、地址的变更
2016-08-03
授权
授权
2013-05-08
实质审查的生效 IPC(主分类):G06F9/44 申请日:20121225
实质审查的生效
2013-04-10
公开
公开
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种linux平台的函数调用方法及 函数调用装置。
背景技术
Linux是一种自由和开放源码的类Unix操作系统,随着Linux逐渐发展 成熟,它的用户群正在不断扩大,并大举进入公司和企业计算机领域。
目前,在Linux平台中进行调试的方式主要是通过专用的上位机软件向下 位机发送协议命令来调用相关的调试函数。由于专用的上位机软件需要针对 下位机配套专门开发,开发成本较高且灵活性差,另外,在有些场合(如用 户的上位机上不允许开发人员额外安装软件的场合)中,也不便于通过上位 机软件调用相关的调试函数对Linux进行调试。
发明内容
本发明实施例提供了一种linux平台的函数调用方法及函数调用装置,用 于降低开发成本,提高在linux平台中对函数调用的灵活性和便利性。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明第一方面提供一种linux平台的函数调用方法,包括:
建立单元建立待调用函数的函数名与发送单元的路径名的符号链接;
获取单元获取所述待调用函数的调用信息,其中,所述待调用函数的调 用信息包含:所述待调用函数的函数名;
所述发送单元将获取的所述待调用函数的调用信息发送给调用单元,使 得所述调用单元根据所述待调用函数的调用信息对所述待调用函数进行调 用。
基于本发明第一方面,在第一种可能的实现方式中,
通过如下shell命令建立待调用函数的函数名的符号链接:
$ln-s所述发送单元的路径名待调用函数的函数名。
基于本发明第一方面,或者本发明第一方面的第一种可能的实现方式,
所述调用信息还包括:所述待调用函数的一个或者两个以上的执行参数。
本发明第二方面提供一种linux平台的函数调用装置,包括:
建立单元,获取单元,发送单元和调用单元;
所述建立单元用于建立待调用函数的函数名与发送单元的路径名的符号 链接;
所述获取单元用于获取所述待调用函数的调用信息,其中,所述待调用 函数的调用信息包含:所述待调用函数的函数名;
所述发送单元用于将所述获取单元获取的所述待调用函数的调用信息发 送给所述调用单元;
所述调用单元用于根据所述发送单元发送的待调用函数的调用信息对所 述待调用函数进行调用。
基于本发明第二方面,在第一种可能的实现方式中,
所述建立单元具体通过如下shell命令建立待调用函数的函数名的符号链 接:
$ln–s所述发送单元的路径名待调用函数的函数名。
由上可见,本发明实施例中通过建立待调用函数的函数名的符号链接, 通过获取包含函数名的调用信息即可实现对待调用函数的调用,一方面,本 发明技术方案无需开发专门的上位机软件用于调试,降低了开发成本,另一 方面,本发明技术方案能够应用于任何场合的linux平台中,且用户可以直接 在操作界面输入调用信息来调用相应地函数,极大提高了在linux平台中对函 数调用的灵活性和便利性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种linux平台的函数调用方法一个实施例流程示意 图;
图2为本发明提供的一种linux平台的函数调用方法另一个实施例流程示 意图;
图3为本发明提供的一种函数调用装置一个实施例结构示意图。
具体实施方式
本发明实施例提供了一种linux平台的函数调用方法及函数调用装置。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将 结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施 例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前 提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例提供的一种linux平台的函数调用方法进行描述。请 参阅图1,本发明实施例中的linux平台的函数调用方法包括:
101、建立单元建立待调用函数的函数名与发送单元的路径名的符号链 接;
由于在linux平台中,linux自身无法提供在shell命令中直接输入函数名 的方式实现对某个指定进程中的函数的调用,因此,本发明实施例中首先需 要通过建立单元建立待调用函数的函数名与发送单元的路径名的符号链接。
具体地,建立单元可以通过如下shell命令建立待调用函数的函数名与发 送单元的路径名的符号链接:$ln–s发送单元的路径名待调用函数的函数 名。当然,建立单元也可以通过其它方式来建立待调用函数的函数名与发送 单元的路径名的符号链接,如通过使用脚本对包含待调用函数的源文件进行 扫描的方式来建立源文件中的各个待调用函数的函数名与发送单元的路径名 的符号链接,此处不作限定。
需要说明的是,对于同一个待调用函数的函数名的多次调用,只需执行 一次本步骤,即,上述建立待调用函数的函数名与发送单元的路径名的符号 链接的步骤只需要在首次调用待调用函数的函数名时执行一次,当待调用函 数的函数名与发送单元的路径名的符号链接完成建立后,除非发送单元的路 径名或者待调用函数的函数名有所更改,否则可以直接跳过本步骤执行后续 步骤。
102、获取单元获取上述待调用函数的调用信息;
其中,上述待调用函数的调用信息包含:上述待调用函数的函数名。
本发明实施例中,用户可以在shell界面中输入待调用函数的调用信息, 以使获取单元获取上述待调用函数的调用信息。当然,获取单元也可以通过 其它方式获取上述待调用函数的调用信息,如当linux平台中的某些进程需要 调用到该待调用函数时,由需要调用到该待调用函数的进程将该待调用函数 的调用信息发送给上述获取单元,此处不作限定。
进一步,由于某些待调用函数还可能包含一个或者多个执行参数,因此, 上述调用信息还可以包括:上述待调用函数的一个或者两个以上的执行参数。
103、发送单元将获取的上述待调用函数的调用信息发送给调用单元,使 得上述调用单元根据上述待调用函数的调用信息对上述待调用函数进行调 用;
本发明实施例中,预先建立发送单元与调用单元之间的数据链路。由于 步骤101建立了待调用函数的函数名与发送单元的路径名的符号链接,因此, 当步骤102获取到包含待调用函数的函数名的调用信息时,发送单元将获取 的上述待调用函数的调用信息发送给调用单元,使得上述调用单元根据上述 待调用函数的调用信息对上述待调用函数进行调用。
需要说明的是,上述调用单元可以是主函数所在的进程,则上述待调用 函数为上述主函数中的其中一个子函数,或者,上述调用单元也可以是linux 平台中能够调用上述待调用函数的其它进程,此处不作限定。
由上可见,本发明实施例中通过建立待调用函数的函数名的符号链接, 通过获取包含函数名的调用信息即可实现对待调用函数的调用,一方面,本 发明技术方案无需开发专门的上位机软件用于调试,降低了开发成本,另一 方面,本发明技术方案能够应用于任何场合的linux平台中,且用户可以直接 在操作界面输入调用信息来调用相应地函数,极大提高了在linux平台中对函 数调用的灵活性和便利性。
为便于更好地理解本发明技术方案,下面以一具体应用场景为本发明实 施例中的linux平台的函数调用方法进行描述,本发明实施例中的调用单元为 主函数所在的进程,待调用函数为主函数的其中一个子函数,假设待调用函 数的函数名为CPFpgaSetReg,发送单元的路径名为vwDebug,请参与图2, 本发明实施例中的linux平台的函数调用方法,包括:
201、建立单元建立CPFpgaSetReg与vwDebug的符号链接;
建立单元可以通过如下shell命令建立待调用函数的函数名与发送单元的 路径名的符号链接:$ln–s vwDebug CPFpgaSetReg。
202、用户在shell界面输入CPFpgaSetReg以及执行参数Ox74和Ox1;
其中,用户可以在shell界面敲进如下命令来输入CPFpgaSetReg以及执 行参数Ox74和Ox1:
$./CPFpgaSetReg Ox74Ox1
203、获取单元将获取到的待调用的函数名CPFpgaSetReg以及执行参数 Ox74和Ox1传送给发送单元;
当步骤202用户在shell执行:$./CPFpgaSetReg Ox74Ox1时,shell中的 argv数组的字符串分别如下:argv[0]等于CPFpgaSetReg,argv[1]等于Ox74, argv[2]等于Ox1,获取单元通过argv数组的字符串即可获得待调用的函数名 CPFpgaSetReg以及执行参数Ox74和Ox1。
由于步骤201建立了CPFpgaSetReg和vwDebug的符号链接,获取单元 根据符号链接的指向,将待调用的函数名CPFpgaSetReg以及执行参数Ox74 和Ox1传送给发送单元。
204、发送单元将待调用的函数名CPFpgaSetReg以及执行参数Ox74和 Ox1发送给调用单元;
发送单元通过预先建立好的数据链路,将argv数组的字符串,即待调用 的函数名CPFpgaSetReg以及执行参数Ox74和Ox1发送给调用单元。
205、调用单元调用CPFpgaSetReg,并执行参数Ox74和Ox1。
由上可见,本发明实施例中通过建立待调用函数的函数名的符号链接, 通过获取包含函数名的调用信息即可实现对待调用函数的调用,一方面,本 发明技术方案无需开发专门的上位机软件用于调试,降低了开发成本,另一 方面,本发明技术方案能够应用于任何场合的linux平台中,且用户可以直接 在操作界面输入调用信息来调用相应地函数,极大提高了在linux平台中对函 数调用的灵活性和便利性。
下面对本发明实施例中的一种linux平台的函数调用装置进行描述,请参 阅图3,本发明实施例中的linux平台的函数调用装置300,包括:
建立单元301,获取单元302,发送单元303和调用单元304。
其中,建立单元301用于建立待调用函数的函数名与发送单元的路径名 的符号链接;
具体地,建立单元301可以通过如下shell命令建立待调用函数的函数名 与发送单元303的路径名的符号链接:$ln–s发送单元303的路径名待调用 函数的函数名。当然,建立单元301也可以通过其它方式来建立待调用函数 的函数名与发送单元303的路径名的符号链接,如通过使用脚本对包含待调 用函数的源文件进行扫描的方式来建立源文件中的各个待调用函数的函数名 与发送单元的路径名的符号链接,此处不作限定。
需要说明的是,对于同一个待调用函数的函数名的多次调用,只需在首 次调用待调用函数的函数名时由建立单元301建立待调用函数的函数名与发 送单元的路径名的符号链接,当待调用函数的函数名与发送单元的路径名的 符号链接完成建立后,除非发送单元的路径名或者待调用函数的函数名有所 更改,否则可以建立单元301可以不再执行建立上述待调用函数的函数名与 发送单元的路径名的符号链接的动作。
获取单元302用于获取上述待调用函数的调用信息,其中,上述待调用 函数的调用信息包含:上述待调用函数的函数名;
本发明实施例中,用户可以在shell界面中输入待调用函数的调用信息, 以使获取单元302获取上述待调用函数的调用信息。当然,获取单元302也 可以通过其它方式获取上述待调用函数的调用信息,如当linux平台中的某些 进程需要调用到该待调用函数时,由需要调用到该待调用函数的进程将该待 调用函数的调用信息发送给获取单元302,此处不作限定。
进一步,由于某些待调用函数还可能包含一个或者多个执行参数,因此, 上述调用信息还可以包括:上述待调用函数的一个或者两个以上的执行参数。
发送单元303用于将获取单元302获取的上述待调用函数的调用信息发 送给调用单元304;
本发明实施例中,预先建立发送单元303与调用单元304之间的数据链 路。当获取单元302获取到包含待调用函数的函数名的调用信息时,发送单 元303将获取的上述待调用函数的调用信息发送给调用单元304。
调用单元304用于根据发送单元303发送的待调用函数的调用信息对上 述待调用函数进行调用。
需要说明的是,上述调用单元可以是主函数所在的进程,则上述待调用 函数为上述主函数中的其中一个子函数,或者,上述调用单元也可以是linux 平台中能够调用上述待调用函数的其它进程,此处不作限定。
需要说明的是,本发明实施例中的函数调用装置300中的各个功能单元 可以如上述方法实施例中的相应的功能单元,可以用于实现上述方法实施例 中的全部技术方案,其各个功能单元的功能可以根据上述方法实施例中的方 法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘 述。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表 述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描 述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同 时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属 于优选实施例,所涉及的动作和单元并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有 详述的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以理解,本发明的技术方案本质上或者说对现有 技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以指令 计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各 个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动 硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种linux平台的函数调用方法及函数调用装置进 行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在 具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解 为对本发明的限制。
机译: 目标函数调用方法和装置,移动终端和存储介质
机译: 计算机,并行和分布式系统以及函数调用方法
机译: 函数调用方法和系统