首页 / 专利库 / 电脑零配件 / 嵌入式系统 / 一种嵌入式系统的编译部署方法、编译方法及编译系统

一种嵌入式系统的编译部署方法、编译方法及编译系统

阅读:853发布:2020-05-11

专利汇可以提供一种嵌入式系统的编译部署方法、编译方法及编译系统专利检索,专利查询,专利分析的服务。并且本 发明 提供一种 嵌入式系统 的编译部署方法、编译方法及编译系统,涉及嵌入式系统领域,所述部署方法包括将第一 接口 地址表储存至 操作系统 内存中,并将第一组接口按照索引储存至所述第一接口地址表中;将第二接口地址表储存至应用程序内存中,并将第二组接口按照索引储存至所述第二接口地址表中;所述操作系统和所述应用程序通过所述第一接口地址表或所述第二接口地址表实现 访问 。应用程序编译时可以脱离对操作系统的依赖,在接口不变的情况下,操作系统 修改 不用重新编译应用程序。实现嵌入式系统在不依赖动态库和静态库的情况下实现操作系统与应用 软件 之间的互相访问。,下面是一种嵌入式系统的编译部署方法、编译方法及编译系统专利的具体信息内容。

1.一种嵌入式系统的编译部署方法,其特征在于,所述部署方法包括:
将第一接口地址表储存至操作系统内存中,并将第一组接口按照索引储存至所述第一接口地址表中;
将第二接口地址表储存至应用程序内存中,并将第二组接口按照索引储存至所述第二接口地址表中;
所述操作系统和所述应用程序通过所述第一接口地址表或所述第二接口地址表实现访问
2.根据权利要求1所述的部署方法,其特征在于,新增接口函数时,在接口地址表末尾添加新的接口函数地址。
3.根据权利要求1或2所述的部署方法,其特征在于,删除接口函数时,在删除接口函数地址的位置设置0值。
4.一种嵌入式系统的编译方法,其特征在于,所述编译方法包括:
操作系统提供第一接口地址表,所述第一接口地址表提供第一组接口;
应用程序基于操作系统中第一接口地址表的地址、操作系统接口函数在第一接口地址表中的偏移获取操作系统接口函数的实际地址,然后将所述函数的实际地址强制转化为接口函数地址进行访问。
5.根据权利要求4所述的编译方法,其特征在于,所述编译方法包括:
应用程序提供第二接口地址表,所述第二接口地址表提供第二组接口;
操作系统通过第二接口地址表执行相应接口地址的应用可执行文件。
6.根据权利要求4或5所述的编译方法,其特征在于,所述编译方法:经接口地址表访问接口函数前,判断接口函数地址是否有效。
7.一种嵌入式系统的编译系统,其特征在于,所述编译系统包括:
接口地址表,所述接口地址表包括第一接口地址表和第二接口地址表,所述第一接口地址表储存于操作系统内存中,所述第二接口地址表储存于应用程序内存中;
接口函数地址,所述接口函数地址包括第一接口地址表和第二接口地址表,所述第一组接口按照索引储存于所述第一接口地址表中,所述第二组接口按照索引储存于所述第二接口地址表中;
其中,所述操作系统和所述应用程序通过所述第一接口地址表或所述第二接口地址表实现访问。
8.根据权利要求7所述的编译系统,其特征在于,新增接口函数时,在所述接口地址表末尾添加新的接口函数地址。
9.根据权利要求7或8所述的编译系统,其特征在于,删除接口函数时,在删除所述接口函数地址的位置设置0值。

说明书全文

一种嵌入式系统的编译部署方法、编译方法及编译系统

技术领域

[0001] 本发明属于嵌入式系统领域,特别涉及一种嵌入式系统的编译部署方法、编译方法及编译系统。

背景技术

