1.本发明涉及系统分区,尤其涉及一种应用于嵌入式系统的存储分区方法、装置及存储介质。
背景技术:2.多核异构处理器是指将多个结构、功能、运算性能不同的单核处理器集成在一颗芯片上,比如在同一芯片上同时集成crote
‑
a15处理器、dsp处理器和cortex
‑
m4处理器。通过在一个芯片上集成多个处理器,可根据不同单核处理器的功能和性能将不同的任务分配给不同的处理器来处理,使得每个处理器做到物尽其用,实现资源的最佳配置。
3.在多核异构处理器中多个处理器需要共同使用外存储设备和内存储设备,因此对于上述存储设备的分配使用是多核异构处理器正常运行的关键问题。存储器的分配使用还需要保证多个处理器的每个计算单元在访问存储器时不能冲突。比如,对于外存储设备,每个处理器需要单独享有外存储设备的部分空间,用于存储各个处理器的应用程序以及数据信息,以及外存储设备上还需要设有用于多个处理器进行数据交互的共享区域。对于嵌入式系统中,由于嵌入式系统的外存储设备以及内存储设备的容量普遍较小,资源相对较为紧张,在多核处理器中需要将有限的存储资源分配成每个处理器单独使用的私有内存和所有处理器可共同访问的共享内存时,为了保证系统的内存资源的合理分配,保证资源利用最大化时,对于存储器的分区方案显得更为重要。但是,现有的对于嵌入式系统的存储器的分区方案,一般是由处理器的厂商根据经验或理论值预先为嵌入式系统的存储器机芯分区设置,存储器的分区设置一旦设定后不能修改。但是,在实际的应用场景不同时,每个处理器所实现的功能不同,所运行的应用程序不同,导致其所需要的存储空间有所不同,则会导致原有供应商提供的分区方案并不能够保证资源的有效利用,比如某个处理器分配的存储资源较多导致资源剩余;而某个处理器分配的存储资源较少导致资源不足,无法实现资源的利用最大化。
技术实现要素:4.为了克服现有技术的不足,本发明的目的之一在于提供应用于嵌入式系统的存储分区方法,其能够解决现有技术中嵌入式系统存储设备的分区无法根据实际的应用场景进行设置而导致资源不能有效利用等问题。
5.本发明的目的之二在于提供应用于嵌入式系统的存储分区装置,其能够解决现有技术中嵌入式系统存储设备的分区无法根据实际的应用场景进行设置而导致资源不能有效利用等问题。
6.本发明的目的之三在于提供一种存储介质,其能够解决现有技术中嵌入式系统存储设备的分区无法根据实际的应用场景进行设置而导致资源不能有效利用等问题。
7.本发明的目的之一采用如下技术方案实现:
8.应用于嵌入式系统的存储分区方法,所述嵌入式系统包括多个处理器、内存储设
备和外存储设备,所述存储分区方法包括:
9.第一获取步骤:获取嵌入式系统中所有处理器以及每个处理器运行时所需存储空间;
10.第二获取步骤:获取多个处理器运行时数据交互量并根据多个处理器运行时数据交互量得出多个处理器运行时数据交互所需存储空间;
11.第三获取步骤:获取并根据每个处理器的全部应用程序的文件大小以及每个处理器的全部应用程序运行时所产生的数据记录文件的大小得出每个处理器存储时所需存储空间;
12.内存储设备分区步骤:根据系统中处理器的个数、每个处理器运行时所需存储空间以及多个处理器运行时数据交互所需存储空间确定内存储设备的分区个数以及每个分区的类型、大小,并根据内存储设备的分区个数以及每个分区的类型、大小对内存储设备进行区域划分;
13.外存储设备分区步骤:根据每个处理器存储时所需存储空间、系统文件的大小确定外存储设备的分区个数以及每个分区的类型、大小,并根据外存储设备的分区个数以及每个分区的类型、大小对外存储设备进行区域划分。
14.进一步地,所述第一获取步骤包括:首先将对应处理器的全部应用程序启动并连续运行预设时间段;然后在预设时间段内依次每隔预设时间间隔通过系统指令或工具统计系统内存使用情况,并根据系统内存使用情况记录系统内存使用量;将多个系统内存使用量中的最大值作为对应处理器运行时所需存储空间。
15.进一步地,所述预设时间段为24小时,所述预设时间间隔为30秒。
16.进一步地,所述内存储设备包括独立分区和共享分区;独立分区的个数与处理器的个数相同,并且每个处理器对应一个独立分区。
17.进一步地,每个独立分区的分区大小=每个处理器运行时所需存储空间+每个处理器运行时所需存储空间*w1;共享分区的分区大小=多个处理器运行时数据交互所需存储空间+多个处理器运行时数据交互所需存储空间*w1;其中,w1的取值范围为[0.2,0.6]。
[0018]
进一步地,所述外存储设备包括boot分区、kernel分区、filesystem分区和data分区;其中,boot分区,用于存储系统引导程序文件;kernel分区,用于存储嵌入式系统内核镜像文件;filesystem分区,用于存储系统文件以及各个处理器应用程序文件;所述data分区,用于存储每个处理器的应用程序运行时所产生的数据记录文件。
[0019]
进一步地,所述外存储设备还包括boot备份分区、kernel分区和update升级分区;其中,boot分区、boot备份分区、kernel分区、kernel备份分区,filesystem文件系统分区、数据存储分区、update系统升级分区的分区顺序为从外存储设备的0地址开始。
[0020]
进一步地,所述内存储设备为ddr存储器;所述外存储设备为eemc存储器。
[0021]
本发明的目的之二采用如下技术方案实现:
[0022]
应用于嵌入式系统的存储分区装置,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序为存储分区程序,所述处理器执行所述存储分区程序时实现如本发明的目的之一采用的应用于嵌入式系统的存储分区方法的步骤。
[0023]
本发明的目的之三采用如下技术方案实现:
[0024]
一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序为存储分区程序,所述存储分区程序被处理器执行时实现如本发明的目的之一采用的应用于嵌入式系统的存储分区方法的步骤。
[0025]
相比现有技术,本发明的有益效果在于:
[0026]
本发明通过获取系统中多个处理器在运行时所需的存储空间、多个处理器在运行时数据交互的存储空间以及每个处理器存储时存储空间等来确定内存储设备、外存储设备的分区个数、分区类型以及分区大小等,从而可使得存储器的分区方案可根据嵌入式系统的实际应用场景进行划分,解决了现有技术中存储器的分区只能由供应商在出厂之前预置并无法改变,导致分区方案与现有的实际应用场景不匹配,导致资源利用率不足等问题。
附图说明
[0027]
图1为存储设备未分区时外存储设备、内存储设备与处理器的对应关系图;
[0028]
图2为本发明提供的外存储设备、内存储设备的分区示意图;
[0029]
图3为图2中的分区方案应用于驾驶相关的嵌入式系统中的各个分区的分区大小示意图;
[0030]
图4为本发明提供的应用于嵌入式系统的存储分区方法流程图;
[0031]
图5为图4中步骤s1的流程图;
[0032]
图6为本发明提供的应用于嵌入式系统的存储分区装置模块图。
具体实施方式
[0033]
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
[0034]
实施例一
[0035]
本发明提供一种应用于嵌入式系统的存储分区方法,根据嵌入式系统中的所有处理器在实际运行过程中所需要的存储空间来确定系统中存储设备的分区方案,可根据实际的应用场景对存储设备的分区进行设置,进而保证资源的最大化利用,同时也解决现有技术中一旦存储设备的分区设定后无法更改等问题,可满足不同的应用场景的需求。
[0036]
本发明提供了一种应用于嵌入式系统的存储分区方法,如图4所示,包括以下步骤:
[0037]
步骤s1、获取嵌入式系统内所有处理器以及每个处理器运行时所需存储空间。
[0038]
对于具有多核处理器的嵌入式系统来说,每个处理器可根据实际的需求设定相应的功能,比如数据存储、运算等可分别在不同的处理器上运行,因此,每个处理器上会应用对应的应用程序。
[0039]
因此,本发明中对于处理器运行时所需要存储空间是根据处理器上的应用程序来决定的。比如,针对应用于驾驶相关的应用场景时的嵌入式系统,该系统中同时会有多个任务运行:
[0040]
数据采集:车辆信息数据的输入、gps(global positioning system,全球定位系统)数据的输入、外部imu数据的输入以及高精度地图数据的输入;
[0041]
数据管理:原始数据的保存、结果数据的保存及输出;
[0042]
算法的解算:定位定向算法、车辆运行模型算法以及高精度地图融合算法。
[0043]
对于上述数据的采集、数据管理以及算法的解算等任务来说,由于其处理复杂度、处理时效性等有所不同,在实际的应该过程中,会将不同的任务通过对应的处理器来实现,从而达到最好的处理性能。
[0044]
假设对于嵌入式系统来说,其处理器包括cortex
‑
a15处理器、dsp处理器、cortex
‑
m4处理器所组成。为了提高数据处理的性能,在任务分配上,将数据管理、文件管理的任务通过cortex
‑
a15处理器上运行,将实时性要求高、频率高的任务通过cortex
‑
m4处理器上运行,将一些复杂度高、对实时性要求高的算法解算任务通过dsp处理器上运行。比如将一些计算量大的任务分配给dsp处理器进行处理,可实现及时地、快速地处理。
[0045]
因此,为了保证系统的安全运行,对于存储设备上每个处理器的独立分区需要满足每个处理器的正常运行。然而在系统中处理器的应用程序未运行时,系统并无法确定各个处理器运行时所需存储空间。
[0046]
本发明在确定处理器运行时所需存储空间时,首先将系统初始化并启动处理器,同时加载处理器所对应的全部应用程序运行,然后通过系统的对应工具或指令来获取每个处理器的全部应用程序运行时系统的存储内存使用情况,并根据系统的内存使用情况来判断每个处理器运行时所需存储空间。
[0047]
优选地,为了保证数据的准确性,在确定处理器运行时所需存储空间时,如图5所示,步骤s1具体包括:
[0048]
步骤s11、将对应处理器的全部应用程序启动并连续运行预设时间段。
[0049]
步骤s12、在预设时间段内依次每个预设时间间隔通过系统指令或工具查询系统内存使用量并记录。
[0050]
步骤s13、将系统内存使用量的最大值作为对应处理器所需运行存储空间。
[0051]
优选地,预设时间段为24小时,预设时间间隔为30秒。
[0052]
步骤s2、获取多个处理器运行时数据交互量并得出多个处理器运行时数据交互所需存储空间。也即,通过将多个处理器的全部应用程序全部运行时,可根据系统中多个处理器的数据交互量来多个处理器运行时数据交互所需存储空间。
[0053]
为了便于说明分区方案,本发明给出一具体的实例,设定具有多核处理器的嵌入式系统,如图1所示,处理器架构包括cortex
‑
a15处理器、dsp处理器和第一cortex
‑
m4处理器和第二cortex
‑
m4。
[0054]
存储设备包括外存储设备和内存储设备。其中,内存储设备为ddr存储器,外存储设备为emmc存储器。emmc(embedded multi media card)存储器是一种非易失性存储器,广泛应用于嵌入式产品以及消费电子等产品,在嵌入式领域中emmc主要用于存储例如系统镜像文件,系统所需的文件系统以及用户应用程序等等。ddr(double data rate)为双倍速率同步动态随机存储器,是内存的其中一种,用于运行应用程序,将存储在例如emmc中的应用程序加载到ddr中运行,也称为运行内存。从图1中可知,每个处理器均需对内存储设备进行访问,外存储设备由cortex
‑
a15处理器进行统一管理。
[0055]
因此,在对内存储设备以及外存储设备进行分区时,首先需要确定每个处理器在对应存储设备上所需存储空间。比如,对于内存储设备时,需要获取每个处理器在运行时所
需的存储空间,而对外存储设备来说,则需要获取每个处理器的应用程序的文件以及运行过程中所产生的数据记录文件等,才能对存储设备的各个分区的分区大小进行确定。
[0056]
因此,对于不同的处理器来说,其在获取每个处理器运行时所需存储空间时,其所采用的工具和指令有所不同。
[0057]
比如以图2为例:对于cortex
‑
a15处理器来说,通过将cortex
‑
a15处理器的全部应用程序连续运行24小时,并在连续运行24小时的期间段内每隔30秒通过free指令查看系统内存使用情况得出系统内存使用量,然后从多个系统内存使用量中选择最大值作为cortex
‑
a15处理器运行时所需存储空间。
[0058]
同理,对dsp处理器来说:通过将dsp处理器的全部应用程序连续运行24小时,并在运行期间每隔30秒通过jiag调试工具查看系统内存使用情况得出系统内存使用量,然后从多个系统内存使用量中选择最大值作为dsp处理器运行时所需存储空间。
[0059]
对于两个cortex
‑
m4处理器来说,通过将每个cortex
‑
m4处理器的全部应用程序连续运行24小时,并在运行期间每隔30秒通过jiag调试工具查看系统内存使用情况得出系统内存使用量,然后从多个系统内存使用量中选择最大值作为每个cortex
‑
m4处理器运行时所需存储空间。
[0060]
对于嵌入式系统来说,系统中的存储设备包括内存储设备和外存储设备。其中,内存储设备一般为ddr存储器,也称为内存,每个处理器在内存储设备上均具有独立分区,同时多个处理器在内存储设备上还具有共享分区。其中,独立分区为每个处理器运行时所访问的区域,共享分区为多个处理器数据交互时所访问的区域。
[0061]
也即,本发明还包括步骤s3、根据每个处理器运行时所需存储空间以及每个处理器运行时数据交互所需存储空间确定内存储设备的分区类型、分区个数以及分区大小。
[0062]
具体地,如图2所示,ddr存储器包括第一独立分区、第二独立分区、第三独立分区、第四独立分区和共享分区。
[0063]
其中,第一独立分区为cortex
‑
a15分区、第二独立分区为dsp分区、第三独立分区为第一cortex
‑
m4分区、第四独立分区为第二cortex
‑
m4分区、共享分区为shared rggion分区;并且,cortex
‑
a15分区为处理器cortex
‑
a15独立使用的区域,dsp分区为dsp处理器单独使用的区域,两个cortex
‑
m4分区分别为两个cortex
‑
m4处理器单独使用的区域,shared rggion分区为四个处理器进行数据交换的共享内存区域。
[0064]
也即,每个独立分区的分区大小是根据每个处理器运行时所需存储空间来确定的,共享分区的分区大小是根据多个处理器运行时数据交互量所确定的。为了保证系统的稳定运行,一般来说,每个处理器的独立分区的分区大小需要大于每个处理器运行时所需存储空间。
[0065]
同理,共享分区的分区大小需要大于多个处理器运行时数据交互量。
[0066]
优选地,每个独立分区的分区大小=每个处理器运行时所需存储空间+每个处理器运行时所需存储空间*w1;共享分区的分区大小=多个处理器运行时数据交互所需存储空间+多个处理器运行时数据交互所需存储空间*w1。其中,w1的取值范围为[0.2,0.6]。
[0067]
也即,在原有的每个处理器运行时所需存储空间的基础上上调20%~60%,来确定每个处理器的独立分区的分区大小。同理确定共享分区的分区大小。本发明通过在实际所需的存储空间的基础上,预留出相应的冗余空间,便于在实际应用过程中的扩展;同时,
也可以避免由于其他因素可能导致实际获取的数据不准确导致分区大小错误,影响处理器的使用。
[0068]
对于w1的取值,可根据实际的内存储设备的空间大小进行调整。
[0069]
优选地,外存储设备,一般为emmc存储器,其由系统中的内核处理器进行统一管理,该存储器,主要用于存储不同处理器的应用程序及数据信息,比如包括系统文件、处理器的应用程序运行时所产生的数据记录文件、应用程序的程序文件等等。
[0070]
为了确定外存储设备的各个分区的分区类型、分区大小、分区数目等,本发明还包括:
[0071]
步骤s4、获取并根据每个处理器的全部应用程序的文件大小以及每个处理器的全部应用程序运行时所产生的数据记录文件的大小得出每个处理器存储时所需存储空间。
[0072]
步骤s5、根据每个处理器存储时所需存储空间确定外存储设备的分区类型、分区个数以及分区大小。
[0073]
以图2为例,对于cortex
‑
m4处理器来说,通过获取cortex
‑
m4处理器的全部应用程序的文件大小和每个应用程序运行时所产生的数据记录文件来确定cortex
‑
m4处理器在外存储设备上所需存储空间。
[0074]
对于dsp处理器来说,通过获取dsp核运行的应用程序的文件大小以及每个应用程序运行所产生的数据记录文件来确定dsp处理器在外存储设备上所需存储空间。
[0075]
对于cortex
‑
a15处理器来说,由于cortex
‑
a15处理器为系统的内核处理器,一般用于存储嵌入式系统的系统内核镜像文件、系统文件以及用户数据等。因此,通过嵌入式系统的系统内核镜像文件、系统文件以及用户数据的大小来确定cortex
‑
a15处理器在外存储设备上所需存储空间。
[0076]
更为优选地,根据外存储设备的分区经验可知,外存储设备的分区包括boot区、kernel分区、filesystem分区和data分区。
[0077]
其中,boot分区,用于存储嵌入式系统的系统引导程序文件。kernel分区,用于存储嵌入式系统的系统内核镜像文件。filesystem文件系统分区,用于存储系统文件以及各个处理器的应用程序文件。data分区,用于存储每个处理器的应用程序运行时所产生的数据文件。
[0078]
从上可知,一把来说,系统引导程序文件、系统内核镜像文件相对固定,因此,boot分区、kernel分区的分区大小也相对固定,为了考虑到后续场景的扩展需求,在确定boot分区、kernel分区的分区大小时,预留一定的冗余空间,也即在实际的文件大小的基础上上调20%~50%来确定对应分区的大小。
[0079]
也即boot分区的分区大小=系统引导程序文件的大小+系统引导程序文件的大小*w2。w2的取值范围为[0.2,0.5]。
[0080]
同理,kernel分区的分区大小=系统内核镜像文件的大小+系统内核镜像文件的大小*w2。
[0081]
对于filesystem文件系统分区来说,在系统中的系统文件以及各个处理器的应用程序文件的基础上上调20%~50%来确定filesystem文件系统分区的分区大小。
[0082]
在确定boot分区、kernel分区、filesystem分区的分区大小后,将剩余的分区设为data分区。
[0083]
更为优选地,根据实际的情况不同,对于外存储设备的分区还包括boot backup分区、kernel backup分区和update分区,分别用于存储boot分区的备份kernel分区的备份以及升级文件。另外,对于外存储器的分区类型以及分区个数等可根据实际的需求进行设定。
[0084]
如图3所示,本发明提供的应用于嵌入式系统的分区方法应用于驾驶相关的嵌入式系统中,该嵌入式系统包括cortex
‑
a15处理器、dsp处理器和两个cortex
‑
m4处理器。
[0085]
其中,内存储设备:ddr存储器的存储空间大小512mb,外存储设备:emmc存储器的存储空间大小8gb。
[0086]
如图3所示,emmc存储器的分区划分为:boot分区、boot备份分区、kernel分区、linux文件系统分区、数据存储分区、update升级分区。
[0087]
其中,boot分区,用于存储mlo、u
‑
boot.img系统引导程序。由于mlo和u
‑
boot.img文件较小大小相对固定,总大小为2mb左右。考虑其他应用场景需扩展uboot功能,预留50%大小冗余空间,则boot分区的分区大小设为3mbboot备份分区,用于备份系统引导程序uboot.img。也即,在boot分区的系统引导程序发生损坏时,可从该boot备份分区启动系统,同时恢复boot分区的引导程序,提高系统的稳定性。优选地,boot备份分区用于存储两份boot分区的引导程序,则其分区大小设置为6mb。
[0088]
kernel分区,用于存储嵌入式系统的linux内核镜像文件。由于该内核镜像文件的大小相对固定,总大小3.3mb。考虑其他应用场景扩展内核功能,预留50%大小冗余空间,则kernel分区的分区大小设为5mb。
[0089]
kernel备份分区,用于备份linux内核镜像文件。同理,kernel备份分区,用于存储两份内核镜像文件,则其分区大小设置为10mb。
[0090]
filesystem文件系统分区,用于存储linux系统的系统、各个处理器的应用程序文件等,也即用于存储系统中的各种文件。设定嵌入式系统中的文件系统的总大小为180mb,则将该分区的大小设为3gb。由于,系统在实际应用过程中,文件系统中的系统日志文件会频繁产生以及删除等操作,导致分区会出现频繁擦写,而外存储设备emmc存储器存在一定的擦写寿命,当某一分区达到emmc存储器的擦写寿命后该分区将无法使用。因此,通过扩大文件系统分区的方式,加大可擦写区域,可有效解决上述问题,提高整体分区使用寿命。
[0091]
data分区,用于存储每个处理器的每个应用程序运行时产生的数据文件。同样考虑频繁擦写的问题,为提高整体分区使用寿命,将data分区的分区大小设为4gb。
[0092]
update分区,用于存放升级文件。其中,升级文件包含整个系统的系统升级包以及各处理器的每个应用程序的升级文件。设定系统升级包以及各个应用程序的升级文件的总大小为120mb,则考虑其他应用场景拓展性,将data分区的分区大小设为200mb。
[0093]
对于内存储设备ddr存储器包括cortex
‑
a15分区、dsp分区、cortex
‑
m4分区和共享内存分区。
[0094]
sharedregina共享内存分区,用于多个处理器运行时的数据交互所访问的区域。根据多处理器运行时的数据交互量的大小设定该分区的分区大小为32mb。
[0095]
dsp分区,是指dsp处理器运行时所访问的独立区域。一般来说,基于dsp处理器的有点,在实际的应用过程中,dsp处理器主要用于执行一些复杂度高、对实时性要求高的算法解算任务,涉及到各类的算法以及数学运算等,其需要消耗较大内存。因此,根据组合定位场景下涉及到的定位定向算法、车辆运动模型算法、以及高精度地图融合算法等综合结
果,考虑拓展其他算法功能,将dsp分区的分区大小设为140mb。
[0096]
cortex
‑
m4分区,用于imu数据读取以及其他核监控,其消耗内存量较少,则分别将两个cortex
‑
m4分区的分区大小设为16mb,以分别供两个cortex
‑
m4处理器访问使用。
[0097]
cortex
‑
a15分区,主要用于对外部数据的采集、交互和管理,例如在车载组合定位场景下的车辆信息采集、gps数据采集、差分数据采集以及可拓展的高精度地图数据采集和图像视觉数据采集等等。根据ddr存储器的存储空间大小以及其他各个分区的分区大小,将剩余的300mb内存分配给cortex
‑
a15处理器使用。也即,将cortex
‑
a15分区的分区大小设为300mb。经过实际应用验证,该分配方案在实际应用过程中具有良好的效果,并且该分配方案的冗余设计可以适用于此多核处理器架构下的自动驾驶相关的应用场景,具有良好的普适性。
[0098]
本发明提供的应用于嵌入式系统的存储分区方法,是通过确认所有处理器的应用程序运行以及存储时的对存储资源的总占用量,并结合实际的使用情况进行划分调整,从而达到对存储设备的最优分区结果,解决了现有技术中存储设备的分区只能在出厂时预置导致后续无法更改等问题以及不具有通用性等问题。本发明对于处理器的数量以及类型不做具体限制,通过本发明提供的分区方案可大大提高存储资源的合理利用,达到资源利用最大化。
[0099]
实施例二
[0100]
如图6所示,本发明提供的另一种实施例,一种应用于嵌入式系统的存储分区装置。在本实施例中,一种应用于嵌入式系统的存储分区装置可以是pc(personal computer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该一种应用于嵌入式系统的存储分区装置至少包括:处理器12、通信总线13、网络接口14以及存储器11。
[0101]
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是一种应用于嵌入式系统的存储分区装置的内部存储单元,例如该一种应用于嵌入式系统的存储分区装置的硬盘。存储器11在另一些实施例中也可以是一种应用于嵌入式系统的存储分区装置的外部存储设备,例如一种应用于嵌入式系统的存储分区装置上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器11还可以既包括一种应用于嵌入式系统的存储分区装置的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于一种应用于嵌入式系统的存储分区装置的应用软件及各类数据,例如存储分区程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0102]
处理器12在一些实施例中可以是一中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行存储分区程序等。
[0103]
通信总线13用于实现这些组件之间的连接通信。
[0104]
网络接口14可选的可以包括标准的有线接口、无线接口(如wi
‑
fi接口),通常用于在该一种应用于嵌入式系统的存储分区装置与其他电子设备之间建立通信连接。
[0105]
可选地,该一种应用于嵌入式系统的存储分区装置还可以包括员工接口,员工接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的员工接口还可以包括
标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light
‑
emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在一种应用于嵌入式系统的存储分区装置中处理的信息以及用于显示可视化的员工界面。
[0106]
图6仅示出了具有组件11
‑
14以及存储分区程序的一种应用于嵌入式系统的存储分区装置,本领域技术人员可以理解的是,图6示出的结构并不构成对一种应用于嵌入式系统的存储分区装置的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0107]
在图6所示的一种应用于嵌入式系统的存储分区装置实施例中,存储器11中存储有存储分区程序;处理器12执行存储器11中存储的存储分区程序时实现如下步骤:
[0108]
第一获取步骤:获取嵌入式系统中所有处理器以及每个处理器运行时所需存储空间;
[0109]
第二获取步骤:获取多个处理器运行时数据交互量并根据多个处理器运行时数据交互量得出多个处理器运行时数据交互所需存储空间;
[0110]
第三获取步骤:获取并根据每个处理器的全部应用程序的文件大小以及每个处理器的全部应用程序运行时所产生的数据记录文件的大小得出每个处理器存储时所需存储空间;
[0111]
内存储设备分区步骤:根据系统中处理器的个数、每个处理器运行时所需存储空间以及多个处理器运行时数据交互所需存储空间确定内存储设备的分区个数以及每个分区的类型、大小,并根据内存储设备的分区个数以及每个分区的类型、大小对内存储设备进行区域划分;
[0112]
外存储设备分区步骤:根据每个处理器存储时所需存储空间、系统文件的大小确定外存储设备的分区个数以及每个分区的类型、大小,并根据外存储设备的分区个数以及每个分区的类型、大小对外存储设备进行区域划分。
[0113]
进一步地,所述第一获取步骤包括:首先将对应处理器的全部应用程序启动并连续运行预设时间段;然后在预设时间段内依次每隔预设时间间隔通过系统指令或工具统计系统内存使用情况,并根据系统内存使用情况记录系统内存使用量;将多个系统内存使用量中的最大值作为对应处理器运行时所需存储空间。
[0114]
进一步地,所述预设时间段为24小时,所述预设时间间隔为30秒。
[0115]
进一步地,所述内存储设备包括独立分区和共享分区;独立分区的个数与处理器的个数相同,并且每个处理器对应一个独立分区。
[0116]
进一步地,每个独立分区的分区大小=每个处理器运行时所需存储空间+每个处理器运行时所需存储空间*w1;共享分区的分区大小=多个处理器运行时数据交互所需存储空间+多个处理器运行时数据交互所需存储空间*w1;其中,w1的取值范围为[0.2,0.6]。
[0117]
进一步地,所述外存储设备包括boot分区、kernel分区、filesystem分区和data分区;其中,boot分区,用于存储系统引导程序文件;kernel分区,用于存储嵌入式系统内核镜像文件;filesystem分区,用于存储系统文件以及各个处理器应用程序文件;所述data分区,用于存储每个处理器的应用程序运行时所产生的数据记录文件。
[0118]
进一步地,所述外存储设备还包括boot备份分区、kernel分区和update升级分区;
其中,boot分区、boot备份分区、kernel分区、kernel备份分区,filesystem文件系统分区、数据存储分区、update系统升级分区的分区顺序为从外存储设备的0地址开始。
[0119]
进一步地,所述内存储设备为ddr存储器;所述外存储设备为eemc存储器。
[0120]
实施例三
[0121]
本发明还提供了一种存储介质,存储介质为计算机可读存储介质,其上存储有计算机程序,计算机程序为存储分区程序;存储分区程序被处理器执行时实现以下步骤:
[0122]
第一获取步骤:获取嵌入式系统中所有处理器以及每个处理器运行时所需存储空间;
[0123]
第二获取步骤:获取多个处理器运行时数据交互量并根据多个处理器运行时数据交互量得出多个处理器运行时数据交互所需存储空间;
[0124]
第三获取步骤:获取并根据每个处理器的全部应用程序的文件大小以及每个处理器的全部应用程序运行时所产生的数据记录文件的大小得出每个处理器存储时所需存储空间;
[0125]
内存储设备分区步骤:根据系统中处理器的个数、每个处理器运行时所需存储空间以及多个处理器运行时数据交互所需存储空间确定内存储设备的分区个数以及每个分区的类型、大小,并根据内存储设备的分区个数以及每个分区的类型、大小对内存储设备进行区域划分;
[0126]
外存储设备分区步骤:根据每个处理器存储时所需存储空间、系统文件的大小确定外存储设备的分区个数以及每个分区的类型、大小,并根据外存储设备的分区个数以及每个分区的类型、大小对外存储设备进行区域划分。
[0127]
进一步地,所述第一获取步骤包括:首先将对应处理器的全部应用程序启动并连续运行预设时间段;然后在预设时间段内依次每隔预设时间间隔通过系统指令或工具统计系统内存使用情况,并根据系统内存使用情况记录系统内存使用量;将多个系统内存使用量中的最大值作为对应处理器运行时所需存储空间。
[0128]
进一步地,所述预设时间段为24小时,所述预设时间间隔为30秒。
[0129]
进一步地,所述内存储设备包括独立分区和共享分区;独立分区的个数与处理器的个数相同,并且每个处理器对应一个独立分区。
[0130]
进一步地,每个独立分区的分区大小=每个处理器运行时所需存储空间+每个处理器运行时所需存储空间*w1;共享分区的分区大小=多个处理器运行时数据交互所需存储空间+多个处理器运行时数据交互所需存储空间*w1;其中,w1的取值范围为[0.2,0.6]。
[0131]
进一步地,所述外存储设备包括boot分区、kernel分区、filesystem分区和data分区;其中,boot分区,用于存储系统引导程序文件;kernel分区,用于存储嵌入式系统内核镜像文件;filesystem分区,用于存储系统文件以及各个处理器应用程序文件;所述data分区,用于存储每个处理器的应用程序运行时所产生的数据记录文件。
[0132]
进一步地,所述外存储设备还包括boot备份分区、kernel分区和update升级分区;其中,boot分区、boot备份分区、kernel分区、kernel备份分区,filesystem文件系统分区、数据存储分区、update系统升级分区的分区顺序为从外存储设备的0地址开始。
[0133]
进一步地,所述内存储设备为ddr存储器;所述外存储设备为eemc存储器。
[0134]
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,
本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。