- 块内存管理
- tos_mmblk_pool_create
- tos_mmblk_alloc
- tos_mmblk_free
块内存管理
tos_mmblk_pool_create
- 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
- 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
- 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 内存池是满的。