用于调用共享库的方法及装置、电子设备与流程

文档序号:37541968发布日期:2024-04-08 13:41阅读:11来源:国知局
用于调用共享库的方法及装置、电子设备与流程

本申请涉及程序存储,例如涉及一种用于调用共享库的方法及装置、电子设备。


背景技术:

1、目前,嵌入式系统包括bootloader(启动加载程序)以及application两种类型的应用程序。启动加载程序用于启动或者加载应用程序和控制应用程序升级或者部分硬件模块自检。application用于用户应用业务的处理。在启动加载程序和应用程序需要执行相同的功能程序或者调用相同的算法时且前述功能程序或者算法具有升级需求时,如何对嵌入式系统进行相应配置,使得具有调用算法需求的启动加载程序和应用程序均能够成功调用算法,成为当前亟需解决的技术问题。

2、为解决上述技术问题,相关技术公开以下方案:从bootloader和application中确定具有调用需求的目标应用程序;将功能程序或者算法分别存储至目标应用程序;通过目标应用程序对功能程序或者算法进行调用;和/或,通过对目标应用程序执行升级操作实现存储至目标应用的功能程序或者算法的同步升级。

3、在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:

4、在bootloader和application均具有调用相同功能程序或者算法的需求时,需要将功能程序或者算法分别存储至具有调用需求的所有应用程序中。倘若上述功能程序或者算法占用较大存储空间,则会占用具有调用需求的应用程序较大存储空间,会对电子设备的正常运行产生影响。

5、需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。

2、本公开实施例提供了一种用于调用共享库的方法、装置和电子设备,以降低对配置有嵌入式系统的电子设备存储空间的占用,提高存储空间的利用率。

3、在一些实施例中,所述方法包括:获得共享库所关联的库信息以及子函数集;其中,子函数集包括一个或者多个子函数,每个子函数包括子函数名称及子函数地址;基于库信息及子函数集构建共享库,并存储共享库至宿主环境所关联的宿主;基于第一函数调用指令中的函数名称和函数地址,查找共享库中每个子函数的子函数名称以及子函数地址,确定第一目标子函数;从共享库中调用第一目标子函数以实现相应的子函数功能。

4、在一些实施例中,从共享库中调用第一目标子函数以实现相应的子函数功能,包括:获得共享库中每个第一目标子函数的子函数名称及子函数地址;基于每个第一目标子函数的子函数名称及子函数地址,依次加载子函数集中的每个第一目标子函数以执行相应的子函数功能。

5、在一些实施例中,获得共享库中每个第一目标子函数的子函数名称及子函数地址,包括:初始化宿主以初始化子函数集;加载库信息并对共享库进行合法性检查;在检查结果满足合法性条件的情况下,获得每个第一目标子函数的子函数名称及子函数地址。

6、在一些实施例中,每个子函数还包括子函数属性及子函数程序,第一函数调用指令包括函数地址以及函数属性;其中,依次加载子函数集中的每个第一目标子函数以执行相应的子函数功能,包括:读取第一目标子函数的第一目标子函数属性以及第一目标子函数程序;在第一函数调用指令中的函数属性与第一目标子函数属性相匹配的情况下,根据第一目标子函数的子函数地址加载第一目标子函数程序以执行相应的子函数功能。

7、在一些实施例中,每个子函数还包括子函数程序,方法还包括:存储共享库至宿主环境所关联的宿主后,接收函数更新指令,获得第二目标子函数关联的更新子函数程序;确定第二目标子函数的子函数地址及子函数程序,并基于第二目标子函数的子函数地址确定目标函数地址;存储更新子函数程序至目标函数地址,以新增第二目标子函数的子函数程序,或者,更新第二目标子函数的子函数程序。

8、在一些实施例中,函数更新指令携带有更新需求,基于第二目标子函数的子函数地址确定目标函数地址,包括:在更新需求表示允许保留子函数程序的情况下,根据第二目标子函数的子函数地址获得第二目标子函数的目标程序终止地址,并确定为目标函数地址;或者,在更新需求表示禁止保留子函数程序的情况下,根据第二目标子函数的子函数地址获得第二目标子函数的目标程序起始地址,并确定为目标函数地址。

