块内存管理

tos_mmblk_pool_create

  1. k_err_t tos_mmblk_pool_create(k_mmblk_pool_t *mbp, void *pool_start, size_t blk_num, size_t blk_size);
  • 功能描述

创建一个块内存池。

  • 参数解释

IN/OUT**参数名**描述[in]mbp待创建的块内存句柄[in]pool_start块内存池起始地址[in]blk_num内存块数量[in]blk_size单个内存块大小

  • 返回值

K_ERR_NONE 块内存创建成功。

K_ERR_MMBLK_INVALID_POOL_ADDR 块内存池起始地址非法。

K_ERR_MMBLK_INVALID_BLK_SIZE 块内存大小非法。

tos_mmblk_alloc

  1. k_err_t tos_mmblk_alloc(k_mmblk_pool_t *mbp, void **blk);
  • 功能描述

从内存池中分配一个内存块。

  • 参数解释

IN/OUT**参数名**描述[in]mbp块内存句柄[out]blk返回的块内存起始地址

  • 返回值

K_ERR_NONE 块内存分配成功,blk指向分配到的内存块起始地址。

K_ERR_MMBLK_POOL_EMPTY 内存池是空的,blk为K_NULL。

tos_mmblk_free

  1. k_err_t tos_mmblk_free(k_mmblk_pool_t *mbp, void *blk);
  • 功能描述

释放一个内存块。

  • 参数解释

IN/OUT**参数名**描述[in]mbp块内存句柄[in]blk待释放的块内存起始地址

  • 返回值

K_ERR_NONE 块内存释放成功。

K_ERR_MMBLK_POOL_FULL 内存池是满的。