【14】、STM32F767——————>内存管理

本文深入探讨了分块式内存管理技术,包括其基本原理、内存池与管理表的构成,以及内存申请与释放的具体流程。通过实例代码,详细解释了如何在不同内存区域进行高效内存管理。
  1. 简述
    1. 内存管理是指运行时对计算机内存资源的分配和使用的技术
    2. 其目的是如何高效、快速的分配,并且在适当的时候释放和回收内存资源
    3. 内存管理函数只有两个:内存申请malloc(),内存释放free()
  2. 分块式内存管理
    1. 框图
    2. 组成:
      1. 内存池
      2. 内存管理表
      3. 内存池被等分为n块,对应的内存管理表,大小 也为n,内存管理表的每一个项对应内存池的一块内存
      4. 内存管理表项值意义:项值为0,表示对应的内存块未被占用,非0,己占用
      5. 分配方向:顶->底,即首先从末端开始找空内存,初始化时内存表全部清零
    3. 申请原理
      1. 指针p调用malloc函数申请内存时,先判断p要分配的内存块数(m)
      2. 然后从第n项开始,向下查找,直到找到m块连续的空内存块,然后将m个内存管理表项的值都设置为m(非0)
      3. 内存不够,如果没有找到m块空闲内存,则返回null给p,表示分配失败
    4. 释放原理
      1. 指针p调用free函数,先判断p指向内存地址所对应的内存块,找到对应的内存管理表项目
      2. 得到p所占用的内存块数目m,将m个内存管理表项目值都清零,标记释放
    5. 内存池地址范围
      1. 普通内存:起始地址:0x2002 0000,大小:384
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值