9、在一些实施例中,第二目标子函数的子函数程序包括初始子函数程序和更新子函数程序;方法还包括:存储更新子函数程序至目标函数地址后,基于第二函数调用指令,确定共享库关联的应用程序的应用程序更新状态;在应用程序更新状态为未更新的情况下,获得应用程序的程序版本号;在程序版本号与更新子函数程序的函数版本所对应的程序版本号不匹配的情况下,调用初始子函数程序;或者,在程序版本号与更新子函数程序的函数版本所对应的程序版本号相匹配的情况下,调用更新子函数程序或者初始子函数程序;在应用程序更新状态为更新的情况下,调用初始子函数程序或者更新子函数程序。

10、在一些实施例中,按照如下方式确定宿主环境,包括:获得系统级芯片的系统配置信息;根据系统配置信息,确定宿主环境。

11、在一些实施例中,所述装置,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行如权前述的用于调用共享库的方法。

12、在一些实施例中,所述电子设备,包括:设备本体,配置嵌入式系统;如前述的用于调用共享库的装置,安装于所述嵌入式系统。

13、本公开实施例提供的用于调用共享库的方法、装置和电子设备,可以实现以下技术效果:

14、本公开实施例获取共享库关联的库信息及包括一个或者多个子函数的子函数集后,基于库信息和子函数集构建共享库并存储共享库至宿主环境所关联的宿主。再基于第一函数调用指令中的函数名称和函数地址,查找共享库中的每个子函数的子函数名称和子函数地址,以确定出第一目标子函数。最后,从共享库中调用第一目标子函数以实现相应的子函数功能。本公开实施例在需要执行子函数调用时,可以从宿主中查找共享库中是否存在目标子函数,并在查找成功后进行目标子函数的调用。如此,在不同的应用程序需要使用相同功能或者相同算法的程序时,可以通过从存储于宿主的共享库中查找并调用子函数的方式实现子函数的调用以实现共享库的共享调用,从而减少对系统级芯片存储空间的占用,提升系统级芯片存储空间的利用率。

15、以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。



技术特征:

1.一种用于调用共享库的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,从共享库中调用第一目标子函数以实现相应的子函数功能,包括:

3.根据权利要求2所述的方法,其特征在于,获得共享库中每个第一目标子函数的子函数名称及子函数地址,包括:

4.根据权利要求2所述的方法,其特征在于,每个子函数还包括子函数属性及子函数程序,第一函数调用指令包括函数地址以及函数属性;

5.根据权利要求1所述的方法,其特征在于,每个子函数还包括子函数程序,方法还包括:

6.根据权利要求5所述的方法,其特征在于,函数更新指令携带有更新需求,基于第二目标子函数的子函数地址确定目标函数地址,包括:

7.根据权利要求5所述的方法,其特征在于,第二目标子函数的子函数程序包括初始子函数程序和更新子函数程序;方法还包括:

8.根据权利要求1至7任一项所述的方法,其特征在于,按照如下方式确定宿主环境,包括:

9.一种用于调用共享库的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至8任一项所述的用于调用共享库的方法。

10.一种电子设备,其特征在于,包括:


技术总结
本申请涉及程序存储技术领域,公开一种用于调用共享库的方法,包括:获得共享库所关联的库信息以及子函数集;其中,子函数集包括一个或者多个子函数,每个子函数包括子函数名称及子函数地址;基于库信息及子函数集构建共享库,并存储共享库至宿主环境所关联的宿主;基于第一函数调用指令中的函数名称和函数地址,查找共享库中每个子函数的子函数名称以及子函数地址,确定第一目标子函数;从共享库中调用第一目标子函数以实现相应的子函数功能。该方法能够降低对配置有嵌入式系统的电子设备存储空间的占用,提高存储空间的利用率。本申请还公开一种用于调用共享库的装置及电子设备。

技术研发人员:陈雅慧,杨宇
受保护的技术使用者:紫光同芯微电子有限公司
技术研发日:
技术公布日:2024/4/7
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1