掌桥专利:专业的专利平台
掌桥专利
首页

一种共用内存的方法、装置、存储介质及计算机设备

文献发布时间:2023-06-19 19:35:22


一种共用内存的方法、装置、存储介质及计算机设备

技术领域

本发明涉及数据处理技术领域,特别涉及一种共用内存的方法、装置、存储介质及计算机设备。

背景技术

现在物联网应用非常广泛,需要使用很多嵌入式的硬件和软件系统,因为数量非常大,对成本也要求比较高,所以往往选择内存比较小的芯片来减少成本,但是软件功能因为应用要求又会比较多,也会对内存的需求量要求比较大,从而出现了成本和功能需求的矛盾,这就对软件设计在内存使用效率上有更高的要求。

现在已经有很多压缩内存、精简数据内容等办法来减少内存的使用。而本发明提出了一种共用内存的设计方法,这种共用内存是将flash(闪存)映射到RAM(内存)地址,这样可以把代码中的常量数据只保留在flash中,不用拷贝到内存里,以减少内存的使用量,还减少代码执行时间。

发明内容

本发明提供一种共用内存的方法、装置、存储介质及计算机设备,能够在较少的内存情况下可以实现更大的数据处理,并且减少代码的执行时间。其具体技术方案如下。

根据本申请的一个方面,提供一种共用内存的方法,所述方法包括:

将数据存放在flash中;

设置执行代码统一访问的地址;

在使用所述数据的情况下,将所述地址当做指针传给所述执行代码,所述执行代码按照指令获取第一地址的第一数据;

在对获取的所述第一数据进行运算的情况下,将运算结果保存到内存里,并提供给后续使用。

进一步地,所述将数据存放在flash中,包括:

在写入代码的情况下,所述数据随所述代码一起写入存放在所述flash中;或,

在初始化时,将所述数据写入存放在所述flash中。

进一步地,所述设置执行代码统一访问的地址,包括:

设置所述数据和所述地址的对应关系;所述数据包括所述第一数据,所述地址包括所述第一地址。

进一步地,所述在使用所述数据的情况下,将所述地址当做指针传给所述执行代码,所述执行代码按照指令获取第一地址的第一数据,包括:

在使用所述数据的情况下,处理器通过第一地址从所述flash中分别获取代码常量区中的代码以及数据区中的数据进行运算。

进一步地,所述处理器从所述flash中分别获取代码常量区中的代码以及数据区中的数据进行运算后,所述在对获取的所述第一数据进行运算的情况下,将运算结果保存到内存里,并提供给后续使用,包括:

将运算后的代码结果以及运算后的所述第一数据的运算结果分别存储在所述内容中。

根据本申请的另一个方面,提供一种共用内存的装置,所述装置包括:

写入模块,用于将数据存放在flash中;

设置模块,用于设置执行代码统一访问的地址;

数据获取模块,用于在使用所述数据的情况下,将所述地址当做指针传给所述执行代码,所述执行代码按照指令获取第一地址的第一数据;

运算模块,用于在对获取的所述第一数据进行运算的情况下,将运算结果保存到内存里,并提供给后续使用。

根据本申请的另一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的共用内存的方法。

根据本申请的另一个方面,提供一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的共用内存的方法。

综上所述,本发明的有益技术效果为:

本实施例提供的方案属于嵌入式软件在内存资源比较紧张的情况下,编写代码时,可以采用共用内存的方法,在较少的内存情况下可以实现更大的数据处理,并且减少代码的执行时间。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图 1 示出了本申请实施例提供的共用内存的方法的流程示意图;

图 2 示出了本申请实施例提供的共用内存的方法的另一流程示意图;

图 3 示出了本申请实施例提供的共用内存的装置的结构示意图。

实施方式

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

现有代码一般都是把常量复制到内存中使用,会占用比较多的内存空间,而且在复制的过程中还额外花费较多的执行时间。本发明是将常量的地址直接映射到数据空间,直接使用那些常量数据,省去了复制的过程,节省了执行时间,也节约了内存空间。

