STM32F1开发指南笔记42----内存管理实验

本文介绍了STM32F1如何进行内存管理,特别是使用外部SRAM扩展内存后的动态分配和释放。通过分块式内存管理方法,详细讲解了内存分配和释放的原理,包括内存池和内存管理表的构成,以及malloc和free函数的实现细节。
摘要由CSDN通过智能技术生成

使用STM32驱动外部SRAM,以扩展STM32的内存,加上STM32本身自带的64K字节内存,我们可供使用的内存还是比较多的。如果我们所用的内存都像上一节的testsram那样,定义一个数组来使用,显然不是一个好办法。本章,我们将学习内存管理,实现对内存的动态管理。

内部40K + 外部960K

1、内存管理简介

内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配内存资源,并且在适当的时候释放和回收内存资源。内存管理的实现方法有很多种,他们其实最终都是要实现2个函数:malloc和free;malloc函数用于内存申请,free函数用于内存释放。

本章介绍一种比较简单的办法来实现:分块式内存管理。下面介绍一下该方法的实现原理。

在这里插入图片描述

从上图可以看出,分块式内存管理由内存池和内存管理表两部分组成。内存池被等分为n块,对应的内存管理表,大小也为n,内存管理表的每一个项对应内存池的一块内存。

内存管理表的项值代表的意义为:当该项值为0时,代表对应的内存块未被占用,当该项值为非0时,代表该项对应的内存块已经被占用,其数值则代表被连续占用的内存块数。譬如某项值为10,那么

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值