【技术实现步骤摘要】
本专利技术涉及计算机领域,特别是涉及一种嵌入式设备图像内存管理方法及装置。
技术介绍
DirectFB是一个在嵌入式系统中广泛应用的函数库。是针对嵌入式设备的特殊需求环境,为图形加速和图形增强支持开发的一个小巧、强大和易于使用的技术。DirectFB的函数利用链表来实现图像内存(video memory)的管理。初始状态时, 链表只有一个空闲节点(free memory node),记录整个内存池的起始地址和末地址。当应用程序需要从内存池中分配一块内存时,DirectFB的内存管理器遍历链表中的所有free memory node,找出最匹配的free memory node返回给应用程序。如果找不到大小正好匹配的free memory node,则从最接近所需内存大小的free memory node中分配,并在链表中插入一个新的内存节点来记录新分配的内存块信息,并且该新的内存节点被标示为已分配状态。在链表中相邻的内存节点所描述的内存块在物理上也是邻近的。现有技术中,DirectFB管理内存的方式为当应用程序释放内存块时,记录该内存块信息的节点会被置为空闲状态,如果与该空闲节点相邻的节点也是空闲状态,则会完成节点合并,将两个节点所记录的空闲内存块合并成一个更大的空闲内存块,如图1所示 block4与block5合并为block4。在上述内存管理的方式下,在物理上连续的内存块,如果其生命周期不一样,就会出现内存碎片。于是出现这样一种状况虽然可用的空闲内存的总量大于所需要分配的内存,但是所有的空闲节点都小于所需要分配内存的大小,于是内存管理器会出现分配内 ...
【技术保护点】
1.一种嵌入式设备图像内存管理方法,其特征在于,包括:从图像内存链表中获取节点;判断所述节点对应的内存块中是否有有效数据;如果所述节点对应的内存块中没有有效数据,则判断所述节点的前一个节点对应的内存块中是否有有效数据;如果所述前一个节点对应的内存块中有有效数据,则判断所述有效数据是否可移动;如果所述前一个节点对应的内存块中存储的有效数据可移动,则将所述节点所描述的内存块信息与所述前一个节点所描述的内存块信息进行交换,并且将所述前一个节点对应的内存块中存储的有效数据移动至所述节点对应的内存块中。
【技术特征摘要】
1.一种嵌入式设备图像内存管理方法,其特征在于,包括从图像内存链表中获取节点;判断所述节点对应的内存块中是否有有效数据;如果所述节点对应的内存块中没有有效数据,则判断所述节点的前一个节点对应的内存块中是否有有效数据;如果所述前一个节点对应的内存块中有有效数据,则判断所述有效数据是否可移动;如果所述前一个节点对应的内存块中存储的有效数据可移动,则将所述节点所描述的内存块信息与所述前一个节点所描述的内存块信息进行交换,并且将所述前一个节点对应的内存块中存储的有效数据移动至所述节点对应的内存块中。2.根据权利要求1所述的方法,其特征在于,所述从图像内存链表中获取节点的步骤具体为从图像内存链表中倒数第一个节点开始获取节点。3.根据权利要求1所述的方法,其特征在于,所述判断所述节点对应的内存块中是否有有效数据的步骤之后还包括如果所述节点描述的内存块中有有效数据,则继续获取所述节点的前一个节点,然后执行判断所述前一个节点对应的内存块中是否有有效数据的步骤,直至所述图像内存链表的第一个节点。4.根据权利要求3所述的方法,其特征在于,所述判断所述前一个节点对应的内存块中存储的有效数据是否可移动的步骤之后还包括如果所述前一个节点对应的内存块中存储的有效数据不可移动,则继续获取所述前一个节点的前一个节点,并执行判断该获取的节点对应的内存块中是否有有效数据的步骤, 直至所述图像内存链表的第一个节点。5.根据权利要求4所述的方法,其特征在于,所述判断前一个节点对应的内存块中存储的有效数据是否可移动的步骤包括判断所述前一个节点对应的内存块是否为层面(layer surface),如果所述前一个节点对应的内存块为layer surface,则所述前一个节点对应的内存块中存储的有效数据不能移动;如果所述前一个节点对应的内存块不是layer surface,则再判断所述前一个节点对应的内存块是否处于锁定状态,如果所述前一个节点对应的内存块处于锁定状态,则所述前一个节点对应的内存块中存储的有效数据不能移动。6.根据权利要求5所述的方法,其特征在于,所述方法还包括如果所述前一个节点对应的内存块没处于锁定状态,则再判断所述前一个节点对应的内存块是否于最近一次被图形处理器GPU访问过,如果所述前一个节点对应的内存块最近一次被GPU访问过,则等待GPU访问完成后,执行所述将该节点所描述的内存块信息与所述前一个节点所描述的内存块信息进行交换,并且将所述前一个节点对应的内存块中存储的有效数据移动至所述节点对应的内存块中的步骤。7.根据权利要求6所述的方法,其特征在于,所述判断所述前一个节点是否有有效数据的步骤之后还包括如果所述前一个节点没有有效数据,则将所述节点和所述前一个节点合并。8.根据权利要求7所述的方法,其特征在于,所述将该节点和所述前一个节点合并的步骤包括将所述节点的起始地址改为所述前一个节点的起始地址,并将所述节点指向前一个节点的指针改为指向所述前一个节点的前一个节点,并删除所述前一个节点。9.根据权利要求7所述的方法,其特征在于,所述将该节点和所述前一个节点合并的步骤包括将所述前一个节点的结束地址改为所述节点的结束地址,并将所述前一个节点指向下一个节点的指针改为指向所述节点的下一个节点,并删除所述节点。10.一种嵌入...
【专利技术属性】
技术研发人员:何虎,
申请(专利权)人:晨星软件研发深圳有限公司,晨星半导体股份有限公司,
类型:发明
国别省市:94
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。