|  | MCUXpresso SDK API Reference Manual
    Rev 2.12.1
    NXP Semiconductors | 
| Data Structures | |
| struct | mem_config_t | 
| Memory user config.  More... | |
| Macros | |
| #define | MinimalHeapSize_c (uint32_t)4 | 
| Provide Minimal heap size for application to execute correctly.  More... | |
| #define | gMemManagerLight (1) | 
| Configures the memory manager light enable. | |
| #define | MEM_MANAGER_ENABLE_TRACE (0) | 
| Configures the memory manager trace debug enable. | |
| #define | MEM_MANAGER_PRE_CONFIGURE (1) | 
| Configures the memory manager pre configure. | |
| #define | MEM_BLOCK_DATA_BUFFER_DEFINE(name, numberOfBlocks, blockSize, id) | 
| Defines the memory buffer.  More... | |
| #define | MEM_BLOCK_BUFFER(name) (uint8_t *)&g_poolHeadBuffer##name | 
| \  More... | |
| Enumerations | |
| enum | mem_status_t | 
| Memory status. | |
| Functions | |
| mem_status_t | MEM_Init (void) | 
| Initialises the Memory Manager. | |
| void * | MEM_BufferAllocWithId (uint32_t numBytes, uint8_t poolId) | 
| Allocate a block from the memory pools.  More... | |
| mem_status_t | MEM_BufferFree (void *buffer) | 
| Memory buffer free .  More... | |
| uint16_t | MEM_BufferGetSize (void *buffer) | 
| Returns the size of a given buffer.  More... | |
| mem_status_t | MEM_BufferFreeAllWithId (uint8_t poolId) | 
| Frees all allocated blocks by selected source and in selected pool.  More... | |
| void * | MEM_BufferRealloc (void *buffer, uint32_t new_size) | 
| Memory buffer realloc.  More... | |
| uint32_t | MEM_GetHeapUpperLimit (void) | 
| Get the address after the last allocated block if MemManagerLight is used.  More... | |
| uint32_t | MEM_GetFreeHeapSize (void) | 
| Get the free space in the heap.  More... | |
| void | MEM_ReinitRamBank (uint32_t startAddress, uint32_t endAddress) | 
| Selective RAM bank reinit after low power, based on a requested address range Useful for ECC RAM banks Defined as weak and empty in fsl_component_mem_manager_light.c to be overloaded by user.  More... | |
| struct mem_config_t | 
| #define MinimalHeapSize_c (uint32_t)4 | 
The application can define a minimal heap size for proper code exection at run time, This will issue a link error if the minimal heap size requirement is not fullfilled (not enough space in RAM) By Default, Minimal heap size is set to 4 bytes (unlikely enough to have application work correctly)
| #define MEM_BLOCK_DATA_BUFFER_DEFINE | ( | name, | |
| numberOfBlocks, | |||
| blockSize, | |||
| id | |||
| ) | 
This macro is used to define the shell memory buffer for memory manager. And then uses the macro MEM_BLOCK_BUFFER to get the memory buffer pointer. The macro should not be used in any function.
This is a example,
| name | The name string of the memory buffer. | 
| numberOfBlocks | The number Of Blocks. | 
| blockSize | The memory block size. | 
| id | The id Of memory buffer. | 
| #define MEM_BLOCK_BUFFER | ( | name | ) | (uint8_t *)&g_poolHeadBuffer##name | 
Gets the memory buffer pointer \ \ This macro is used to get the memory buffer pointer. The macro should \ not be used before the macro MEM_BLOCK_BUFFER_DEFINE is used. \ \
| name | The memory name string of the buffer. \ | 
| void* MEM_BufferAllocWithId | ( | uint32_t | numBytes, | 
| uint8_t | poolId | ||
| ) | 
The function uses the numBytes argument to look up a pool with adequate block sizes.
| numBytes | The number of bytes will be allocated. | 
| poolId | The ID of the pool where to search for a free buffer. | 
| Memory | buffer address when allocate success, NULL when allocate fail. | 
| mem_status_t MEM_BufferFree | ( | void * | buffer | ) | 
| buffer | The memory buffer address will be free. | 
| kStatus_MemSuccess | Memory free succeed. | 
| kStatus_MemFreeError | Memory free error occurred. | 
| uint16_t MEM_BufferGetSize | ( | void * | buffer | ) | 
| buffer | The memory buffer address will be get size. | 
| The | size of a given buffer. | 
| mem_status_t MEM_BufferFreeAllWithId | ( | uint8_t | poolId | ) | 
| poolId | Selected pool Id (4 LSBs of poolId parameter) and selected source Id (4 MSBs of poolId parameter). | 
| kStatus_MemSuccess | Memory free succeed. | 
| kStatus_MemFreeError | Memory free error occurred. | 
| void* MEM_BufferRealloc | ( | void * | buffer, | 
| uint32_t | new_size | ||
| ) | 
| buffer | The memory buffer address will be reallocated. | 
| new_size | The number of bytes will be reallocated | 
| kStatus_MemSuccess | Memory free succeed. | 
| kStatus_MemFreeError | Memory free error occurred. | 
| uint32_t MEM_GetHeapUpperLimit | ( | void | ) | 
| UpperLimit | Return the address after the last allocated block if MemManagerLight is used. | 
| 0 | Return 0 in case of the legacy MemManager. | 
| uint32_t MEM_GetFreeHeapSize | ( | void | ) | 
| FreeHeapSize | Return the free space in the heap if MemManagerLight is used. | 
| 0 | Return 0 in case of the legacy MemManager. | 
| void MEM_ReinitRamBank | ( | uint32_t | startAddress, | 
| uint32_t | endAddress | ||
| ) | 
| [in] | startAddress | Start address of the requested range | 
| [in] | endAddress | End address of the requested range |