[0002] 嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。
[0003] 当前嵌入式系统存在如下情况,操作系统(包括BSP)、应用程序共同使用同一内存空间,因此操作系统和应用程序最终一起编译、链接在一起成为一个可执行程序,将该可执行程序部署到硬件设备中运行。
[0004] 现有方法的问题是操作系统(包括BSP)、以及应用程序分别由不同的部进行开发维护,应用程序依赖于操作系统,一旦操作系统修改后重新发布,则应用程序必须使用新的库进行重新编译。当存在多种应用程序时,会由于升级操作系统导致用户大量的重复编译工作,同时对应着重复的版本发布。

发明内容

[0005] 针对上述问题,本发明提供一种嵌入式系统的编译部署方法、编译方法及编译系统。
[0006] 第一方面提供一种嵌入式系统的编译部署方法,所述部署方法包括:
[0007] 将第一接口地址表储存至操作系统内存中,并将第一组接口按照索引储存至所述第一接口地址表中;
[0008] 将第二接口地址表储存至应用程序内存中,并将第二组接口按照索引储存至所述第二接口地址表中;
[0009] 所述操作系统和所述应用程序通过所述第一接口地址表或所述第二接口地址表实现访问
[0010] 进一步地,新增接口函数时,在接口地址表末尾添加新的接口函数地址。
[0011] 进一步地,删除接口函数时,在删除接口函数地址的位置设置0值。
[0012] 第二方面提供一种嵌入式系统的编译方法,所述编译方法包括:
[0013] 操作系统提供第一接口地址表,所述第一接口地址表提供第一组接口;
[0014] 应用程序基于操作系统中第一接口地址表的地址、操作系统接口函数在第一接口地址表中的偏移获取操作系统接口函数的实际地址,然后将所述函数的实际地址强制转化为接口函数地址进行访问。
[0015] 进一步地,所述编译方法包括:
[0016] 应用程序提供第二接口地址表,所述第二接口地址表提供第二组接口;
[0017] 操作系统通过第二接口地址表执行相应接口地址的应用可执行文件。
[0018] 进一步地,所述编译方法:经接口地址表访问接口函数前,判断接口函数地址是否有效。
[0019] 第三方面提供一种嵌入式系统的编译系统,所述编译系统包括:
[0020] 接口地址表,所述接口地址表包括第一接口地址表和第二接口地址表,所述第一接口地址表储存于操作系统内存中,所述第二接口地址表储存于应用程序内存中;
[0021] 接口函数地址,所述接口函数地址包括第一接口地址表和第二接口地址表,所述第一组接口按照索引储存于所述第一接口地址表中,所述第二组接口按照索引储存于所述第二接口地址表中;
[0022] 其中,所述操作系统和所述应用程序通过所述第一接口地址表或所述第二接口地址表实现访问。
[0023] 进一步地,新增接口函数时,在接口地址表末尾添加新的接口函数地址。
[0024] 根据权利要求7或8所述的编译系统,其特征在于,删除接口函数时,在删除接口函数地址的位置设置0值。
[0025] 本发明的提供一种嵌入式系统的编译部署方法、编译方法及编译系统,编译的过程为应用程序根据操作系统中的第一接口地址表的地址、第一组接口在地址表中的偏移,获取操作系统第一接口函数的实际地址,然后将所述第一接口函数的实际地址强制转化为接口函数地址进行访问,此时编译应用程序无需使用操作系统静态库。应用程序编译时可以脱离对操作系统的依赖,在接口不变的情况下,操作系统修改不用重新编译应用程序。实现嵌入式系统在不依赖动态库和静态库的情况下实现操作系统与应用软件之间的互相访问。
[0026] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。

附图说明

[0027] 为了更清楚地说明本发明实施例现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1示出了根据现有技术的编译系统;
[0029] 图2示出了根据本发明实施例的接口地址表;
[0030] 图3示出了根据本发明实施例的编译方法示意图;
[0031] 图4示出了根据本发明实施例的编译系统示意图。

具体实施方式

