更换256M大页flash和128MSDRAM问题

llovehsy   2008-10-30 10:37 楼主
这两天更换了256M大页flash和128MSDRAM,我从网上找的现成的nand flash驱动,根据论坛里的修改128M SDRAM的步骤修改了软件,我检查了一下,该改的地方都改过了,可现在系统起不来,也没有串口调试信息,不知道什么原因,请大家帮帮偶,多谢大家了!我的平台是wince4.2+s3c2440!

回复评论 (39)

bootloader起来了吗?
换Flash关键是看Flash的型号,如果是三星的Small Block换成Large Block的话,驱动改动也比较大的
换SDRAM相对来说要简单一点,关键也是查看新的SDRAM的Spec,根据Spec修改相应的Memory Controller的设置,查看地址空间的映射等等,BSP里面也需要修改一些地方,如OEMAddressTable,Config.bib及相关改动引起的一些头文件的地址的变化等
点赞  2008-10-30 11:40
引用: 引用 1 楼 hzdysymbol 的回复:
bootloader起来了吗?
换Flash关键是看Flash的型号,如果是三星的Small Block换成Large Block的话,驱动改动也比较大的
换SDRAM相对来说要简单一点,关键也是查看新的SDRAM的Spec,根据Spec修改相应的Memory Controller的设置,查看地址空间的映射等等,BSP里面也需要修改一些地方,如OEMAddressTable,Config.bib及相关改动引起的一些头文件的地址的变化等


就这些东西,楼主串口打印信息都没有出来,肯定是SDRAM问题了。你仔细看看ARM和内存的数据手册。这个东西还是要很小心的。
点赞  2008-10-30 11:44
我是在wince5.0+s3c2410上实现的,主要就改一些大小定义,地址映射等
点赞  2008-10-30 12:23
最好把串口信息打出来,先确认你的boot改对了,如果boot不先支持是跑不起来的。
点赞  2008-10-30 12:25
引用: 引用 4 楼 constantine 的回复:
最好把串口信息打出来,先确认你的boot改对了,如果boot不先支持是跑不起来的。


内存没有初始化好,程序都没有运行,不会有串口信息的
建议楼主先在ADS下调试好,确认你的硬件没有错误,然后再在PB上调试。
点赞  2008-10-30 12:37
多谢各位,在ADS下已经调试好了,bootloader也起来了,也都有打印信息,只是在启动ce时起不来,好像没有NK,但是我查看内存中NK已经传进去了,不知什么原因,可能还是sdram没有设置对。
点赞  2008-10-30 16:16
bootloader能起来说明SDRAM肯定是可以正常工作了,CE没有起来有可能是内存分配或者地址上出了问题
为了避免是FLASH的问题,建议直接把NK装到RAM里,然后跳转,看能否起动?
点赞  2008-10-31 09:17
应该不是flash的问题,现在基本上确定是内存分配的问题!我将b6_scan设置为0x2,然后改了map.a,将原来0x90800000以后的地址全部后移0x4000000,最后修改了config.bib!bsp中的文件涉及到地址设置的地方都是物理地址,物理地址并没有更改!请大家告诉我还需要改什么地方!多谢了!
点赞  2008-10-31 09:31
CE有起来了吗?还是说CE的OEMInit都没有跑进来?
如果OEMInit都没有跑的话可能还是要检查一下SDRAM在CE下面的配置是否跟Bootloader一致,这个就看各自的做法,有的在CE Image起来的时候会重新初始化系统,有的是在Bootloader配置了CE下面就不再重设了
点赞  2008-10-31 09:41
跑到哪里嫩贴串口信息出来吗?
点赞  2008-10-31 09:52
建议你不要两个同时换,在保证一个能用的基础上再去调另一个。首先你要保证你的RAM能用,在RAM能用,电路没问题的基础上去调NAND FLASH。在NAND FLASH调好的基础上,再试着把RAM去调大!

//=================把大事化小,小事化了。饭要一口口吃的!不要指望一下子什么都能够OK!
点赞  2008-10-31 10:04
wince5.0+s3c2410实现的,我简单罗列了一下我的做法,希望对你有帮助。
http://blog.eeworld.net/constantine/archive/2008/10/31/3193262.aspx

楼上说的不错,最好一样一样改,不要一起来,不然错误更是难以确定。
点赞  2008-10-31 13:22
多谢各位了,我先是把新的NandFlash换到老板子上,结果CE可以跑起来,然后换到新板子上,uboot和测试程序也都已经可以跑起来了,现在跑uboot时串口信息都正确,跑CE时串口压根没有东西,我怀疑还内存分配上出问题,现在发现更改过后系统在一直重起。
多谢xqhrs232,我试试你的办法!
点赞  2008-11-3 09:34
感谢constantine,我按照你的blog试试!
点赞  2008-11-3 09:38
constantine,我按照你的办法试了试,结果还是不停重起,好像是301073b8这个地方有问题,请教这是什么原因!
点赞  2008-11-3 14:45
我的只能参考,我的平台跟你不一样,不过应该差不多,但是或许有小区别。
你最好把串口信息打印出来,给你地址我根本就无法知道你到底发生了什么问题。
我做的时候只有起不来的,重启的我也没见过。
点赞  2008-11-3 15:35
终于可以看见串口打印信息了,nnd,我把工程全部删除再把原来备份的还原,再按照我原来改过的地方进行修改就能看见了,真是奇怪!现在是串口信息停在了:由于是新板子,所以可能和原来的软件有冲突!
Starting application at 0x30100000 ...?Windows CE Kernel for ARM (Thumb Enabled) Built on Nov  3 2008 at 19:01:16
ProcessorType=0920  Revision=0
ProcessorType=0920  Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c101484

Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
OEMInit Done...
ProcessorType=0920  Revision=0
Booting Windows CE version 4.20 for (ARM)

Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 24526, Secondary pages: 0, Filesystem pages = 512

Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 8dc2c000, extension: 00006000, length: 05fce000
Sp=ffffc7cc
Windows CE KernelInit----nan
HeapInit Done...----nan
FMD: ReadID (Mfg=ec, Dev=da)
FMD_Init: finished successful
InitializeJit
PWR: Process Attach
OEMInterruptEnable()

OEMInterruptEnable()

AC97AUDIO::Init.
Drive the UART1
UART1 - !!!
OEMInterruptEnable()

UART1_OEMInterruptEnable()

UART1 interrupt.
UART1_OEMInterruptDone()

UART1 interrupt.
SL_Open 0x30A50 (0 opens)
setbaudrate in sl_open
+SL_SetbaudRate 0x30A50, 9600
SetBaudRate -> 9600?
大家看看是什么原因!
点赞  2008-11-4 13:54
mark
点赞  2008-11-4 14:26
或许你新的把串口打印函数给屏蔽了。
到 SetBaudRate -> 9600?
结束?

我这么看不出你说的301073b8地址从哪里得到的?

你已经到了驱动部分,好好看看修改的影响了那些驱动。我感觉应该是地址修改了可能影响到你某个驱动起不来。
点赞  2008-11-4 22:21
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复