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¶