3605|8

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EBOOT中SDRAM读写测试 [复制链接]

各位英雄:
我的系统基于pxa255+wce4.2,外挂2个bank的sdram,每个bank接64M,由两片32M组成。我在eboot中为测试sdram,就分别对两个bank的地址进行读写(每个bank的低400字节),发现bank0可以正常读写,也即读写数据一致;bank1读写数据不一致,且每次读出的数据还不一样。

请问会是什么原因呢?硬件?还是内存映射问题?

另外,我用示波器观察sdram的引脚时,发现clk信号是正弦波,频率正常;但是片选信号在eboot启动后就出现周期性的低电平(不规则),且两个bank的片选周期还不一样(bank0为800KHZ,bank1为200KHZ);在循环读写时,发现片选信号的频率会有2KHZ左右的升高!

最新回复

估计是坏了。换个试试。内存比较用容易换。  详情 回复 发表于 2008-12-21 19:19
点赞 关注

回复
举报

88

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不好意思帮不上忙啊
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我觉得你的已经有一个内存读写正常。
另外一个不正常,这说明不是软件的问题,是你的接线没有接好。先和硬件工程师查找原因,看是否应该这样接。
——
没有ADS的东西,真不是那么好开发的。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
接线问题?两个bank的接线基本一样,区别就在于片选不一样。而且观察发现两个bank的片选信号波形不一致,差别挺大。

有没有可能我的数据没有写入SDRAM,而是写到CACHE里,所以数据读出是随机的?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 daigua04 的回复:
接线问题?两个bank的接线基本一样,区别就在于片选不一样。而且观察发现两个bank的片选信号波形不一致,差别挺大。

有没有可能我的数据没有写入SDRAM,而是写到CACHE里,所以数据读出是随机的?


时钟等都要注意的。

你要仔细看内存控制器那章节,肯定会发现问题。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
我的两个bank的SDRAM,第一个bank除了内核部分外,其余部分以RAM的形式在config.bib文件中声明(类型为RAM);第2个bank在OEMGetExtensionDRAM函数中声明:
BOOL OEMGetExtensionDRAM(LPDWORD lpMemStart, LPDWORD lpMemLen)
{
    /*  This is called by the Kernel so see if there is any DRAM beyond
         what is reported through Config.bib
    */         
    //blue add
    *lpMemStart = 0x94200000;
    *lpMemLen = 0x04000000;
     return TRUE;
    //return FALSE;   // no extension DRAM
}

其中0x94200000就是第2个bank的虚拟起始地址(cached)。

我在eboot中读写第2个bank的前400个字节(从0xB4200000开始),数据读写不一致,且每次读出的都不一样。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
SDRAM的Controller是需要配置的。255支持4个SDRAM的#SDCS,每个都需要单独配置及打开。一般这个动作是在汇编部分,MMU打开之前做的。你仅仅在OEM程序中提交了地址是不够的。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

8
 
SDRAM的控制器我已经在EBOOT的汇编中设置好了。

两套一模一样的板子,一样的EBOOT(包含测试代码),一个板子上可以正常读写;另外一套板子就只有低64M(第1个bank)可以正常读写,高64M(第2个bank)就是读写不一致,且每次读出都不相同。

是不是板子上的SDRAM坏了呢?还是SDRAM本身没有问题,电路有问题?它们会导致读写不一致,且每次读出是随机的吗?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 daigua04 的回复:
SDRAM的控制器我已经在EBOOT的汇编中设置好了。

两套一模一样的板子,一样的EBOOT(包含测试代码),一个板子上可以正常读写;另外一套板子就只有低64M(第1个bank)可以正常读写,高64M(第2个bank)就是读写不一致,且每次读出都不相同。

是不是板子上的SDRAM坏了呢?还是SDRAM本身没有问题,电路有问题?它们会导致读写不一致,且每次读出是随机的吗?


估计是坏了。换个试试。内存比较用容易换。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表