内存初始化
电容的分类:
DRAM:基本原件是电容,需要定时刷新,存储速度较慢
DRAM又分为:SRAM(同步动态随机存储器synchronous dynamic random access memory)
DDR(双倍速率同步动态随机存储器double data rate sdram)
DDR2(在ddr的基础上改进)
SRAM:是一种静止存取功能的内存,不需要定时刷新,存储速度快,缺点是功耗大,成本高,常用作存储容量不高但是存储速度较快的地方(stepping stone:垫脚石)
内存的内部结构是一个如同一个数据表格,称为结构表
一般一个内存单元中会被 划分为4个 L-BANK
2440中有27根地址线,可以寻址128M的空间。
2440中将bank7和bank6做内存总共64M的内存空间
为了寻址更大的空间,2440提供了片选信号,总共有8 个管脚提供8个片选信号
内存初始化:(CPU对内存的访问时通过存储控制间接访问的)
BWSCON:0X48000000(设置外接存储器的总线宽度和等待状态)
总共32位,分成8组,每组4位,分别控制8个bank
STX:
0:没有用UB/LB
1:用UB/B
注意:UB/LB pin脚,用来分别访问数据的高低字节
WSX:
总线等待使能,一般是不让其等待的
DWX:
数据线宽度
BANKCONn:总共是有6个,其控制字不变,保持其默认值ox00000700
BANKCON6:(需要分别设置,16位)
BANKCON7:(需要分别设置,16位)
MT[16:15]:决定存储器类型
Trcd[3:2]:决定是行列信号的转化时间,芯片手册的时序图是两个时钟周期
SCAN[1:0]:决定列的数量,查看内存手册是9
REFRESH:0x48000024(23位):
REFEN[23]:决定存储器是否刷新,1=刷新
TREFMD[22]:决定存储器刷新模式,0=自动刷新
Trp[21:20]:决定列刷新频率, 根据内存手册时序逻辑图,00=两个时钟周期
Tsrc[19:18]:决定行刷新频率,11=7个时钟周期
Refresh Counter[10:0] :决定SDRAM刷新的时间(这里和前面的列和行刷新不一样),根据计计算公式 取十进制数1269
BANKSIZE:0X48000028(8位):
BURST_EN[7]:使能ARM内核突发模式,一次处理器可以批量的访问内存数据,1=使用
SCKE_EN[5]:是否使用节电模式,1=使用
SCLK_EN[4]:串行时钟使用时启动,1=使用
BK76MAP[2:0]:定义内存大小,000=32/32
注意:2440的内存初始化总共需要初始化13个控制寄存器
MRSB6/7:0X4800002C/0X48000030:内存模式(12位)
CL[6:4]:CAS latency 固定内存寻址存储持续时间,跟在列/行寻址后持续的时间,011=查看芯片手册时序时间表。
6410存储器空间:
32位地址线,最大寻址4G内存空间,一般高2G空间是,低2G 空间。
其中低2G存储空间是又被分为:
外设存储空间和主存储空间
主存储空间又被分为:
动态存储区
保留区
内部存储区
镜像存储区
静态存储区
总结:无论是时钟初始化的寄存器,还是内存初始化的寄存器,其寄存器的地址空间都是处于内存中的外设区