初级会员

- 积分
- 97
- 金钱
- 97
- 注册时间
- 2014-2-6
- 在线时间
- 10 小时
|
6金钱
直接移植原子哥的内存管理代码先分配了2184个字节使用了,
观察内存使用率才 15%,
然后在申请84个字节就会分配失败;
观察内存使用率才 100%,
明明还有很多内存,但是却分配失败,求解!
使用的stm32f103VBT6,
//mem1内存参数设定.mem1完全处于内部SRAM里面.
#define MEM1_BLOCK_SIZE 32 //内存块大小为32字节
#define MEM1_MAX_SIZE 14*1024 //最大管理内存 14K
#define MEM1_ALLOC_TABLE_SIZE MEM1_MAX_SIZE/MEM1_BLOCK_SIZE //内存表大小
//分配内存(外部调用)
//memx:所属内存块
//size:内存大小(字节)
//返回值:分配到的内存首地址.
void *mymalloc(u8 memx,u32 size)
{
u32 offset;
offset=my_mem_malloc(memx,size);
if(offset==0XFFFFFFFF)
{
printf("\r\n%03d%%",my_mem_perused(SRAMIN));
printf("\r\n内存申请大小为 %d",size);
printf("\r\n内存申请失败");
while(1);
return NULL;
}
else
{
printf("\r\n%03d%%",my_mem_perused(SRAMIN));
printf("\r\n%d",size);
printf("\r\n内存申请成功");
return (void*)((u32)mallco_dev.membase[memx]+offset);
}
}
|
-
串口显示
|