历史上的今天
返回首页

历史上的今天

今天是:2024年09月15日(星期日)

2021年09月15日 | jz2440裸机开发与分析:内存控制器4之SDRAM设置

2021-09-15 来源:eefocus

在这里插入图片描述

LDR R0,=0X30000000

➡CPU发给内存控制器:①发出nGCS6;②根据(SDRAM)类型拆分地址:a,BANK地址,b,行地址, c,列地址 ;③读数据

LDR R1,[R0]


问题:如何拆分?行地址几条?列地址几条?


2440内存控制器设置

1、BWSCON寄存器配置=0x22000000

在这里插入图片描述

2、BANKCON6寄存器配置

在这里插入图片描述

3、REFRESH刷新寄存器配置

在这里插入图片描述

4、BANHSIZE配置

在这里插入图片描述

5、MRSRB6

在这里插入图片描述
在这里插入图片描述

SDRAM中有一个MR寄存器(含有CL),用来确定列地址到发出数据中间间隔的时间,而2440内的MRSRB6寄存器也有一个CL,2440根据内部CL设定的值,再通过发送数据去确定SDRAM中的CL,从而确定列地址到发出数据中间间隔的时间。

代码:


init.h

#ifndef _INIT_H

#define _INIT_H


void sdram_init(void);

int sdram_test(void);


#endif

init.c

#include "s3c2440_soc.h"


void sdram_init(void)

{

BWSCON = 0x22000000;


BANKCON6 = 0x18001;

BANKCON7 = 0x18001;


REFRESH  = 0x8404f5;


BANKSIZE = 0xb1;


MRSRB6   = 0x20;

MRSRB7   = 0x20;

}


int sdram_test(void)

{

volatile unsigned char *p = (volatile unsigned char *)0x30000000;

int i;


// write sdram

for (i = 0; i < 1000; i++)

p[i] = 0x55;


// read sdram

for (i = 0; i < 1000; i++)

if (p[i] != 0x55)

return -1;


return 0;

}

main.c

#include "s3c2440_soc.h"

#include "uart.h"

#include "init.h"


int main(void)

{

uart0_init();


sdram_init();


if (sdram_test() == 0)

led_test();

return 0;

}

推荐阅读

史海拾趣

Enterpoint公司的发展小趣事

为了进一步扩大市场份额,Enterpoint公司开始积极拓展国际市场。他们通过参加国际电子展会、建立海外销售网络等方式,不断提升品牌知名度和影响力。同时,公司还积极寻求与国际知名企业的合作机会,通过技术交流和产品合作,不断提升自身的技术实力和产品质量。

FOSLINK公司的发展小趣事

面对全球气候变化的严峻挑战,FOSLINK公司积极响应国家关于绿色发展的号召,将绿色转型作为企业发展的重要方向。公司致力于研发和生产低能耗、环保型的电子产品,并不断优化生产工艺流程,减少资源消耗和环境污染。同时,FOSLINK还积极推广绿色供应链管理,与供应商和客户共同构建绿色、低碳的产业链生态。这一系列的绿色转型举措,不仅彰显了FOSLINK的社会责任感,也为其赢得了更多消费者的青睐和支持。

Coors Components Inc公司的发展小趣事

Coors Components Inc公司凭借其强大的研发团队,成功开发出一款具有划时代意义的电子产品组件。这款组件不仅性能卓越,而且成本远低于市场上的同类产品,迅速赢得了客户的青睐。随着销量的不断增长,公司的知名度逐渐提升,进一步巩固了其在行业内的地位。

FEMA Electronics Corporation公司的发展小趣事

FEMA在追求经济效益的同时,也积极履行社会责任。公司积极参与公益事业和慈善活动,为社会做出了积极贡献。同时,FEMA还注重环保和可持续发展,努力降低生产过程中的能耗和排放。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。在履行社会责任的过程中,FEMA实现了经济效益和社会效益的双赢。

