历史上的今天
返回首页

历史上的今天

今天是:2025年04月07日(星期一)

正在发生

2020年04月07日 | 【嵌入式Linux+ARM】存储控制器(操作SDRAM)

2020-04-07 来源:eefocus

1.存储控制器介绍


s3c2440中的“存储管理器”提供了访问外部设备所需要的信号,有如下特性:


1.支持小字节序、大字节序(通过软件选择)


2.每个BANK为128M,一共有8个BANK,共1G


3.BANK0~BANK5可以支持外接ROM、SRAM等,BANK6~BANK7除可以支持ROM、SRAM外 还支持SDRAM


4.BANK0~BANK7的起始地址是固定的


5.外接SDRAM时,支持自刷新和省电模式


s3c2440上有ADDR0~ADDR26访问范围只有128M,如何达到上面的1G,通过对外引出的8跟片选信号nGCS0-nGCS7,对应于BANK0~BANK7。片选信号输出低电平可以选中相应的外接设备。

2.实验代码


本实验流程:


禁止看门狗—>nand flash中前4k字节复制到芯片内部SRAM中执行—>通过存储控制器初始化外接的SDRAM—>复制代码到SDRAM中—>跳转到SDRAM中执行。


下面是需要配置存储控制器的相关寄存器,需要看手册:


0x22011110,     //BWSCON

0x00000700,     //BANKCON0

0x00000700,     //BANKCON1

0x00000700,     //BANKCON2

0x00000700,     //BANKCON3  

0x00000700,     //BANKCON4

0x00000700,     //BANKCON5

0x00018005,     //BANKCON6

0x00018005,     //BANKCON7

0x008C07A3,     //REFRESH

0x000000B1,     //BANKSIZE

0x00000030,     //MRSRB6

0x00000030,     //MRSRB7


head.S


.equ MEM_CTL_BASE, 0x48000000           //.euq A  B  就是A=B 等价于c语言的宏定义

.equ SDRAM_BASE,    0x30000000

 

.text

.global _start

_start:

bl disable_watch_dog

bl memsetup                     //设置存储控制器

bl copy_steppingstone_to_sdram  //复制代码到SDRAM中

ldr pc, =on_sdram               //跳到SDRAM中执行

on_sdram:

ldr sp, =0x34000000             //设置栈

bl main

halt_loop:

b halt_loop

 

disable_watch_dog:

mov r1, #0x53000000

mov r2, #0x0

str r2, [r1]                   //关闭看门狗

mov pc, lr                     //返回

 

copy_steppingstone_to_sdram:

mov r1, #0x0

ldr r2, =SDRAM_BASE

mov r3, #4*1024

1:

ldr r4, [r1], #4

str r4, [r2], #4

cmp r1, r3

bne 1b                        //bne b跳转 ne是not equal  表示如果不相等,跳到1出继续执行 注意1不是l。。。

mov pc, lr

 

memsetup:

mov r1, #MEM_CTL_BASE

adrl r2, mem_cfg_val

add r3, r1, #52

1:

ldr r4, [r2], #4

str r4, [r1], #4

cmp r1, r3

bne 1b

mov pc, lr

 

.align 4

mem_cfg_val:                         //存储控制器中13个寄存器的值

.long 0x22011110

.long 0x00000700

.long 0x00000700 

.long 0x00000700

.long 0x00000700

.long 0x00000700

.long 0x00000700

.long 0x00018005

.long 0x00018005

.long 0x008C07A3

.long 0x000000B1

.long 0x00000030

.long 0x00000030

Makefile

sdram.bin:head.S led.c

arm-linux-gcc -c head.S -o head.o

arm-linux-gcc -c led.c -o led.o

arm-linux-ld -Ttext 0x30000000 head.o led.o -o sdram_elf

arm-linux-objcopy -O binary -S sdram_elf sdram.bin

arm-linux-objdump -D -m arm sdram_elf > sdram.dis

 

clean:

rm -rf *.o *.bin *.dis *elf

测试时用的led.c,随意选择前面文章中的led点灯程序即可。

推荐阅读

史海拾趣

ddm hopt + schuler GmbH & Co KG公司的发展小趣事

ddm hopt + schuler GmbH & Co KG公司自创立之初,就专注于电子制造设备的研发与生产。在20世纪90年代,公司成功研发出一款具有革命性意义的自动化生产线,极大地提高了电子产品的生产效率和质量。这一技术突破迅速赢得了市场的认可,公司开始在全球范围内扩张业务,与多家知名电子品牌建立了长期合作关系。

FOCI Fiber Optic Communications Inc公司的发展小趣事

