一种程序动态加载方法、装置及电子设备制造方法及图纸

技术编号:34093519 阅读:17 留言:0更新日期:2022-07-11 21:45
本申请公开了一种程序动态加载方法、装置及电子设备,通过该方法在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址运行,判定当前是否需要加载第二应用程序,若是,则退出第一应用程序,并将第二应用程序加载至该共享内存地址运行,通过该方法,可以将应用程序共享同一段物理地址,在加快开机速度的同时节省了内存的使用。在加快开机速度的同时节省了内存的使用。在加快开机速度的同时节省了内存的使用。

【技术实现步骤摘要】
一种程序动态加载方法、装置及电子设备


[0001]本申请涉及计算机
,尤其涉及一种程序动态加载方法、装置及电子设备。

技术介绍

[0002]当前,很多嵌入式实时操作系统基于成本考虑,以及系统架构限制,在代码执行时,数据访问将直接操作物理地址。执行程序在链接时就确定好所有代码,数据运行的物理地址。在嵌入式系统设备启动时,一般就是从系统加载模块运行,从非易失性存储器读取程序到物理内存,然后跳转到执行程序运行。
[0003]当执行程序较为庞大时,系统加载模块对程序加载解压的时间较长,导致程序加载解压时间过程。另外,执行程序较为庞大时,也导致执行程序在执行过程中占用的内存较大。

技术实现思路

[0004]本申请提供了一种程序动态加载方法、装置及电子设备,用以加快开机速度的同时节省了内存的使用。
[0005]第一方面,本申请提供了一种程序动态加载方法,所述方法包括:
[0006]在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址运行;
[0007]判定当前是否需要加载第二应用程序;
[0008]若是,则退出所述第一应用程序,并将所述第二应用程序加载至所述共享内存地址运行;
[0009]若否,则维持所述第一应用程序在所述共享内存地址运行。
[0010]通过本申请所提供的方法,在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址运行,判定当前是否需要加载第二应用程序,若是,则退出第一应用程序,并将第二应用程序加载至该共享内存地址运行。通过该方法可以将应用程序共享同一段物理地址,在加快开机速度的同时节省了内存的使用。
[0011]在一种可能的设计中,在将系统界面资源数据加载至指定内存地址运行之前,所述方法还包括:
[0012]获取源系统界面资源数据对应的段标识,通过链接脚本文件将所述段标识添加至指定运行地址;
[0013]通过指定工具将添加了段标识的源系统界面元素资源数据抽取为系统界面资源镜像文件。
[0014]在一种可能的设计中,在将系统界面资源数据加载至指定内存地址运行之前,所述方法还包括:
[0015]将系统中的各个应用程序对应的对象文件以及库文件的代码段添加至共享内存地址。
[0016]在一种可能的设计中,所述方法还包括:
[0017]通过链接脚本文件对链接进行编译,得到系统堆运行地址;
[0018]通过所述系统堆地址,计算出所述系统界面资源数据对应的指定运行地址以及各个应用程序对应的所述共享内存地址。
[0019]第二方面,本申请提供了一种程序动态加载装置,所述装置包括:
[0020]加载模块,用于在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址运行;
[0021]处理模块,用于判定当前是否需要加载第二应用程序;若是,则退出所述第一应用程序,并将所述第二应用程序加载至所述共享内存地址运行;若否,则维持所述第一应用程序在所述共享内存地址运行。
[0022]在一种可能的设计中,所述处理模块,还用于获取源系统界面资源数据对应的段标识,通过链接脚本文件将所述段标识添加至指定运行地址;通过指定工具将添加了段标识的源系统界面元素资源数据抽取为系统界面资源镜像文件。
[0023]在一种可能的设计中,所述处理模块,还用于将系统中的各个应用程序对应的对象文件以及库文件的代码段添加至共享内存地址。
[0024]在一种可能的设计中,所述处理模块,还用于通过链接脚本文件对链接进行编译,得到系统堆运行地址;通过所述系统堆地址,计算出所述系统界面资源数据对应的指定运行地址以及各个应用程序对应的所述共享内存地址。
[0025]第三方面,本申请提供了一种电子设备,包括:
[0026]存储器,用于存放计算机程序;
[0027]处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的程序动态加载方法步骤。
[0028]第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的程序动态加载方法步骤。
[0029]上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
[0030]图1为本申请提供的一种程序动态加载方法的流程图;
[0031]图2为本申请提供的一种嵌入式实时系统的结构示意图;
[0032]图3为本申请提供的运行地址加载方法流程图;
[0033]图4为本申请提供的内存布局示意图;
[0034]图5为本申请提供的一种程序动态加载装置的结构示意图;
[0035]图6为本申请提供的一种电子设备的结构示意图。
具体实施方式
[0036]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例
中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
[0037]下面结合附图,对本申请实施例进行详细描述。
[0038]为了解决上述问题,本申请提供了一种程序动态加载方法,在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址运行,判定当前是否需要加载第二应用程序,若是,则退出第一应用程序,并将第二应用程序加载至该共享内存地址运行,通过该方法,可以将应用程序共享同一段物理地址,在加快开机速度的同时节省了内存的使用。
[0039]参照图1所示为本申请实施例中提供的一种程序动态加载方法,通过该方法可以将应用程序共享同一段物理地址,该方法具体如下:
[0040]步骤S1,在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址运行;
[0041]首先来讲,在本申请所提供的方法可以应用到如图2所示的一种嵌入式实时系统中,该嵌入式实时系统中包括了系统加载模块Bootloader,系统模块镜像system module,标识logo,系统界面元素资源UI resource以及应用程序APP1、APP2、APP3。
[0042]其中,该Bootloader用于上电初始化CPU以及内存,并将系统模块从非易失性闪存中转载到内存执行;系统模块镜像system module用于整个应用的初始化,执行正常周期运作;标识logo本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序动态加载方法,其特征在于,所述方法包括:在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址运行;判定当前是否需要加载第二应用程序;若是,则退出所述第一应用程序,并将所述第二应用程序加载至所述共享内存地址运行;若否,则维持所述第一应用程序在所述共享内存地址运行。2.如权利要求1所述的方法,其特征在于,在将系统界面资源数据加载至指定内存地址运行之前,所述方法还包括:获取源系统界面资源数据对应的段标识,通过链接脚本文件将所述段标识添加至指定运行地址;通过指定工具将添加了段标识的源系统界面元素资源数据抽取为系统界面资源镜像文件。3.如权利要求1所述的方法,其特征在于,在将系统界面资源数据加载至指定内存地址运行之前,所述方法还包括:将系统中的各个应用程序对应的对象文件以及库文件的代码段添加至共享内存地址。4.如权利要求2

3中任一权项所述的方法,其特征在于,所述方法还包括:通过链接脚本文件对链接进行编译,得到系统堆运行地址;通过所述系统堆地址,计算出所述系统界面资源数据对应的指定运行地址以及各个应用程序对应的所述共享内存地址。5.一种程序动态加载装置,其特征在于,所述装置包括:加载模块,用于在将系统界面元素资源数据加载至指定内存地址运行时,加载第一应用程序到共享内存地址...

【专利技术属性】
技术研发人员:潘锋王祥
申请(专利权)人:珠海海奇半导体有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1