wince sdram 64M------>128M 的改造问题-_-!!!
前辈们好~
我现在在s3c2440上做wince,原来的sdram是64M的,现在换成了128M的,在我开始改程序之前,wince是正常启动的,但是进入系统后看得出虽然换了128M的sdram,但是还是只认出来了64M。
于是我开始改程序了:
先是bois的设置,我的sdram接在bank6,我就把bank6的B6_SCAN 设置为0x2 ;代表的10bit的列地址
wince的改动如下:
map.a中:
OEMAddressTable
; DCD 0x8C000000, 0x30000000, 64 ; 64 MB DRAM BANK 0, 1
DCD 0x8C000000, 0x30000000, 128 ; 128 MB DRAM BANK 0, 1
改成了128的,然后把后面的映射的虚拟地址都后移了0x4000000,避免冲突了......
config.bib
; RAM 8DE00000 02200000 RAM
; rework by kw.gx
RAM 8DE00000 06200000 RAM
我改成了这样意思就是ram使用的大小也改大了。
memcfg.a中的bank6的设置
;Bank 6 parameter
B6_MT EQU 0x3 ;SDRAM
B6_Trcd EQU 0x2 ;3clk ; over 180M
;B6_SCAN EQU 0x1 ;9bit
B6_SCAN EQU 0x2 ;10bit rework by kw.gx
可是现在系统跑步起来了
Memory Test(30200000h-33800000h):O.K.
Memory Test OK...
Load Kernel in NandFlash...
NandFlash Start Page = 0x4000...
NandFlash Start Page = 0x4000,And Size = 29360128
run 0x30201000...
就没有反应了......
是在不知道是什么地方除了问题,试验了好久都没有解决,哪位大大出手相救啊!!!!!
解决不了的朋友,也希望给予我友好的一顶~!!!!!
谢谢大家了
西安 小高
原来的sdram是MT48LC16M16A2,现在的是MT48LC32M16A2。。。它们的比较是...
MT48LC16M16A2
它的内部结构是:
13根行地址线(A0~A12)
9根列地址线(A0~A8)
2根bank线
其内存容量是 2的13次方 = 8192
2的9次方 = 512
8192 x 512 X 4 X2 = 32MB
at91sam9261EK使用了两片MT48LC16M16A2总共就是64MB
如果需要加大SDRAM到128MB可以选用:MT48LC32M16A2
它的内部结构是:
13根行地址线(A0~A12)
10根列地址线(A0~A9)
2根bank线
其内存容量是 2的13次方 = 8192
2的10次方 = 1024
8192 x 1024 X 4 X2 = 64MB
at91sam9261EK使用两片MT48LC32M16A2总容量就是128MB
注意:
只需要更换内存芯片,不需要重新布pcb的 MT48LC32M16A2 和 MT48LC16M16A2 是pin to pin 兼容的。
更换内存芯片后,相应的动态内存控制配置要改动到适合MT48LC32M16A2比如列地址多了一根。
记得以前看过一个高手的blog,就是24xx平台的SDRAM扩展。我在找。
你顺便可以做一件事:
在eboot下,从SDRAM的0地址开始,到128MB空间,来一次遍历校验,就是写一下读一下,看看是否能全部成功,尤其是高64MB空间。
为了防止写之后数据总线未释放,导致读的还是写的数据,而失去校验的意义,建议写至少2个地址,然后再读这2个地址,只要保证每个地址写的不一样就行。
俺以前做过,依稀记得cpu是2440的话一个bank用128M,要改两根地址线bank地址选择25,24 变 26,25 ,当然还可以有其他很多经济性改法,不过硬件改动就比较大了.
可参考 WindowsCe4.2 128M SDRAM 调整步骤,S3C2440的。
http://blog.eeworld.net/slyzhang/archive/2007/07/03/1676889.aspx
多谢 前辈 ~ 我现在就在做遍历sdram的测试 发现高端的SDRAM地址 确实不能正常写入 一写就崩溃 可能是sdram的配置还有问题 我再看看
可能是硬件上的信号脚不对应。好好看看原理图和datasheet
改完以后要进入dos命令行,用Build -c 对你所更该的内容进行编译。
仔细看了数据手册64 与 128的连接确实有不同 就像4楼大大说的一样
我现在改了硬件的定义 连接在 25 26 , 可是现在的板子却不能启动了,很奇怪 , 我用multi-ice连接 就可以单步,全速run都可以,可是我直接上电跑的话就起不来4斩跑马灯先点亮然后迅速熄灭,串口没有任何反应。
调试了很久 都没有找到问题的根源
希望得到点你们的经验之谈 谢谢
可能是因为BOOT中的汇编部分,对SDRAM的配置出问题了。
要修改相应的寄存器,告诉CPU用的是128MB的SDRAM。然后CPU才知道从25 26产生BANK信号。
我也是个新手,还不是很了解,呵呵,我看到BANKSIZE大小控制寄存器里边有一个设置BANK6和7的BK76MAP,是不是这里的设置没改呢????
引用: 引用 5 楼 shuiyan 的回复:
可参考 WindowsCe4.2 128M SDRAM 调整步骤,S3C2440的。
http://blog.eeworld.net/slyzhang/archive/2007/07/03/1676889.aspx
这个博客的做法是不正确的。