μ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)
上一篇:内存控制块OS_MEM的结构
上一篇:低成本的U盘数据采集器设计