Nucleus源码分析--Dynamic Memory

Nucleus源码分析--Dynamic Memory

ID:41127353

大小:534.00 KB

页数:17页

时间:2019-08-17

Nucleus源码分析--Dynamic Memory_第1页
Nucleus源码分析--Dynamic Memory_第2页
Nucleus源码分析--Dynamic Memory_第3页
Nucleus源码分析--Dynamic Memory_第4页
Nucleus源码分析--Dynamic Memory_第5页
资源描述:

《Nucleus源码分析--Dynamic Memory》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、多媒体技术部文档编号:Nucleus源码分析—动态内存大唐微电子技术有限公司作者名称蔡维林页数修改后版本修改者修改日期修改说明备注12DocumentinformationFileLocationD:×××××××××××.doc(请说明在文档服务器上的位置)Lastsaved2005/1/415:48:00Page17/17ProprietaryNotice:"TheinformationcontainedhereinisproprietarytoDTTChinaorthirdpartyproprietar

2、yinformationwhichDTTChinaisobligatedtoprotectandshallnotbedisclosedinwholeorinpartwithoutthepriorwrittenpermissionofDTTChina."多媒体技术部文档编号:目录1.概述31.1功能描述31.2文件信息32.实现原理(重点)32.1内存池实现结构:32.2内存池里面可用内存(已分配内存)结构:43.数据结构(重点)43.1动态内存池控制结构(PCB):43.2内存头数据结构:53.3动态内存池挂起操

3、作数据结构:53.4组件全局数据结构:64.程序分析64.1接口函数映射表64.2DMC.C程序(重点)64.2.1创建内存池64.2.2删除内存池94.3从内存池中分配一块内存114.4从内存池中删除一块内存144.5函数VOIDDMC_Cleanup(VOID*information)164.6其它(如果有的话)164.6.1DMD.C164.6.2DMI.C164.6.3DMF.C164.6.4DMCE.C17Page17/17ProprietaryNotice:"Theinformationcontain

4、edhereinisproprietarytoDTTChinaorthirdpartyproprietaryinformationwhichDTTChinaisobligatedtoprotectandshallnotbedisclosedinwholeorinpartwithoutthepriorwrittenpermissionofDTTChina."多媒体技术部文档编号:概述1.1功能描述动态内存管理组件(DM)负责处理所有的NucleusPLUS动态内存管理,一个NucleusPLUS动态内存池包括用户指

5、定数目的字节。内存池的位置由应用程序指定,当等待分配一个足够大小的动态内存时,任务可能被挂起。动态内存池可以被用户动态创建和删除,请参考NucleusPLUS参考文档以获得更多相关知识。1.2文件信息动态内存管理组件(DM)包括7个文件,每个文件命名如下:文件名称内容描述DM_DEFS.H定义DM组件的特定数据结构和常量。DM_EXTR.H定义DM组件的外部接口函数。DMD.C定义DM组件的全局数据结构。DMI.CDM组件的初始化代码。DMF.C获得DM组件的信息的函数DMC.CDM组件的核心函数,实现内存分配和

6、释放的代码DMCE.C带有错误检查的DM组件核心函数。2.实现原理2.1内存池实现结构:动态内存池可以动态删除和创建,每一个创建的内存池都是通过一个叫做动态内存控制块的数据结构(PCB)来管理的,所有的控制块由一个双向链连接起来,新创建的PCB放在链表的尾端,一旦某个内存池被删除,对应的PCB所在链表的节点就会被完全删除。链表的头指针是DMD_Created_Pools_List。Page17/17ProprietaryNotice:"Theinformationcontainedhereinispropriet

7、arytoDTTChinaorthirdpartyproprietaryinformationwhichDTTChinaisobligatedtoprotectandshallnotbedisclosedinwholeorinpartwithoutthepriorwrittenpermissionofDTTChina."多媒体技术部文档编号:为防止其它任务的破坏,在删除链表和新增链表时需要对之进行数据保护,NucleusPLUS提供一个叫做DMD_List_Protect的内部数据结构来实现。1.1内存池里面可用

8、内存(已分配内存)结构:每一块可用内存都有一个内存头数据结构,用以描述该块内存的基本信息以及把其它内存块头联系在一起形成一个双向链表。每个内存池PCB都包含一个指向内存块起始地址(dm_start_address)。PCB还有一个索引指针(dm_search_pty),用来帮助搜索内存块,一般情况下指向当前可被分配的内存块头。内存块链表的头指针是dm_memory_lis

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

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

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