From 9629abe07c3186fa3ffd327a4b6d5ff203145264 Mon Sep 17 00:00:00 2001 From: kenneth Date: Sat, 28 Aug 2021 09:37:49 +0800 Subject: [PATCH] =?UTF-8?q?LiteOS-M=E5=86=85=E6=A0=B8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=9D=9E=E8=BF=9E=E7=BB=AD=E6=80=A7=E5=86=85=E5=AD=98=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: kenneth --- ...0\347\244\272\346\204\217\345\233\276.png" | Bin 0 -> 75294 bytes .../kernel-mini-basic-memory-dynamic.md | 21 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 "zh-cn/device-dev/kernel/figure/\351\235\236\350\277\236\347\273\255\346\200\247\345\206\205\345\255\230\345\220\210\344\270\200\347\244\272\346\204\217\345\233\276.png" diff --git "a/zh-cn/device-dev/kernel/figure/\351\235\236\350\277\236\347\273\255\346\200\247\345\206\205\345\255\230\345\220\210\344\270\200\347\244\272\346\204\217\345\233\276.png" "b/zh-cn/device-dev/kernel/figure/\351\235\236\350\277\236\347\273\255\346\200\247\345\206\205\345\255\230\345\220\210\344\270\200\347\244\272\346\204\217\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..43e98c03680a9d9d8c720818b2094905da49ec85 GIT binary patch literal 75294 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 z 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 DfaFK& literal 0 HcmV?d00001 diff --git a/zh-cn/device-dev/kernel/kernel-mini-basic-memory-dynamic.md b/zh-cn/device-dev/kernel/kernel-mini-basic-memory-dynamic.md index 44df8da3ead..276b11e3294 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-basic-memory-dynamic.md +++ b/zh-cn/device-dev/kernel/kernel-mini-basic-memory-dynamic.md @@ -38,6 +38,18 @@ OpenHarmony LiteOS-M动态内存在TLSF算法的基础上,对区间的划分 包含3种类型节点:未使用空闲内存节点,已使用内存节点和尾节点。每个内存节点维护一个前序指针,指向内存池中上一个内存节点,还维护内存节点的大小和使用标记。空闲内存节点和已使用内存节点后面的内存区域是数据域,尾节点没有数据域。 +一些芯片片内RAM大小无法满足要求,需要使用片外物理内存进行扩充。对于这样的多段非连续性内存,OpenHarmony LiteOS-M内核支持把多个非连续性内存逻辑上合一,用户不感知底层的多段非连续性内存区域。OpenHarmony LiteOS-M内核内存模块把不连续的内存区域作为空闲内存结点插入到空闲内存节点链表,把不同内存区域间的不连续部分标记为虚拟的已使用内存节点,从逻辑上把多个非连续性内存区域实现为一个统一的内存池。下面通过示意图说明下多段非连续性内存的运行机制: + +**图 3** 非连续性内存合一示意图 +![](figure/非连续性内存合一示意图.png "非连续性内存合一示意图") + +结合上述示意图,非连续性内存合并为一个统一的内存池的步骤如下: +1. 把多段非连续性内存区域的第一块内存区域通过调用LOS_MemInit接口进行初始化。 +2. 获取下一个内存区域的开始地址和长度,计算该内存区域和上一块内存区域的间隔大小gapSize。 +3. 把内存区域间隔部分视为虚拟的已使用节点,使用上一个内存区域的尾节点,设置其大小为gapSize+ OS_MEM_NODE_HEAD_SIZE。 +4. 把当前内存区域划分为一个空闲内存节点和一个尾节点,把空闲内存节点插入到空闲链表,并设置各个节点的前后链接关系。 +5. 如果有更多的非连续内存区域,重复上述步骤2-4。 + ## 开发指导 @@ -135,12 +147,21 @@ OpenHarmony LiteOS-M的动态内存管理主要为用户提供以下功能,接

对指定内存池做完整性检查,仅打开LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK时有效。

+

增加非连续性内存区域

+ +

LOS_MemRegionsAdd

+ +

支持多段非连续性内存区域,把非连续性内存区域逻辑上整合为一个统一的内存池。仅打开LOSCFG_MEM_MUL_REGIONS时有效。如果内存池指针参数pool为空,则使用多段内存的第一个初始化为内存池,其他内存区域,作为空闲节点插入;如果内存池指针参数pool不为空,则把多段内存作为空闲节点,插入到指定的内存池。

+ + + >![](../public_sys-resources/icon-note.gif) **说明:** >- 由于动态内存管理需要管理控制块数据结构来管理内存,这些数据结构会额外消耗内存,故实际用户可使用内存总量小于配置项OS\_SYS\_MEM\_SIZE的大小。 >- 对齐分配内存接口LOS\_MemAllocAlign/LOS\_MemMallocAlign因为要进行地址对齐,可能会额外消耗部分内存,故存在一些遗失内存,当系统释放该对齐内存时,同时回收由于对齐导致的遗失内存。 +>- 非连续性内存区域接口LOS\_MemRegionsAdd的LosMemRegion数组参数传入的非连续性内存区域需要按各个内存区域的内存开始地址升序,且内存区域不能重叠。 ### 开发流程 -- Gitee