S3C2410存储控制器

这篇博客介绍了如何在S3C2410平台上编写并烧录leds.c程序。程序链接地址设为0x30000000,与SDRAM起始地址匹配。通过LINUX环境下运行make生成sdram.bin,然后使用特定工具将其烧录到NAND FLASH的1-2扇区中。重新启动开发板后,LED会被点亮,验证程序成功执行。
摘要由CSDN通过智能技术生成
主机环境:UBUNTU10.04LTS+arm-linux-gcc 2.95.3
开发板环境:EdukitIII实验箱+s3c2410子板
问题描述:程序首先烧写到NAND FLASH中,启动CPU时,CPU会通过内部的硬件把NAND FLASH开始的4KB数据复制到成为“Steppingstone”的4KB的内部RAM中(起始地址为0),然后跳到地址0开始执行。本程序先使用汇编程序设置好存储控制器,使外接的SDRAM能够使用,然后把程序本身从Steppingstone复制到SDRAM中,最后跳到SDRAM中执行。该程序功能实现了循环点亮LED灯。
【1.硬件原理】
EDUKITIII实验箱的外设如NOR FLASH,IDE接口、网卡、CPLD、SDRAM等都是通过存储控制器与S3C2410连接的。本程序以设置SDRAM为例,来学习如何使用存储控制器。S3C2410存储控制器的地址空间分布如图1所示
 
110508175019.jpguploading.4e448015.gif转存失败重新上传取消 110508175019.jpg
 
                        图1 S3C2410存储控制器的地址空间分布图
可以看到,BANK6,7可以连接SDRAM,EDUKITIII实验箱是把SDRAM连接到BANK6,SDRAM型号为HY57V561620,共2片(位于S3C2410子板上),所以SDRAM容量一共为4LBank*4M*16bit*2=64MByte(1片HY57V561620共有4个逻辑bank即LBank,每个逻辑bank有13条行地址线,9条列地址线,共22条地址线,每个LBank可寻址范围为4M,每个存储单元位数为16位),硬件连接如图2所示
 
110508175026.jpguploading.4e448015.gif转存失败重新上传取消 110508175026.jpg
 
                     图2 S3C2410子板上SDRAM连接图
由图1可知,SDRAM的起始地址为0x30000000,容量为64MB,所以结束地址为0x30000000+64M=0x33FFFFFF。存储控制寄存器一共有13个,存储控制寄存器的地址从0x48000000到0x48000030,下面分别讨论这些存储控制寄存器的使用方法:
 
1.BWSCON,位宽和等待控制寄存器,地址和各位含义如图3
110508181057.jpguploading.4e448015.gif转存失败重新上传取消 110508181057.jpg
 
               图3 BWSCON地址和各位含义
STx:启动/禁止SDRAM的数据掩码引脚,对于SDRAM,此位为1;对于SRAM,此位为0
WSx:是否使用存储器的WAIT信号,一般设为0
DWx:设置相应BANK的位宽,00对应8位,01对应16位,10对应32位,对于S3C2410,一共使用了2片SDRAM,每片16位,所以两片共同构成的位宽为32为,因此DW6=10。其余BANK没有使用,所以DW1-5可以设置为00。对于EDUKITIII,根据上述讨论,BWSCON寄存器的值为0x22011110
 
2.BANKCONx,x=0~5,BANK控制寄存器,地址及其各位含义如图4
110508174841.jpguploading.4e448015.gif转存失败重新上传取消 110508174841.jpg
               图4 BANKCONx,x=0~5地址及其各位含义
这几个寄存器用来控制BANK0-BANK5外界设备的访问时序,使用默认值0x0700
 
3.BANKCONx,x=6~7,BANK控制寄存器,地址及其各位含义如图5
110508182052.jpguploading.4e448015.gif转存失败重新上传取消 110508182052.jpg
 
            图5 BANKCONx,x=6~7,地址及其各位含义如图5
MT[16:15],设置该BANK外接的是ROM/SRAM(00),还是SDRAM(11)。
当MT=0时,此寄存器的使用与BANCON0-5类似
当MT=11时,
Trcd[3:2],设为推荐值01
SCAN[1:0],SDRAM的列地址数,00=8位,01=9位,10=10位,通过查询HY57V561620硬件手册中的引脚定义,如图6所示
110508174953.jpguploading.4e448015.gif转存失败重新上传取消 110508174953.jpg
 
               图6 HY57V561620引脚定义
可以看到,Column Address:CA0-CA8,所以SDRAM的列地址为9,所以SCAN[1:0]=01,因此EDUKITIII实验箱中BANK6/7均设置为0x00018005
 
4.REFRESH,刷新控制器,地址及其各位含义如图7所示
110508175001.jpguploading.4e448015.gif转存失败重新上传取消 110508175001.jpg
          图7 REFRESH地址及其各位含义
REFEN[23]:0表示禁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值