内存管理模块测试.ppt

内存管理模块测试.ppt

ID:51589917

大小:255.00 KB

页数:15页

时间:2020-03-24

内存管理模块测试.ppt_第1页
内存管理模块测试.ppt_第2页
内存管理模块测试.ppt_第3页
内存管理模块测试.ppt_第4页
内存管理模块测试.ppt_第5页
资源描述:

《内存管理模块测试.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、内存管理模块测试内存管理模块基本原理1内存管理模块主要函数2测试方法3添加代码4内存管理模块基本原理内存管理模块就是对内存进行管理,包括内存的分配、初始化、释放,以及对某内存处内容的复制、比较、长度计算等。时间链表的建立、任务链表的建立等都离不开内存的动态分配与释放。内存管理模块主要函数inthal_strlen(char*pString)计算一个字符串的长度,并返回该长度。void*hal_memcpy(void*dst,constvoid*src,unsignedintlen)向指定地址复制内存。void*hal_revmemcpy(void*dst,constvoid*

2、src,unsignedintlen)源地址所指向的内存区域的最后一个数据开始,从后向前,将数据拷贝到目的内存区域。uint8hal_memcmp(constvoid*src1,constvoid*src2,unsignedintlen)比较两片内存区域所存储的数据是否一致。void*hal_memset(void*dest,uint8value,intlen)将指定的内存区域的数据设置为指定的值。voidhal_mem_init(void)初始化内存管理分配释放系统。void*hal_mem_alloc(uint16)从堆中分配指定大小的内存空间,并返回该空间的首地址指针。

3、voidhal_mem_free(void*ptr)释放所指定的内存空间。voidhal_MemWriteRam(macRam_t*pRam,uint8*pData,uint8len)将指定数据写入RAM区指定位置中。voidhal_MemReadRam(macRam_t*pRam,uint8*pData,uint8len)从RAM区指定位置中读取指定数据。内存管理系统初始化之后,小区间的起始处指针ff1指向的值为232,大区间的起始处指针ff2指向的值为1812。堆栈的初使化把堆栈初使化成两个不同的分配区域,一个是固定长度的分配区域,一个是不固定长度的分配区域。固定分配区域

4、分配的大小是16个BIT。被内存管理的区域的大小为2048个字节,地址从0X0A43开始,小区间是232个字节,大区间是1812个字节。当要求分配的大小小于或者等于16个字节时在小区间中分配,大于16个字节则在大区间中进行分配。void*hal_mem_alloc(uint16)在进行内存分配的时候都需要使用一个内存分配控制头,在OSAL系统中,内存分配控制头的长度是16bit。它的前15位标示以它开头的内存块的长度,它的最高位标识的是是否这一个内存块正处于使用状态,0表示没有使用,1表示正在使用。堆栈在开始分配的时候一定要先初使化堆栈,初使化内存是为了避免内存被提前使用而产

5、生错误。堆栈的初使化首先把堆栈的最后一个可分配单元置为NULL,即堆栈数组的最后16个位全部置为0,这样做是为了避免分配内存产生溢出。存在碎片内存的整理,当一片内存不够分且在它后面的一块内存并未被使用时(也就是当coal=1时),则将两块内存合并。若内存不够分但在它后面的内存已经被使用,则无法合并。循环查找这块被使用的内存后面的内存块,直到找到没有使用过的内存块,若大小足够则予以分配,若不够则将返回指针置空。在内存足够分配的情况下,将原来hdr指针所指处的值的最高位置1(表示这块内存以使用),然后将hdr指针后移size/2位,最后返回该指针。voidhal_mem_free

6、(void*ptr)在固定的内存分配区域中,已知需要释放的内存的指针ptr,将指针currHdr赋值为ptr-1,然后将currHdr所指向的值的最高位置0,表示此块内存没有用过。(如果ptr不在固定的内存分配区域或者currHdr的值最高位不为1,那么LED灯不停的闪指示错误。)测试方法主要测试内存分配、初始化、写入值以及释放功能。在main函数中进行内存初始化、内存空间分配、给固定地址赋值以及释放内存空间等各操作,通过观察watch窗口以及memory确认值的变化。添加代码在main_COORD.c里边添加voidmain(){...a=hal_mem_alloc(6);

7、hal_memset(a,2,3);hal_mem_free(a);...}ThankYou!That‘sall

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。