下载此文档

ucos内存管理分析.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
UCGUI的动态内存分配的原理了解UCGUI的朋友,一定知道UCGUI中的窗口体系,窗口一般都是由程序动态创建的,那么这当中当然要用到动态的内存申请,现在我们就来就这个话题进行深入分析,了解UCGUI中的动态内存分配,是了解其窗口体系统的基础,这一点非常的重要。先说明一下本文中用到的一些关键下词:[内存分配信息节点]------------记录一块已分配内存块信息的tBlock结构体,可简称分配节点。[内存分配信息节点数组]--------内存分配信息节点的数组。[内存句柄]-------------------是指分配内存块数组中的元素位置索引值。[最小粒度对齐]---------------是指内存分配大小应该为最小粒度的整数倍。一、,有这样一个定义。#defineGUI_ALLOC_SIZE12500/*Sizeofdynamicmemory...ForWMandmemorydevices*/GUI_ALLOC_SIZE定义的即是整个UCGUI中可用于动态分配的内存大小,这个大小且不能为0,也只有当这个预定义打开后,。二、,即:/***********************************************************************Dynamicmemorymanagement************************************************************************/#if!defined(GUI_ALLOC_ALLOC)voidGUI_ALLOC_Init(void);void*GUI_ALLOC_h2p(GUI_HMEMhMem);voidGUI_ALLOC_Free(GUI_HMEMhMem);voidGUI_ALLOC_FreePtr(GUI_HMEM*phMem);GUI_HMEMGUI_ALLOC_Alloc(intsize);/*diagnostics*/intGUI_ALLOC_GetUsed(void);intGUI_ALLOC_GetNumFreeBytes(void);intGUI_ALLOC_GetMaxSize(void);/*macros*/#defineGUI_ALLOC_ALLOC(size)GUI_ALLOC_Alloc(size)#defineGUI_ALLOC_H2P(h)GUI_ALLOC_h2p(h)#defineGUI_ALLOC_FREE(handle)GUI_ALLOC_Free(handle)#defineGUI_ALLOC_LOCK(handle)GUI_ALLOC_h2p(handle)#defineGUI_ALLOC_UNLOCK(handle)#endif总的来说,动态内存分配提供了如下几组功能:1,动态内存初始化。[GUI_ALLOC_Init]2,动态内存分配、释放、加解锁;以及碎片整理。[GUI_ALLOC_Free/GUI_ALLOC_Alloc]、[GUI_ALLOC_LOCK/GUI_ALLOC_UNLOCK]3,动态内存使用情况统计。[GUI_ALLOC_GetUsed]、[GUI_ALLOC_GetNumFreeBytes]、[GUI_ALLOC_GetMaxSize]三、动态内存分配的实现原理1,首先介绍几个有关动态内存分配的常量及结构。----常量GUI_ALLOC_SIZE------------------可用于分配的大小,如开启动态内存分配,在预定义中已经规定必须大于0,否则编译无法通。GUI_ALLOC_AUTDEFRAG-------------是否进行碎片整理,只有在请求在内存不能满足时才须要将碎片整理,须将所有已分配内存数据前移,例如总共大小为12500,当内配到最后剩200字节,但请求800字节,此时如果定义了碎片整理,则会将之前未用碎片整理出来,将所有已分配的内存都往前移,将碎片整到后面合成一个大的剩余空间。GUI_BLOCK_ALIGN-----------------内存分配的对齐值,是为保证每块分配的内存均从对齐粒度开始,其值为4个字节。如要求29~31字节则实得32字节,即(29+3)&0xfffffffc,这是在Size2LegalSize完成的。GUI_MAXBLOCKS-------------------最多可分的内存块数,是内存分配信息记录数组的大小,它决定了将内存正好分配完时每块的最小数值,这个最小数值为32,在后面中我们称其每一元

ucos内存管理分析 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小29 KB
  • 时间2019-10-11