/***************************************************************************** * 函 数 名 : mdrv_smalloc * * 功能描述 :为分配一个内存。 * * 输入参数 : size: 需要分配的字节的数量 * * 输出参数 : 无 * 返 回 值 : NULL : 分配内存失败 * 非NULL指针: 分配内存成功,该指针指向分配的内存块的指针 ****************************************************************************/ void* mdrv_smalloc (unsigned int size,MEM_POOL_TYPE flags) { #ifdef CONFIG_MEM return bsp_smalloc(size, flags); #else return NULL; #endif }
STATIC u32 mem_smalloc_test(u32 size) { void * pret = bsp_smalloc(size, MEM_ICC_DDR_POOL); if(pret) { mem_print_dbg("sucess BSP_Malloc addr:%x size:%d", pret, size); bsp_sfree(pret); return MEM_TEST_OK; } else { mem_print_error("fail! BSP_Malloc addr:%x size:%d", pret, size); return MEM_TEST_ERROR; } }
STATIC s32 use_smem_test(int size) { u32* pret = (u32*)bsp_smalloc(size, MEM_ICC_DDR_POOL); u32* praw = pret; u32 rawsize = size; if(pret) { mem_print_dbg("sucess BSP_Malloc addr:%x size:%d", pret, size); while(size > 0) { size -= sizeof(u32); *pret = ACORE_MAGIC_NUM; pret++; } taskDelay(200); size = rawsize; pret = praw; while(size > 0) { size -= sizeof(u32); if(*pret != ACORE_MAGIC_NUM) { mem_print_error("fail! Use smalloc fail addr:%x size:%d", pret, size); return MEM_TEST_ERROR; } pret++; } bsp_sfree(praw); return MEM_TEST_OK; } else { mem_print_error("fail! BSP_Malloc addr:%x size:%d", pret, size); return MEM_TEST_ERROR; } }