tag 标签: keilsoft

相关资源
  • 所需E币: 4
    时间: 2019-12-26 12:20
    大小: 7.26MB
    上传者: 978461154_qq
    KeliC51软件开发环境v6.02……
  • 所需E币: 5
    时间: 2019-12-25 16:48
    大小: 461KB
    上传者: 二不过三
    KeilC51的动态内存管理机制分析与改进KeilC51动态内存管理机制分析及改进作者:重庆电力高等专科学校丁明亮熊真春阅读:311引用:0发布时间:2007-07-0408:30出处:单片机及嵌入式系统应用KeilC51是常用的嵌入式系统编程工具,它通过init_mempool、mallloe、free等函数,提供了动态存储管理等功能。本文通过对init_mempool、mallloe和free这3个KeilC51库函数源代码的分析,揭示其实现的原理和方法,并对其中的不足作了改进,以使KeilC编程人员更好地应用动态存储管理。1相关数据结构、变量及说明在KeilC51安装目录下的\c5l\lib目录下,有实现init_mempool、mallloe和free这3个函数的C源文件init_mere.c、malloc.c和free.c。下面针对KeilC7.5A版,将其中与动态存储管理相关的数据结构介绍如下:[pic]该结构的next指向堆中的下一空闲内存块,len表示该空闲块除去该块首部的struct__mem__结构所占的字节数后,该块实际可用的字节数。由于next是一个指向XDATA区的指针,故在KeilC51中应用程序所定义的堆空间应在XDATA区中定义。在KeilC51中,堆中的所有空闲内存块是用一个单链表来管理的,struct_mere_即为该链表结点的结构,后面定义的宏AVAIL为该链表的首结点,为叙述方便,以下将该链表称为AVAIL链表。[pic]#defineAVAIL(__meM_avaiL_[O])全局数……