欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

急arm11 wince6 128m内存升级到256m有关问题

更新时间: 2014-01-05 03:10:33 责任编辑: Author_N1

 

急!急!ARM11 wince6 128M内存升级到256M问题
大家好:
  最近调pxa320,wince6 内存升级问题,修改了一些地方,还是有问题,执行完OEMGetExtensionDRAM函数后系统就卡死了,我修改了以下地方,还请大家指正错误所在:
1.修改oemaddrtab_cfg.inc文件中
;DCD 0x80000000, 0x80000000, 128 ; ZYLONITE DDR SDRAM (128 MB).
改为
DCD 0x80000000, 0x80000000, 256 ; ZYLONITE DDR SDRAM (128 MB)
2.xlli_zylonite_defs.inc文件中
xlli_MDCNFG_value_32    EQU     0x80000729      ; SDRAM Config Reg - 32 bit bus
改为
xlli_MDCNFG_value_32    EQU     0x80000749      ; SDRAM Config Reg - 32 bit bus
变成了14行,10列
3在init.c文件中添加
BOOL OEMGetExtensionDRAM(LPDWORD pMemoryStart, LPDWORD pMemoryLength)
{
*pMemoryStart = 0x88000000;
*pMemoryLength = 0x08000000; //128M
return TRUE;
}
改完之后,boot可以正常启动,写NK后就卡在OEMGetExtensionDRAM这个函数执行完,请大家指点一下,谢谢
此外我修改了config.bib.image_cfg.h,zylonite.h文件中,有关内存的大小,相应的内存大小都变成原来的2倍,也没什么变化,还是卡死在这
--参考方法--
楼主,你确定你的DRAMC的bank寻址能力是128MB吗?如果原来一片128MB能正常跑,那两片根本不需要修改行和列参数就都能寻址访问到。请仔细看datasheet或找硬件工程师确认。
打个浅显的比方:假设bank寻址能力是256MB,现在每个bank上有128MB内存,那:
第一个bank寻址范围:0x80000000~0x8fffffff
0x80000000~0x87ffffff 内存有效访问
0x88000000~0x8fffffff NC无效访问
第二个bank寻址范围:0x90000000~0x9fffffff
0x90000000~0x97ffffff 内存有效访问
0x98000000~0x9fffffff NC无效访问
从你的问题描述“从0x88000000处开始读写,不能正常读写”来看,十有八九bank寻址范围要大于128MB。执行OEMGetExtensionDRAM后卡死的原因是因为内核要遍历内存然后建立分页内存表等相关内容,你映射表包括了NC的范围,访问自然卡死。
上面的比方是基于以前的一些平台经验。如果确认bank的寻址能力是128MB,那最好让硬件工程师协助一下了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:10:33
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19178/
本文WWW.DOC100.NET DOC100.NET版权所有。