ucos2——之路:动态内存管理

动态内存管理

1.内存控制块

ucos2对内存进行两级管理,即把一个连续的内存管理分为若干个分区,把每个分区又分为若干个大小相等的内存块。操作系统以分区为单位来管理动态内存,而任务以内存块为单位来获得或者释放动态内存,内存分区以及内存块的使用情况由内存控制块来记录。

1.1内存块:ucos2以内存块为单位向应用程序提供动态内存,内存块的大小可由用户定制。

1.2内存分区:大小相等的多个内存块可以组成一个内存分区,内存分区是系统对内存进行管理的基本单位。

1.3内存分区与内存块的定义:在内存中定义一个内存分区及其内存块的方法很简单,只要定义一个二维数组即可。

        例:INT16U IntMemBuf[10][10];    

        上例就定义了一个用来存储INT16U类型数据,有10个内存块,每个内存块长度为10的内存分区。

        需要注意的是,上述例子仅仅是在内存中划分出了内存分区和内存块的区域,并不能达到动态分配的目的。只有把内存控制块和内存分区关联起来,才能真正达到动态分配内存的目的。

2.内存控制块的OS_MEM结构

    ucos2定义了一个叫做内存控制块的结构,用来记录和跟踪每一个分区的状态。

    内存控制块与内存分区的关系

3空内存控制块链表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值