嵌入式系统第七章ARM存储器系统与设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[22] TREFMD 设置SDRAM 的刷新方式 0=自动刷新方式 1=自刷新方式
[21:20] Trp 控制SDRAM 的行周期
00 = 2个时钟周期 01 = 3个时钟周期 个时钟周期 11 = 未定义
10 = 4
[19:18] Tsrc控制SDRAM 的列周期
00 = 4个时钟周期 01 = 5个时钟周期 时钟周期 11 = 7个时钟周期
bMEMCON(0x30)
2.Nand Flash 控制器
S3C2410X支持Nand Flash启动,启动代码存储在Nand Flash上。启动时,Nand Flash的前4KB(OM[1:0]=0,地址 为0x00000000) 将被装载到内部的固定地址中,然后开始 执行其中的启动代码。一般情况下,该启动代码会把Nand Flash中的内容拷贝到SDRAM中去,拷贝完后,主程序将在 SDRAM中执行。操作流程如图2.10所示。
(2)BANKCONn 控制寄存器
BANKCONn 控制寄存器用于控制各组nGCS的时序,各位 定义如下: [14:13] Tacs nGCSn有效前地址的建立时间。 00 = 0 个时钟、01 = 1个时钟、10 = 2个时钟、11 = 4个时钟
[12:11] Tcos nOE有效前芯片选择信号的建立时 间。
10 = 6个
[17:16] 保留位 [15:11] 保留位 [10:0] SDRAM 的刷新计数值。 刷新周期= (211 – 刷新计数值 + 1)/HCLK 例如:如果刷新周期是15.6 us, HCLK 是 60
MHz,则: 刷新计数器的值 = 211 + 1 - 60x15.6 = 1113
13个寄存器。
表2.8 内存控制器
(1)BWSCON 总线宽度控制寄存器
用来控制各组存储器的总线宽度和访问周期,各位定义:
[31] ST7 确定存储器7组对应 UB/LB 端接口,0 = 不使用 UB/LB ,UB/LB端与nWBE[3:0]相连;1 = 使用UB/LB ,UB/LB端与nBE[3:0]相连。
[1:0] 页模式的配置(每次读写周期数) 00 = 1个时钟、01 = 4个时钟、10 = 8个时钟、11
= 16个时钟
当 BANKCON6 和 BANKCON7 中 的 MT=11 时 , BANKCON0 ~ BANKCON5 的 [14:0] 定 义 与 以 上 相 同 。 BANKCON6 和 BANKCON7的[3:0]定义有所变化,具体如 下:
[3:2] Trkd:RAS到CAS的延时。
00 = 2个时钟、01 = 3个时钟、10 = 4个时钟
[1:0] SCAN:列地址数目
00 = 8位、01 = 9位、10 = 10位
(3)REFRESH 刷新控制寄存器
[23] REFEN 刷新使能SDRAM:
0 = 禁止
1 = 使能SDRAM 的刷新
#define BANKCON6bBANKCON(6)
#define BANKCON7 bBANKCON(7)
#define REFRESH
bMEMCON(0x24)
#define BANKSIZEbMEMCON(0x28)
#define MRSRB6
bMEMCON(0x2C)
#define MRSRB7
在 Linux 系 统 的 /include/asm-arm/archs3c2410/S3C2410.h头文件中定义了各寄存器,
其源代码如下:
#define bMEMCON(Nb) __REG(0x48000000 + (Nb))
#define BWSCON
bMEMCON(0)
#define bBANKCON(Nb) bMEMCON((Nb+1)*4)
第7章 ARM的存储器系统及设计
1 存储器系统
S3C2410X支持大、小端模式,将存储空间分成8组(Bank),每组大小是 128MB,共计1GB。
表2.7 6组/7组的存储器映射地址
各引脚功能:
特殊功能寄存器
wk.baidu.com
1.内存控制器(Memory Controller)
内存控制器为访问外部存储空间提供存储器控制信号,共有
00 = 0个时钟、01 = 1个时钟、10 = 2个时钟、11 = 4个时钟
[10:8] Tacc 访问周期
000 = 1个时钟、001 = 2个时钟、010 = 3个时钟、011 = 4个时钟 100 = 6个时钟、101 = 8个时钟、110 =10个时钟、111 =14个时钟
[7:6] Tcoh nOE无效后芯片选择信号的保持时 间。
0 = WAIT disable 1 = WAIT enable
[29:28] DW7 确定存储器7组的数据总线宽度。 00=字节(8位)、01=半字(16位)、10=字(32位)、11=保留。 [25:24] DW6、[21:20] DW5、[17:16] DW4、[13:12] DW3、[9:8] DW2、[5:4] DW1。同上。 [2:1] DW0 确定存储器0组的数据总线宽度,只读位,由OM[1:0] 状态决定。 01=半字(16位)、10=字(32位)。
#define BANKCON0 bBANKCON(0)
#define BANKCON1 bBANKCON(1)
#define BANKCON2 bBANKCON(2)
#define BANKCON3 bBANKCON(3)
#define BANKCON4bBANKCON(4)
#define BANKCON5 bBANKCON(5)
00 = 0个时钟、01 = 1个时钟、10 = 2个时钟、11 = 4个时钟
[5:4] Tcah nGCSn无效后芯片地址信号的保 持时间。
00 = 0个时钟、01 = 1个时钟、10 = 2个时钟、11 = 4个时钟
[3:2] Tacp 页模式的访问周期。
00 = 2个时钟、01 = 3个时钟、10 = 4个时钟、11 = 6个时钟
[27] ST6、[23] ST5、[19] ST4、[15] ST3、[11] ST2、[7] ST1同上,
[30] WS7 确定存储器组7的WAIT状态,0=禁止 WAIT,1=使能 WAIT 。
[26] WS6、[22] WS5、[18] WS4、[14] WS3、 [10] WS2、[6] WS1同上。