RT_Thread应用18—内存管理2
第二十四章 内存管理(第二部分) 六、静态内存管理的函数接口 静态内存管理函数的使用——开发流程: 规划一片内存区域作为静态内存池。 调用 rt_mp_create()函数。进行静态内存使用前的创建。 调用 rt_mp_alloc()函数。系统内部将会从空闲链表中获取第一个空闲块,并返回该块的用户空间地址。 调用 rt_mp_free()函数。将该块内存加入空闲块链表,进行内存的释放。 对内存池的操作包含:创建 / 初始化内存池、申请内存块、释放内存块、删除 / 脱离内存池,但不是所有的内存池都会被删除,这与设计者的需求相关,但是使用完的内存块都应该被释放。 1、静态内存控制块 1 struct rt_mempool { 2 struct rt_object parent ; /**<继承自 rt_object */ ( 1 ) * * 静态内存会在自身结构体里面包含一个对象类型的成员,通过这 个成员可以将内存挂到系统对象容器里面。 * * 3 4 void * start_address ; /**< 内存池起始地址 */ ( 2 ) * * 内存池开始地址 * * 5 rt_size_t size ; /**< 内存池大小 */ ( 3 ) * * 内存池大小 * * 6 7 rt_size_t block_size ; /**< 内存块大小 */ ( 4 ) * *