1、修改工程目录下 src/inc/addrtab_cfg.inc
2、XLDR中SDRAM的初始化
3、修改 image_cfg.h 中 image大小
4、在OEM_init中,增加如下:
g_pOemGlobal->pfnEnumExtensionDRAM = OEMEnumExtensionDRAM;
该函数具体实现如下:
/*********************************************************************************************************
** Function name: OEMEnumExtensionDRAM
**
** Descriptions: 系统内存分配,可以添加多片不连续的内存
** 1、根据DSP的应用需求,将多余的DSP保留区内存添加到系统内存
2、添加另外增加的128MB内存到系统内存
注意:
1、使用OEMEnumExtensionDRAM函数,在初始化时付给g_pOemGlobal->pfnEnumExtensionDRAM即可
2、g_pOemGlobal->pfnEnumExtensionDRAM指针初始化过后,原来的OEMGetExtensionDRAM函数就无效了
** input parameters:
** output parameters:
** Returned value: 额外添加的内存片数
*********************************************************************************************************/
DWORD OEMEnumExtensionDRAM(PMEMORY_SECTION pMemSections,DWORD cMemSections)
{
DWORD cSections = 0;
RETAILMSG(0, (_T("OEMEnumExtensionDRAM \r\n")));
if (cSections < cMemSections)
{
if(g_pBSPArgs->DSPCodeServer == 0){ /*选择DSP编解码服务 */
pMemSections[cSections].dwFlags = 0;
pMemSections[cSections].dwStart = 0x85800000;
pMemSections[cSections].dwLen = 0;
} else if(g_pBSPArgs->DSPCodeServer == 1){ /*选择DSPlink 服务 */
pMemSections[cSections].dwFlags = 0;
pMemSections[cSections].dwStart = 0x85800000;
pMemSections[cSections].dwLen = 0x01900000; /* 15MB */
} else if(g_pBSPArgs->DSPCodeServer == 2){ /*禁止DSP功能 */
pMemSections[cSections].dwFlags = 0;
pMemSections[cSections].dwStart = 0x85800000;
pMemSections[cSections].dwLen = 0x02800000;
}
cSections++;
}
#ifdef BSP_SDRAM_256MB_ENABLE
//添加另外128MB内存
if (cSections < cMemSections) {
pMemSections[cSections].dwFlags = 0;
pMemSections[cSections].dwStart = 0x88000000;
pMemSections[cSections].dwLen = 0x08000000;
cSections++;
}
#endif
RETAILMSG(0, (_T("OEMEnumExtensionDRAM (cSections=%d)\r\n"), cSections));
return cSections;
}
阅读(1306) | 评论(0) | 转发(0) |