大家好,请问在原子例程 内存管理实验中初始化函数为什么管理表要*2

2019-10-15 04:00发布

大家好,请问在原子例程 内存管理实验中初始化函数为什么管理表要*2

void my_mem_init(u8 memx)  
{  
    mymemset(mallco_dev.memmap[memx], 0,memtblsize[memx]*2);//内存状态表数据清零  
        mymemset(mallco_dev.membase[memx], 0,memsize[memx]);        //内存池所有数据清零  
        mallco_dev.memrdy[memx]=1;                                                                //内存管理初始化OK  
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
loyalboy1111
2019-10-15 11:48
zuozhongkai 发表于 2016-5-24 17:27
注意管理表的数据类型

内存池大小和内存管理表大小都是定义的U32的。为什么内存池初始化不需要*2

//内存管理参数          
const u32 memtblsize[SRAMBANK]={MEM1_ALLOC_TABLE_SIZE,MEM2_ALLOC_TABLE_SIZE,MEM3_ALLOC_TABLE_SIZE};        //内存表大小
const u32 memblksize[SRAMBANK]={MEM1_BLOCK_SIZE,MEM2_BLOCK_SIZE,MEM3_BLOCK_SIZE};


//内存管理初始化  
//memx:所属内存块
void my_mem_init(u8 memx)  
{  
    mymemset(mallco_dev.memmap[memx], 0,memtblsize[memx]*2);//内存状态表数据清零  
        mymemset(mallco_dev.membase[memx], 0,memsize[memx]);        //内存池所有数据清零  
        mallco_dev.memrdy[memx]=1;                                                                //内存管理初始化OK  
}  

一周热门 更多>