阅读:2032回复:0
2440+wince5.0 扩充128M SDRAM的问题
我使用2440+wince5.0的平台,原先使用2片共64M字节的SDRAM,每片256bit,16bit位宽;现在想使用128M SDRAM,所以用了4片和原先一模一样的SDRAM芯片,在硬件连接上4片sdram芯片的BA0都与addr24连接,BA1都与addr25连接,另外其中两片使用CS6作为片选,另外两片使用CS7作为片选。
软件上我主要作了以下几处改动: 1) setpldr程序中对sdram控制器进行配置时将BK76MAP设置为64MB每bank; 2) eboot程序中对sdram控制器进行配置时将BK76MAP设置为64MB每bank; 3) 在oemaddrtab_cfg.inc文件中,对地址的映射关系进行了修改如下: ; modify(mod) 为了支持128M SDRAM ; DCD 0x80000000, 0x30000000, 64 ; DCD 0x84000000, 0x10000000, 32 ; DCD 0x86000000, 0x18000000, 32 DCD 0x80000000, 0x30000000, 128 4) 在config.bib文件中,做了如下修改: ;;; modify(for 128M SDRAM) ; NK 80200000 01E00000 RAMIMAGE ; RAM 82000000 01E00000 RAM NK 80200000 01E00000 RAMIMAGE RAM 82000000 05E00000 RAM 做了上述修改后,我通过eboot下载nk.bin,加载ce时,调试信息输入下面内容后,就不再输出信息,也就是说系统终止在此处了: Windows CE Kernel for ARM (Thumb Enabled) Built on Feb 8 2007 at 23:36:51 ProcessorType=0920 Revision=0 sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8020114c +OEMInit DCache: 8 sets, 64 ways, 32 line size, 16384 size ICache: 8 sets, 64 ways, 32 line size, 16384 size InitDisplay clkval_calc 1 -OEMInit 针对上面的问题,我做了如下几项测试: 1) 在stepldr程序中对30000000~37ffffff的地址进行遍历,先写再读,发现都是正常的,也就是说硬件似乎没有问题,内存的物理地址空间也没有问题; 2) 在eboot中对下面的虚拟地址进行读写测试,对83ff0000~83ffffff测试时候,发现都是正常的,对87ff0000~87ffffff测试的时候,发现都不太正常;我把一级页表的内容全部打印出来,也没有发现什么问题,也就是说在一级页表中对虚拟地址84000000~87ffffff范围的地址映射都是正确的。 我现在对eboot中对87ff0000~87ffffff 这段地址的访问不正常非常困惑,可能这个问题解决了,下载nk.bin启动的问题也就解决了。 哪位高手能指点一下,谢谢! |
|