• 块内存管理
    • tos_mmblk_pool_create
    • tos_mmblk_alloc
    • tos_mmblk_free

    块内存管理

    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 内存池是满的。