powerall888
驱动小牛
驱动小牛
  • 注册日期2007-03-02
  • 最后登录2010-09-29
  • 粉丝0
  • 关注0
  • 积分906分
  • 威望329点
  • 贡献值0点
  • 好评度124点
  • 原创分0分
  • 专家分0分
阅读:2032回复:0

2440+wince5.0 扩充128M SDRAM的问题

楼主#
更多 发布于:2009-11-23 19:52
    我使用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启动的问题也就解决了。
    
    哪位高手能指点一下,谢谢!
游客

返回顶部