add support for dynamic mmblk pool

This commit is contained in:
mculover666
2021-03-12 19:30:39 +08:00
parent 5703f01eb6
commit ef489bf51f
5 changed files with 160 additions and 3 deletions

View File

@@ -728,8 +728,11 @@ osMemoryPoolId_t osMemoryPoolNew(uint32_t block_count,
if (attr->cb_mem) {
err = tos_mmblk_pool_create((k_mmblk_pool_t*)attr->cb_mem, attr->mp_mem,
block_count, block_size);
mpId = err == K_ERR_NONE ? attr->cb_mem : NULL;
mpId = (err == K_ERR_NONE) ? attr->cb_mem : NULL;
}
} else {
err = tos_mmblk_pool_create_dyn(&mpId, block_count, block_size);
mpId = (err == K_ERR_NONE) ? mpId : NULL;
}
return (osMemoryPoolId_t)mpId;
@@ -774,8 +777,12 @@ uint32_t osMemoryPoolGetSpace(osMemoryPoolId_t mp_id) {
}
osStatus_t osMemoryPoolDelete(osMemoryPoolId_t mp_id) {
k_mmblk_pool_t* mpId = (k_mmblk_pool_t*)mp_id;
return errno_knl2cmsis(tos_mmblk_pool_destroy(mpId));
if (knl_object_alloc_is_dynamic(&mpId->knl_obj)) {
return errno_knl2cmsis(tos_mmblk_pool_destroy_dyn(mpId));
} else {
return errno_knl2cmsis(tos_mmblk_pool_destroy(mpId));
}
}
/*---------------------------------------------------------------------------*/