[0032] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 本发明实施例所提出的操作系统还可以为BSP,BSP为板级支持包是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。在嵌入式系统软件的组成中,就有BSP。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写BSP的编程过程大多数是在某一个成型的BSP模板上进行修改。当前嵌入式系统包括操作系统或者BSP、应用程序,一般分别由不同部分进行开发、维护,最终生成一个可执行文件。如图1所示,操作系统(BSP)、应用程序任何一个发生变化都必须重新编译可执行文件。操作系统和BSP都是属于底层基础软件,因此可能用在多种设备上,即有多个应用程序使用此基础软件,因此当操作系统或BSP一旦发生修改,则上层所有应用程序都得重新编译、重新发布。
[0034] 为此,本发明实施例提供一种嵌入式系统的编译部署方法、编译方法及编译系统,能够保证操作系统(包括BSP)与应用程序互相之间能够分别独立编译,独立部署,当操作系统(包括BSP)修改时,只要操作系统和应用之间的接口不发生变化,则应用可以不用重新编译,不用重新发布。
[0035] 第一方面,本发明实施例提供一种嵌入式系统的编译部署方法,所述部署方法包括:
[0036] 将第一接口地址表储存至操作系统内存中,将第一组接口按照索引储存至所述第一接口地址表中,即一个地址表内,存储的是一组函数的地址。其中系统接口函数位于第一组接口中。具体的,如图2所示,该第一组接口可以为多个,且多个第一组接口按照顺序储存在第一接口地址表,便于索引,其中不同的第一组接口中的具有不同的系统接口函数;
[0037] 将第二接口地址表储存至应用程序内存中,将第二组接口按照索引储存至所述第二接口地址表中,其中应用接口函数位于第二组接口中,具体的,该第二组接口可以为多个,且多个第二组接口按照顺序储存在第二接口地址表,便于索引,其中不同的第二组接口中的具有不同的应用接口函数;
[0038] 所述操作系统和所述应用程序通过所述第一接口地址表或所述第二接口地址表实现访问,如图3所示,即操作系统(包括BSP)、应用程序之间的直接访问,实现实现操作系统(包括BSP)与应用软件之间的互相访问。
[0039] 基于上述方法部署后,进行编译的过程为应用程序根据操作系统中的第一接口地址表的地址、第一组接口在地址表中的偏移,获取操作系统第一接口函数的实际地址,然后将所述第一接口函数的实际地址强制转化为接口函数地址进行访问,此时编译应用程序无需使用操作系统静态库。
[0040] 同理,应用程序也可以通过BSP接口地址表获取BSP接口地址,并直接进行访问,且编译时无须BSP静态库。
[0041] 因此,应用程序编译时可以脱离对操作系统和BSP的依赖,在接口不变的情况下,操作系统修改不用重新编译应用程序。
[0042] 实现嵌入式系统在不依赖动态库和静态库的情况下实现操作系统与应用软件之间的互相访问。
[0043] 具体实施时,例如一个程序分为A、B两个部分开发,这样如果A部分修改程序,只要双方之间的接口不变化,那么B部分可以不用修改,不用重新编译。并且在发布以后,如果其中任何一个有修改,在不改变接口的情况下,另一方可以不用修改,减少重新发布的流程。
[0044] 一实施例中,新增接口函数时,在接口地址表末尾添加新的接口函数地址;具体的,在第一接口地址表中的第一组接口按照顺序储存;当新增第一接口函数时,需要新增第一组接口,此时把新增第一组接口添加在第一接口地址表的末尾。
[0045] 一实施例中,删除接口函数时,在删除接口函数地址的位置设置0值,为了保证向前版本兼容。具体的,如删除第一接口函数时,为了确保向前版本兼容,在被删除的第一接口函数的第一组接口的位置设置0值。
[0046] 上述实施例在具体实施过程中,如图2所示,从图中自下而上依次分布接口1地址、接口2地址、接口3地址,可以根据需要一直分布至接口N地址,其中靠近接口1地址为接口表起始位置,相对应的远离接口1地址的一端为接口地址表末尾。在需要新增接口时,在远离接口1地址的一端添加新的接口函数地址。在需要删除接口函数时,如需要删除接口3地址中的接口函数,在删除其中接口函数后,需要在该接口3地址位置设置0值。
[0047] 第二方面,本发明实施例还提供一种嵌入式系统的编译方法,所述编译方法包括:
[0048] 操作系统提供第一接口地址表,所述第一接口地址表提供第一组接口;
[0049] 应用程序基于操作系统中第一接口地址表的地址、第一组接口在第一接口地址表中的偏移;具体的,接口地址表中存储的是一组函数的地址,这些函数是按照顺序存储的,要获得某一个函数的地址,即从地址表起始地址开始,根据函数在地址表中的顺序位置,找到相应的函数地址,例如32位机,每个函数地址占用4Bytes,如果函数是第3个函数,那么偏移11字节处存储的就是相应函数地址;
[0050] 获取操作系统第一接口函数的实际地址,然后将所述第一接口函数的实际地址强制转化为接口函数地址进行访问。
[0051] 具体的,应用程序也可以通过BSP接口地址表获取BSP接口地址,并直接进行访问。
[0052] 上述实施例能够保证操作系统(包括BSP)与应用程序互相之间能够分别独立编译,独立部署,当操作系统(包括BSP)修改时,只要操作系统和应用之间的接口不发生变化,则应用可以不用重新编译,不用重新发布。上述方法,编译应用程序无须使用操作系统静态库,也无须BSP静态库。
[0053] 一实施例中,如图3所示,所述编译方法包括:
[0054] 应用程序提供第二接口地址表,所述第二接口地址表提供第二组接口;
[0055] 操作系统通过第二接口地址表执行相应接口地址的应用可执行文件。
[0056] 实现嵌入式系统在不依赖动态库和静态库的情况下实现操作系统与应用软件之间的互相访问。
[0057] 一实施例中,所述编译方法:经接口地址表访问接口函数前,判断接口函数地址是否有效。如果无效,则不进行访问,提高编译的效率。
[0058] 第三方面,本发明实施例还提供一种嵌入式系统的编译系统,如图2和4所示,所述编译系统包括接口地址表和接口函数地址,所述接口地址表包括第一接口地址表和第二接口地址表,所述第一接口地址表储存于操作系统内存中,所述第二接口地址表储存于应用程序内存中;
[0059] 所述接口函数地址包括第一接口地址表和第二接口地址表,所述第一组接口按照索引储存于所述第一接口地址表中,所述第二组接口按照索引储存于所述第二接口地址表中;
[0060] 其中,所述操作系统和所述应用程序通过所述第一接口地址表或所述第二接口地址表实现访问。
[0061] 上述编译系统的编译过程为应用程序根据操作系统中的第一接口地址表的地址、第一组接口在地址表中的偏移,获取操作系统第一接口函数的实际地址,然后将所述第一接口函数的实际地址强制转化为接口函数地址进行访问,此时编译应用程序无需使用操作系统静态库。
[0062] 同理,应用程序也可以通过BSP接口地址表获取BSP接口地址,并直接进行访问,且编译时无须BSP静态库。
[0063] 因此,应用程序编译时可以脱离对操作系统和BSP的依赖,在接口不变的情况下,操作系统修改不用重新编译应用程序。
[0064] 实现嵌入式系统在不依赖动态库和静态库的情况下实现操作系统与应用软件之间的互相访问。
[0065] 一实施例中,新增接口函数时,在接口地址表末尾添加新的接口函数地址;具体的,在第一接口地址表中的第一组接口按照顺序储存;当新增第一接口函数时,需要新增第一组接口,此时把新增第一组接口添加在第一接口地址表的末尾。
[0066] 一实施例中,删除接口函数时,在删除接口函数地址的位置设置0值,为了保证向前版本兼容。具体的,如删除第一接口函数时,为了确保向前版本兼容,在被删除的第一接口函数的第一组接口的位置设置0值。
[0067] 尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