BK Precision公司的发展小趣事

BK Precision一直将品质管理视为企业发展的核心。公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、出厂等各个环节都进行严格把控。同时,公司还注重持续创新,不断推出符合市场需求的新产品。通过引进先进的生产设备和技术手段,BK Precision不断提高生产效率和产品质量,为客户提供更优质的产品和服务。

Eastron Corp公司的发展小趣事

随着社会的不断发展,Eastron Corp深刻认识到企业的社会责任和可持续发展的重要性。公司积极参与社会公益事业,为当地社区和环境保护做出贡献。同时,Eastron还注重节能减排和环保生产,通过技术创新和工艺改进,降低生产过程中的能耗和排放。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了基础。

请注意,这些故事仅为虚构示例,不代表任何真实事件或公司历史。

问答坊 | AI 解惑

原创--IAR for AVR入门学习笔记

AVR单片机的编译软件五花八门,用宋丹丹的话就是:那是相当的多 汇编语言的开发平台就不说了(俺不大会,呵呵,说不出什么道道来)。 简单列举几个高级语言的开发平台: WINAVR(GNU GCC AVR); ICC AVR CodeVison AVR IAR for AVR BASIC ...…

查看全部问答>

关于SIM300短信发送的问题

大家好,我是正在使用sim300 GPRS模块,我用AVR mega16单片机控制模块进行短息发送,我用串口调试过了,一点问题也没有,但是我用单片机进行调试的时候就有问题了,大家可以给点建议?…

查看全部问答>

diskperf怎么调试

把diskperf装虚拟机上的windows中了,但是用WinDbg调试时没有任何diskperf的输出信息 建造环境是x86 Checked Build Environment,用WDK自带的inf安装,windows是debug模式启动 别的还要做什么配置吗?WinDbg设置的应该没有问题,别的驱动显示有调试 ...…

查看全部问答>

wince5.0怎么添加游戏组件?

我在系统中加入了Games里的Freecell等游戏,编译,不管用sysgen还是build and sysgen(下面的三个菜单,clean,copy和make都打了勾),完成之后,启动wince都没有看到游戏。为什么? …

查看全部问答>

哪为仁兄使用过ifs kit开发文件过滤驱动?

哪位仁兄使用ifs kit开发过滤驱动,我是刚学习,安装了ifs kit for server 2003,但不知道怎么编写代码。我也安装了vc6。0。请高手给一些初学者开发的资料(清发到: fengyi621@163.com)谢谢了 。对了,我还遇到了一个问题,使用windows server 2003 ...…

查看全部问答>

关于有符号数和无符号数

通常在8086系统中,计算机是如何判断 有符号数与无符号数呢,例如:1000110100101,如何判断它是一个有符号数,还是无符号数呢? 谢谢各位楼主了,…

查看全部问答>

修电脑,不求人

1:主板故障2:显卡故障3:声卡故障4:硬盘故障5:内存故障6:光驱故障7:鼠标故障8:键盘故障9:MODEM故障10:打印机故障11:显示器故障12:刻录机故障13:扫描仪故障14:显示器抖动的原因15:疑难BIOS设置16:电脑重启故障17:解决CPU占用率过 ...…

查看全部问答>

2.4GHz射频解决方案用于RFID/物联网

2.4GHz射频解决方案用于RFID/物联网                  物联网是新一代信息技术的重要组成部分。其英文名称是“The Internet of things”。由此,顾名思 ...…

查看全部问答>

求一利用msp430测量脉冲周期的程序

在一端口输入脉冲,用msp430捕获比较功能设计一程序测量脉冲周期。各位大神,帮下忙。 [ 本帖最后由 xidianstudent1 于 2011-11-30 12:56 编辑 ]…

查看全部问答>

LM3S 的分散加载堆和栈的划分

最近程序中涉及到了malloc函数,所以要先弄一块堆区域,不知道为什么一直报错,恳请经验者解答下,截图如附件。…

查看全部问答>