如何在ARM处理器上实现如malloc函数的功能

lbj412   2009-6-26 14:56 楼主
如何在ARM处理器上实现如malloc函数的功能
标准库中的malloc函数是不需要提前分配好存储空间的,我测试过,一段代码有没有malloc只跟代码段的大小有关,而跟数据段都没有关系的。
但是在ucos和freeRtos里面,类似于malloc函数的实现,都是提前分配好一段固定大小的存储空间,若我代码里面没有使用此函数,这一空间也不能回收利用。
望高手求教

回复评论 (4)

如果你用的是MDK的话,可能是放在ZO区的吧!所以在RO和RW区看不见
点赞  2009-6-26 15:57
你的arm处理器在启动的时候有个文件是专门配置stack和heap的,吧heap的大小配置成0,这样malloc就无法使用了,也不会浪费内存空间了。
点赞  2009-6-26 16:59
做一个链表,记录分配使用内存的开始位置和长度,释放的时候标记为释放,再做一些合并操作,分配的时候查找哪有空闲的标记使用。
思路如此,怎么做到高效,可以有多种方法,最简单的是固定块大小分配方法,方便合并,但是可能导致浪费。
点赞  2009-6-29 15:14
是需要保留空间用于动态内存分配的,否则管理起来就比较困难
点赞  2009-6-29 15:37
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复