太阳城集团

  • / 9
  • 下载费用:30 金币  

软件开发包的编译方法、系统及所适用的交换机设备.pdf

关 键 词:
软件 开发 编译 方法 系统 适用 交换机 设备
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201510703689.9

申请日:

2015.10.27

公开号:

太阳城集团CN105224378A

公开日:

2016.01.06

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/45申请日:20151027|||公开
IPC分类号: G06F9/45 主分类号: G06F9/45
申请人: 上海斐讯数据通信技术有限公司
发明人: 易开东
地址: 201616 上海市松江区思贤路3666号
优先权:
专利代理机构: 上海光华专利事务所 31219 代理人: 徐秋平
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201510703689.9

授权太阳城集团号:

||||||

法律状态太阳城集团日:

2018.06.19|||2016.02.03|||2016.01.06

法律状态类型:

授权|||实质审查的生效|||公开

摘要

本发明提供一种软件开发包的编译方法、系统及所适用的交换机设备。根据所述方法,所述系统将内核模块文件调用所需的软件开发包公共库与内核程序一并压缩,得到内核和与所述软件开发包公共库中各参数太阳城集团相关的查询列表;加载内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库;调用所述内核中所查询到的软件开发公共库,并运行所述内核模块文件。本发明有效减小了公共库所占用的存储空间,为运行应用程序提供了更多的存储空间。

权利要求书

权利要求书
1.  一种软件开发包的编译方法,其特征在于,包括以下步骤:
将内核模块文件调用所需的软件开发包公共库与内核程序一并压缩,得到内核和与所述软件开发包公共库中各参数太阳城集团相关的查询列表;
加载内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库;
调用所述内核中所查询到的软件开发公共库,并运行所述内核模块文件。

2.  根据权利要求1所述的软件开发包的编译方法,其特征在于,所述将内核模块文件调用所需的软件开发包公共库与内核程序一并压缩,得到与所述软件开发包公共库中各参数太阳城集团相关的查询列表的方式包括:
将内核模块文件调用所需的软件开发包公共库与内核程序一并编译,并生成核心符号文件;
从所述核心符号文件中导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,并将编译后的软件开发包公共库、编译后的内核程序和所述查询列表一并作为内核,并予以压缩。

3.  根据权利要求1所述的软件开发包的编译方法,其特征在于,所述加载内核模块文件的方式包括:通过串口加载内核模块文件。

4.  根据权利要求1或3所述的软件开发包的编译方法,其特征在于,所述加载内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库的方式包括:
在加载所述内核模块文件期间,提取对应内核中软件开发公共库中无链接的参数太阳城集团;
对应的,所述调用内核中所查询到的软件开发公共库,并运行所述内核模块文件的方式包括:采用外部调取命令调用所查询的软件开发包公共库,并运行所述内核模块文件。

5.  一种软件开发包的编译系统,其特征在于,包括:
内核生成模块,用于将内核模块文件调用所需的软件开发包公共库与内核程序一并压缩,得到内核和与所述软件开发包公共库中各参数太阳城集团相关的查询列表;
公共库调用模块,用于加载内核模块文件,并从中读取所调用的软件开发公共库的参 数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库;
内核模块文件运行模块,用于调用所述内核中所查询到的软件开发公共库,并运行所述内核模块文件。

6.  根据权利要求5所述的软件开发包的编译系统,其特征在于,所述内核生成模块用于将内核模块文件调用所需的软件开发包公共库与内核程序一并编译,并生成核心符号文件;以及,从所述核心符号文件中导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,并将编译后的软件开发包公共库、编译后的内核程序和所述查询列表一并作为内核,并予以压缩。

7.  根据权利要求5所述的软件开发包的编译系统,其特征在于,所述公共库调用模块用于通过串口加载内核模块文件。

8.  根据权利要求5或7所述的软件开发包的编译系统,其特征在于,所述公共库调用模块用于在加载所述内核模块文件期间,提取所要调用的软件开发公共库中无链接的参数太阳城集团;
对应的,所述内核模块文件运行模块用于采用外部调取命令调用所查询的软件开发包公共库,并运行所述内核模块文件。

