Flows
Memory initialization
Main goal of Memory initialization is to unmap unused memory after firmware load and create heaps for supported memory zones.
Figure 61 Memory initialization flow
Memory allocation
The common memory allocation is expected to use one of the available memory zones via Zephyr Heap that was created during initialization.
Figure 62 Memory allocation example flow
Memory allocation directly using Memory Management Driver
In specific use cases (e.g. Dynamic Component Load) it may be required to allocate memory directly using Memory Management Driver to control what virtual address will be mapped to physical memory.
Figure 63 Example memory allocation using Memory Management Driver
Dynamic Component Load
The loadable components are stored in Loadable Library memory zone and can be loaded on instantiate request to System memory. The components load to System memory is optional and integrator can indicate if the components can be executed directly from the Loadable Library memory zone.
Figure 64 Dynamic component load and instantiation flow