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