HarmonyOS 鸿蒙Next LiteOS-M 静态内存池 如何使用?los_membox.c 在哪个目录下?

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next LiteOS-M 静态内存池 如何使用?los_membox.c 在哪个目录下?

拟使用Liteos-M的静态内存池, los_membox.h 中,条件编译:

#if (LOSCFG_MEMBOX == YES) 

#endif

中间的代码不可见。

修改:src\device\hisilicon\hispark_pegasus\sdk_liteos\platform\os\Huawei_LiteOS\targets\hi3861v100\include\target_config.h 

中的内存模块配置:#define LOSCFG_MEMBOX   YES,

编辑如下代码:

#include <stdio.h>

#include <unistd.h>

#include <stdint.h>

#include <stdbool.h>

#include <string.h>

#include “los_membox.h”

#define XX_BLK_SIZE (16)

#define XX_BOX_SIZE (128)

void *boxMem_xx = NULL;

static uint32_t _MemBoxInit_xx(void)

{

    uint32_t ret;

    ret = LOS_MemboxInit(&boxMem_xx, XX_BLK_SIZE, XX_BOX_SIZE);

    if (LOS_NOK == ret)

    {

        printf("\nLOS_MemboxInit : fail.\n");

        return ret;

    }

}

uint32_t MemBoxInit_All(void)

{

    return _MemBoxInit_xx();

}

在其它函数中调用:MemBoxInit_All();

编译代码,出错:

[OHOS ERROR] riscv32-unknown-elf-ld: ohos\libs\libbsp_service.a(libbsp_service.membox_app.o): in function _MemBoxInit_xx':</p> <p>[OHOS ERROR] membox_app.c:(.text._MemBoxInit_xx+0x1e): undefined reference toLOS_MemboxInit’

[OHOS ERROR] scons: *** [output\bin\Hi3861_wifiiot_app.out] Error 1

[OHOS ERROR] BUILD FAILED!!!

[OHOS ERROR] Failed building output\bin\Hi3861_wifiiot_app.out: Error 1

未定义的引用:LOS_MemboxInit

如何处理?


更多关于HarmonyOS 鸿蒙Next LiteOS-M 静态内存池 如何使用?los_membox.c 在哪个目录下?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next LiteOS-M 静态内存池 如何使用?los_membox.c 在哪个目录下?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next LiteOS-M 静态内存池使用方法及los_membox.c文件位置

HarmonyOS 鸿蒙Next LiteOS-M的静态内存池提供了一种高效的内存管理机制,用于分配和释放固定大小的内存块。使用静态内存池,可以减少内存碎片,提高内存分配和释放的效率。

要使用静态内存池,首先需要定义一个内存池。这通常通过调用相关的API函数来完成,如LOS_MemboxInit,该函数用于初始化一个内存池。初始化时需要指定内存池的大小、每个内存块的大小以及内存块的数量。

初始化完成后,可以使用LOS_MemboxAlloc函数从内存池中分配内存块,使用LOS_MemboxFree函数释放内存块。

关于los_membox.c文件的位置,在HarmonyOS鸿蒙Next LiteOS-M的源代码中,该文件通常位于操作系统的内核源代码目录下。具体位置可能因不同的版本和构建环境而有所不同,但一般可以在操作系统的源代码仓库中通过搜索文件名来找到。

例如,在标准的HarmonyOS鸿蒙Next LiteOS-M源代码仓库中,los_membox.c可能位于kernel/base/mem/src目录下。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部