基于Zephyr v3.4.0内存管理增补说明

本文对早期写的Zephyr内存管理的文章和最近增补的文章说明

在2020年的时候写了一系列Zephyr内存管理的文章,随着Zephyr的不断进化,一些内存管理方法被废弃和移除,并新加了另外一些内存管理方法,结合最近增补的一些内容,说明公众号文章的失效:

已废弃移除 链接到标题

Pool已从zephyr内移除,完全用Heap取代 Zephyr内存管理之Pool

维持 链接到标题

API/管理算法变化不大 Zephyr内存管理之Heap Zephyr内存管理之slab

新增 链接到标题

Zephyr内存管理之共享Heap Zephyr内存管理之Block Demand Paging 目前用到的芯片不涉及MMU,未对该部分进行分析

对内存分配的影响 链接到标题

ephyr/kernel/mempool.ck_malloc/k_free已经切换成Heap管理 k_malloc调用关系:k_malloc->k_aligned_alloc->z_heap_aligned_alloc->k_heap_aligned_alloc k_free调用关系:k_free->k_heap_free 使用的heap为

K_HEAP_DEFINE(_system_heap, CONFIG_HEAP_MEM_POOL_SIZE);
#define _SYSTEM_HEAP (&_system_heap)

参考 链接到标题

https://docs.zephyrproject.org/3.4.0/kernel/memory_management/index.html#