Pool Management

group OS_87x3e_Pool

Manage task-safe and fixed-size blocks of dynamic memory.

Memory pools are fixed-size blocks of memory that are task-safe. They operate much faster than the dynamically allocated heap and do not suffer from fragmentation. Being task-safe, they can be accessed from tasks and ISRs alike.

Shared memory is one of the basic models to exchange information between tasks. Using memory pools for exchanging data, you can share more complex objects between taks if compared to the Message Queue. Memory pool management functions are used to define and manage such fixed-sized memory pools.

../../_images/OS-pool-overview.jpg

Variables

bool (*os_pool_create_intern)(uint8_t *p_handle, RAM_TYPE ram_type, uint16_t buf_size, uint16_t buf_count, const char *p_func, uint32_t file_line)
bool (*os_pool_extend_intern)(uint8_t handle, uint16_t buf_size, uint16_t buf_count, const char *p_func, uint32_t file_line)
bool (*os_pool_delete_intern)(uint8_t handle, const char *p_func, uint32_t file_line)
void *(*os_buffer_get_intern)(uint8_t handle, uint16_t buf_size, const char *p_func, uint32_t file_line)
bool (*os_buffer_put_intern)(void *p_buf, const char *p_func, uint32_t file_line)