为了保持技术领先地位和市场竞争力,ddm hopt + schuler公司积极开展跨界合作和创新发展。公司与多所知名高校和研究机构建立了产学研合作关系,共同研发新技术、新产品。此外,公司还积极参与国际交流与合作,引进国际先进技术和管理经验。这些合作不仅为公司带来了更多的创新资源,也提升了公司的国际影响力和竞争力。

亿佰特(EBYTE)公司的发展小趣事

亿佰特注重团队建设和人才培养。公司吸引了一批具有丰富经验和专业技能的人才加入,形成了一支高效、专业的团队。公司还注重员工的培训和发展,为员工提供广阔的晋升空间和职业发展机会。正是这支优秀的团队,为亿佰特的发展提供了源源不断的动力。

申风(everanalog)公司的发展小趣事

申风(everanalog)公司于2013年在上海成立,由一群充满激情和梦想的电子工程师组成。创始人施嘉铭凭借其深厚的行业经验和前瞻性的视野,带领团队开始了集成电路设计的探索之旅。在初创阶段,公司面临着资金紧张、人才短缺等挑战,但团队凭借着坚定的信念和不懈的努力,逐渐在市场上站稳了脚跟。

璟德(ACX)公司的发展小趣事

2008年,璟德(ACX)成功在台北证券交易所上市,股票代码为3152。这一举措为公司带来了更多的资金支持,也提升了其品牌影响力和市场地位。上市后,璟德(ACX)加大了对研发和市场拓展的投入,进一步巩固了其在无线通信领域的领先地位。

CDI-DIODE公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。CDI-DIODE公司始终坚持品质至上的原则,从原材料采购到生产流程控制,再到产品检测,都严格把关。这种对品质的执着追求赢得了客户的信任和口碑,使公司在激烈的市场竞争中脱颖而出。

问答坊 | AI 解惑

采用模拟电路 电脑可似人脑

今天,科学家们介绍了一种新型的电子电路。这种电路可以模仿人脑的运动,如果用在计算机上,计算机就能象人一样进行思维。人的大脑皮层是人的思维中心,是由神经元组成的复杂的网状结构,有灵敏的反应力。来自麻省理工学院(MIT)、新泽西朗讯公司 ...…

查看全部问答>

SABER与控制系统仿真

SABER与控制系统仿真…

查看全部问答>

哪位高手能给我解释解释什么是数据恢复电路啊?

老师安排的题目是数据恢复电路 用verilog编程的 自己上网查了也没搜到什么东西 哪位高手能给我解释解释这个电路啊 还有编程方面要注意些什么问题啊 先谢谢了!!! 对了 这是要求 数据恢复电路:半字节数据输入,不定长码流,MSB在前,起始位 ...…

查看全部问答>

68013A端点EP6OUT的BULK写失败求助,急!!

68013A端点EP6OUT的BULK写失败求助,急!! 易用专业的PCI、USB、LED方案正在对68013A采用slavefifo方式进行bulk读写操作 我用EP2做in端点,1024字节,2从缓冲 用EP6做OUT端点,512字节,4从缓冲 我写好了68013A的固件,用CYPRESS的开发工具 ...…

查看全部问答>

你努力工作是为了谁?

当你满怀激情的投入到工作当中的时候,   你有没有想过,你的工作包含了多少有益成分?在你的工作成绩中,有多少是在为自己打拼,有多少是在为他人做嫁衣呢?    …

查看全部问答>

悲剧啊,69端口竟然被占用!

1.昨天在公司电脑上配置的TFTP成功以后,下班回到家满心欢喜把家里的电脑也比葫芦画瓢来一遍,结果死活都启动不了。查了下端口UDP6协议下,后面占用是69端口,而不是udp。而且执行service tftpd-hpa restart ,他竟然停在那里,连命令行也不出来了 ...…

查看全部问答>

我的新书《ARM Cortex-M0从这里开始》,已经上市

我的新书《ARM Cortex-M0从这里开始》已经出版,即将上市,希望大家多多支持。在这里先谢谢大家了。。。。。。。。。。。。。     前言和目录:     已经上市   北航:http://www.buaapress.com.cn/bookdetai ...…

查看全部问答>

中国消费类电子企业有哪些????

像华为、中兴这样的消费类电子有哪些??? 这些企业都做得怎么样??? 一起来聊聊啊!!!!…

查看全部问答>

电机控制 - 无刷直流 (BLDC) 电机主推产品

本帖最后由 dontium 于 2015-1-23 13:10 编辑 器件型号:RDK_BLDC                     DRV8312-C2-KIT (电机控制评估套件)    &nbs ...…

查看全部问答>

DSP的SPI通信

各位大虾,小弟一个PCB上边有两个2812,要使用SPI通信,请问SPI的四个端口能直接连接在一起么?需要注意些什么?谢谢了…

查看全部问答>