位置:51电子网 » 技术资料 » 接口电路

μC/OS-II内存管理的划分

发布时间:2009/2/2 0:00:00 访问次数:931

  如果应用程序要使用动态内存,则首先要在内存中划分出可进行动态分配的区域,这个划分出来的区域叫做内存分区。每个分区又要分为若干个叫做内存块的小区。μc/os-ii规定,同处一个分区的内存块的大小必须相等,而且同一个分区内存块的数据类型必须相同。

  划分一个内存分区与内存块的方法非常简单,只要定义一个二维数组即可,其中每个一维数组就是一个内存块。例如,定义一个用来存储intigu类型的数据,有1o个内存块,每个内存块长度为10的内存分区的代码如下:

  int16u intmembuf[10][10];

  需要注意的是,上面这个定义只是在内存中划分出了分区及内存块的区域,还不是一个真正的可以动态分配的内存区,如图(a)所示。只有当把内存控制块与分区关联起来之后,系统才能对其进行相应的管理和控制,它才能是一个真正的动态内存区,如图(b)所示。这就像我们的住房一样,没有户口的房子是没有办法管理的,因此也就是非法的。

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

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



  如果应用程序要使用动态内存,则首先要在内存中划分出可进行动态分配的区域,这个划分出来的区域叫做内存分区。每个分区又要分为若干个叫做内存块的小区。μc/os-ii规定,同处一个分区的内存块的大小必须相等,而且同一个分区内存块的数据类型必须相同。

  划分一个内存分区与内存块的方法非常简单,只要定义一个二维数组即可,其中每个一维数组就是一个内存块。例如,定义一个用来存储intigu类型的数据,有1o个内存块,每个内存块长度为10的内存分区的代码如下:

  int16u intmembuf[10][10];

  需要注意的是,上面这个定义只是在内存中划分出了分区及内存块的区域,还不是一个真正的可以动态分配的内存区,如图(a)所示。只有当把内存控制块与分区关联起来之后,系统才能对其进行相应的管理和控制,它才能是一个真正的动态内存区,如图(b)所示。这就像我们的住房一样,没有户口的房子是没有办法管理的,因此也就是非法的。

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

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!