9.  一种交换机设备,其特征在于,所述设备包括:
如权利要求5-8中任一所述的编译系统。

说明书

说明书软件开发包的编译方法、系统及所适用的交换机设备
技术领域
本发明涉及一种计算机软件领域,特别是涉及一种软件开发包的编译方法、系统及所适用的交换机设备。
背景技术
目前的交换机设备中内核一般使用32MB的FLASH的存储硬件,其中,软件开发包(SDK)占用了25MB左右的空间,留给linux系统与应用程序的空间很有限。这主要是受操作系统规则的限制,内核模块文件无法被交换机设备中的操作系统所压缩。
这不利于今后在交换机设备中运行更为复杂的应用程序。因此,需要对现有技术进行改进。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种软件开发包的编译方法、系统及所适用的交换机设备,用于解决现有技术中内核和内核模块文件所占用的存储空间过大的问题。
为实现上述目的及其他相关目的,本发明提供一种软件开发包的编译方法,包括以下步骤:将内核模块文件调用所需的软件开发包公共库与内核程序一并压缩,得到内核和与所述软件开发包公共库中各参数太阳城集团相关的查询列表;加载内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库;调用所述内核中所查询到的软件开发公共库,并运行所述内核模块文件。
优选地,所述将内核模块文件调用所需的软件开发包公共库与内核程序一并压缩,得到与所述软件开发包公共库中各参数太阳城集团相关的查询列表的方式包括:将内核模块文件调用所需的软件开发包公共库与内核程序一并编译,并生成核心符号文件;从所述核心符号文件中导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,并将编译后的软件开发包公共库、编译后的内核程序和所述查询列表一并作为内核,并予以压缩。
优选地,所述加载内核模块文件的方式包括:通过串口加载内核模块文件。
优选地,所述加载内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库的 方式包括:在加载所述内核模块文件期间,提取对应内核中软件开发公共库中无链接的参数太阳城集团;
对应的,所述调用内核中所查询到的软件开发公共库,并运行所述内核模块文件的方式包括:采用外部调取命令调用所查询的软件开发包公共库,并运行所述内核模块文件。
基于上述目的,本发明还提供一种软件开发包的编译系统,包括:内核生成模块,用于将内核模块文件调用所需的软件开发包公共库与内核程序一并压缩,得到内核和与所述软件开发包公共库中各参数太阳城集团相关的查询列表;公共库调用模块,用于加载内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库;内核模块文件运行模块,用于调用所述内核中所查询到的软件开发公共库,并运行所述内核模块文件。
优选地,所述内核生成模块用于将内核模块文件调用所需的软件开发包公共库与内核程序一并编译,并生成核心符号文件;以及,从所述核心符号文件中导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,并将编译后的软件开发包公共库、编译后的内核程序和所述查询列表一并作为内核,并予以压缩。
优选地,所述公共库调用模块用于通过串口加载内核模块文件。
优选地,所述公共库调用模块用于在加载所述内核模块文件期间,提取所要调用的软件开发公共库中无链接的参数太阳城集团;
对应的,所述内核模块文件运行模块用于采用外部调取命令调用所查询的软件开发包公共库,并运行所述内核模块文件。
基于上述目的,本发明还提供一种交换机设备,包括:如上任一所述的编译系统。
如上所述,本发明的软件开发包的编译方法、系统及所适用的交换机设备,具有以下有益效果:将原本位于内核模块文件中的公共库提取出来,放入内核中,利用内核的压缩机制,有效减小了公共库所占用的存储空间,为运行应用程序提供了更多的存储空间;另外,利用内核编译期间所生成的核心符号文件来导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,能够便于加载内核模块文件时对软件开发包公共库中各参数太阳城集团进行快速查询;另外,采用串口加载内核模块文件,能够特别针对不带调试网口的交换机设备,有效提高了开发调试期间,加载内核模块文件的效率;还有,去掉内核模块文件中与内核中公共库的链接一致的链接,能够防止调用公共库时出现错误。
附图说明
图1显示为本发明的软件开发包的编译方法的流程示意图。
图2显示为本发明的软件开发包的编译系统的结构示意图。
元件标号说明
1编译系统
11内核生成模块
12公共库调用模块
13内核模块文件运行模块
S1~S3步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1,本发明提供一种软件开发包的编译方法。所述编译方法主要用在交换机等嵌入式操作系统中。所述编译方法主要由安装在交换机中、或通过串口与交换机相连的调试设备中的编译系统来执行。
在步骤S1中,所述编译系统将内核模块文件调用所需的软件开发包公共库(SDK)与内核程序一并压缩,得到内核和与所述软件开发包公共库中各参数太阳城集团相关的查询列表。
以Linux操作系统为例,内核模块文件包括:linux-kernel-bde.ko、linux-bcm-core.ko、linux-uk-proxy.ko、linux-bcm-diag.ko等,各所述内核模块文件所需调用的软件开发包公共库中的文件包括但不限于:libbcmx.a、libbcm.alibbcm_esw.a、libsoccommon.a、libfirebolt.a、libbradley.a、libtriumph.a、libtrx.a、libtriumph2.a等以.a为后缀的文件。
具体地,研发人员将原本位于各内核模块文件中的软件开发包公共库提取出来,并指令所述编译系统将所述软件开发包公共库中的所有文件与嵌入式操作系统中的内核程序一并编 译和压缩,以得到内核。在编译过程中,所述编译系统将对应所述软件开发包公共库中各文件的参数太阳城集团单独生成一查询列表,并存放在内核的系统文件目录中。
优选地,当所述编译系统对软件开发包公共库和内核程序进行编译时,所述编译系统生成包含所述软件开发包公共库中各文件的参数太阳城集团及所述内核程序中供外部应用调用的参数太阳城集团的核心符号文件(如Linux下的bcm-core-symbols.h文件);再从所述核心符号文件中导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,并将编译后的软件开发包公共库、编译后的内核程序和所述查询列表一并作为内核。接着,所述编译系统采用如GZIP压缩工具等,将所得到的内核予以压缩。其中,所述参数太阳城集团包括但不限于:内核模块文件调用时所需要的函数与变量地址等。
在步骤S2中,所述编译系统加载去掉软件开发包公共库的内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库。
具体地,当内核模块文件中不再链接软件开发包公共库时,所述内核模块文件中仅标有所要调用的软件开发包公共库中的参数太阳城集团。所述编译系统加载所述内核模块文件时,读取所述内核模块文件中的内容,并利用预设的关键符号确定所调用的软件开发公共库的参数太阳城集团。再将所读取的参数太阳城集团与查询列表进行查询匹配,以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库。
其中,当交换机上不带调试网口时,所述编译系统通过串口加载内核模块文件。
在步骤S3中,所述编译系统调用所述内核中所查询到的软件开发公共库,并运行所述内核模块文件。
由于所述内核模块文件中对应内核中软件开发公共库的各参数太阳城集团并无相应的链接,所述编译系统在通过查询找到查询列表中相应的文件后,生成包含文件名、读写命令等的外部调取命令,并通过运行所述外部调取命令调用所查询的软件开发包公共库,以便运行所述内核模块文件。
以Linux操作系统为例,所述编译系统采用insmod命令动态加载SDK编译生成的内核模块文件,以便对其进行开发调试。
需要说明的是,本领域技术人员应该理解,上述编译方法可以用在Linux操作系统中,也可以用在具有可压缩内核的其他操作系统中。今后出现的嵌入式操作系统如可应用本发明所述的方案,也应覆盖在本发明所述范围之内。
请参阅图2,本发明提供一种软件开发包的编译系统。所述编译系统主要用在交换机等 嵌入式操作系统中。所述编译系统主要由安装在交换机中、或通过串口与交换机相连的调试设备中的软件来执行。
所述编译系统1包括:内核生成模块11、公共库调用模块12、内核模块文件运行模块13。
所述内核生成模块11用于将内核模块文件调用所需的软件开发包公共库(SDK)与内核程序一并压缩,得到内核和与所述软件开发包公共库中各参数太阳城集团相关的查询列表。
以Linux操作系统为例,内核模块文件包括:linux-kernel-bde.ko、linux-bcm-core.ko、linux-uk-proxy.ko、linux-bcm-diag.ko等,各所述内核模块文件所需调用的软件开发包公共库中的文件包括但不限于:libbcmx.a、libbcm.alibbcm_esw.a、libsoccommon.a、libfirebolt.a、libbradley.a、libtriumph.a、libtrx.a、libtriumph2.a等以.a为后缀的文件。
具体地,研发人员将原本位于各内核模块文件中的软件开发包公共库提取出来,并指令所述内核生成模块11将所述软件开发包公共库中的所有文件与嵌入式操作系统中的内核程序一并编译和压缩,以得到内核。在编译过程中,所述内核生成模块11将对应所述软件开发包公共库中各文件的参数太阳城集团单独生成一查询列表,并存放在内核的系统文件目录中。
优选地,当所述内核生成模块11对软件开发包公共库和内核程序进行编译时,所述内核生成模块11生成包含所述软件开发包公共库中各文件的参数太阳城集团及所述内核程序中供外部应用调用的参数太阳城集团的核心符号文件(如Linux下的bcm-core-symbols.h文件);再从所述核心符号文件中导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,并将编译后的软件开发包公共库、编译后的内核程序和所述查询列表一并作为内核。接着,所述内核生成模块11采用如GZIP压缩工具等,将所得到的内核予以压缩。其中,所述参数太阳城集团包括但不限于:内核模块文件调用时所需要的函数与变量地址等。
所述公共库调用模块12用于加载去掉软件开发包公共库的内核模块文件,并从中读取所调用的软件开发公共库的参数太阳城集团,通过查询所述查询列表以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库。
具体地,当内核模块文件中不再链接软件开发包公共库时,所述内核模块文件中仅标有所要调用的软件开发包公共库中的参数太阳城集团。所述公共库调用模块12加载所述内核模块文件时,读取所述内核模块文件中的内容,并利用预设的关键符号确定所调用的软件开发公共库的参数太阳城集团。再将所读取的参数太阳城集团与查询列表进行查询匹配,以得到所读取的参数太阳城集团所对应的位于所述内核中的软件开发公共库。
其中,当交换机上不带调试网口时,所述公共库调用模块12通过串口加载内核模块文件。
所述内核模块文件运行模块13用于调用所述内核中所查询到的软件开发公共库,并运行所述内核模块文件。
由于所述内核模块文件中对应内核中软件开发公共库的各参数太阳城集团并无相应链接,所述内核模块文件运行模块13在通过查询找到查询列表中相应的文件后,生成包含文件名、读写命令等的外部调取命令,并通过运行所述外部调取命令调用所查询的软件开发包公共库,以便运行所述内核模块文件。
以Linux操作系统为例,所述内核模块文件运行模块13采用insmod命令动态加载SDK编译生成的内核模块文件,以便对其进行开发调试。
需要说明的是,本领域技术人员应该理解,上述编译系统1可以用在Linux操作系统中,也可以用在具有可压缩内核的其他操作系统中。今后出现的嵌入式操作系统如可应用本发明所述的方案,也应覆盖在本发明所述范围之内。
综上所述,本发明将原本位于内核模块文件中的公共库提取出来,放入内核中,利用内核的压缩机制,有效减小了公共库所占用的存储空间,为运行应用程序提供了更多的存储空间;另外,利用内核编译期间所生成的核心符号文件来导出与所述软件开发包公共库中各参数太阳城集团相关的查询列表,能够便于加载内核模块文件时对软件开发包公共库中各参数太阳城集团进行快速查询;另外,采用串口加载内核模块文件,能够特别针对不带调试网口的交换机设备,有效提高了开发调试期间,加载内核模块文件的效率;还有,去掉内核模块文件中与内核中公共库的链接一致的链接,能够防止调用公共库时出现错误。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

太阳城集团本文
本文标题:软件开发包的编译方法、系统及所适用的交换机设备.pdf
链接地址:http://zh228.com/p-6397721.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');