如图1所示,在本发明提供的一些可实现的实施例中,提供一种共用内存的方法,所述方法包括:

将数据存放在flash中;

设置执行代码统一访问的地址;

在使用所述数据的情况下,将所述地址当做指针传给所述执行代码,所述执行代码按照指令获取第一地址的第一数据;

在对获取的所述第一数据进行运算的情况下,将运算结果保存到内存里,并提供给后续使用。

在本发明实施例中,flash是指FLASH闪存,FLASH闪存是属于内存器件的一种,"Flash"。闪存则是一种非易失性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

在本发明实施例中,地址是指代码地址;指针是指内存地址。

在本发明实施例中,第一地址属于地址中的一种,第一数据属于数据的一种。

在本发明实施例中,内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与处理器进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到处理器中进行运算,当运算完成,处理器将结果传送出来。

在本发明实施例中,统一访问的地址可以有一个,也可以有多个,根据实际情况进行设置。

在本发明提供的一些可实现的实施例中,所述将数据存放在flash中,包括:

在写入代码的情况下,所述数据随所述代码一起写入存放在所述flash中;或,

在初始化时,将所述数据写入存放在所述flash中。

在本发明实施例中,所述初始化就是在下载程序的同时进行初始化,目的是把需要用到的数据预先写入到flash里。

在本发明提供的一些可实现的实施例中,所述设置执行代码统一访问的地址,包括:

设置所述数据和所述地址的对应关系;所述数据包括所述第一数据,所述地址包括所述第一地址。

在本发明实施例中,设置所述数据和所述地址的对应关系,例如数据中的第一数据对应地址中第一地址,或数据中的第二数据对应地址中的第二地址,或数据中的第三数据对应地址中的第四地址;所述数据和所述地址的对应关系是指将数据和地址设置关联关系,在访问数据或者地址的情况下,可以通过数据访问到设有关联关系的地址。

如图2所示,在本发明提供的一些可实现的实施例中,所述在使用所述数据的情况下,将所述地址当做指针传给所述执行代码,所述执行代码按照指令获取第一地址的第一数据,包括:

在使用所述数据的情况下,处理器通过第一地址从所述flash中分别获取代码常量区中的代码以及数据区中的数据进行运算。

如图2所示,在本发明提供的一些可实现的实施例中,所述处理器从所述flash中分别获取代码常量区中的代码以及数据区中的数据进行运算后,所述在对获取的所述第一数据进行运算的情况下,将运算结果保存到内存里,并提供给后续使用,包括:

将运算后的代码结果以及运算后的所述第一数据的运算结果分别存储在所述内容中。

如图3所示,在本发明提供的另一些可实现的实施例中,提供一种共用内存的装置,所述装置包括:

写入模块,用于将数据存放在flash中;

设置模块,用于设置执行代码统一访问的地址;

数据获取模块,用于在使用所述数据的情况下,将所述地址当做指针传给所述执行代码,所述执行代码按照指令获取第一地址的第一数据;

运算模块,用于在对获取的所述第一数据进行运算的情况下,将运算结果保存到内存里,并提供给后续使用。

本发明公开一种共用内存的方法,包括:将数据存放在flash中;设置执行代码统一访问的地址;在使用所述数据的情况下,将所述地址当做指针传给所述执行代码,所述执行代码按照指令获取第一地址的第一数据;在对获取的所述第一数据进行运算的情况下,将运算结果保存到内存里,并提供给后续使用;本实施例提供的方案属于嵌入式软件在内存资源比较紧张的情况下,编写代码时,可以采用共用内存的方法,在较少的内存情况下可以实现更大的数据处理,并且减少代码的执行时间。

基于上述如图1所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图所示的共用内存的方法。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

在本发明实施例中,提供一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述的共用内存的方法。

基于上述如图1所示的方法,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1所示的共用内存的方法。

可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。

本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

技术分类

06120115959265