存储器映射存储器映射
S3C6410 支持 32 位物理地址域,并且这些地址域分成两部分,一部分用于存储,另一部分用于外设。
2.1 存储器系统模块图
通过 SPINE总线访问主存,主存的地址范围是0x0000_0000~0x6FFF_FFFF。主存部分分成四个区域:
引导镜像区、内部存储区、静态存储区和动态存储区。
引导镜像区的地址范围是从 0x0000_0000~0x07FF_FFFF,但是没有实际的映射内存。引导镜像区反映
一个镜像,这个镜像指向内存的一部分区域或者静态存储区。引导镜像的开始地址是0x0000_0000。
内部存储区用于启动代码访问内部 ROM 和内部 SRAM,也被称做 Steppingstone。每块内部存储器的
起始地址是确定的。内部ROM 的地址范围是 0x0800_0000~0x0BFF_FFFF,但是实际存储仅 32KB。该区域
是只读的,并且当内部 ROM 启动被选择时,该区域能映射到引导镜像区。内部 SRAM 的地址范围是
0x0C00_0000~0x0FFF_FFFF,但是实际存储仅4KB。该区域能被读和写,当NAND 闪存启动被选择时能映射
到引导镜像区。
静态存储区的地址范围是0x1000_0000~0x3FFF_FFFF。通过该地址区域能访问SROM、SRAM、 NOR Flash、
同步NOR接口设备、和Steppingstone。每一块区域代表一个芯片选择,例如,地址范围从0x1000_0000~
0x17FF_FFFF代表Xm0CSn[0]。每一个芯片选择的开始地址是固定的。NAND Flash和CF/ATAPI不能通过静态
存储区访问,因此任何Xm0CSn[5:2]映射到NFCON 或 CFCON,相关地址区域应当被访问。一个例外,如果
Xm0CSn[2]用于NAND Flash,Steppingstone映射到存取区从0x2000_0000~27FF_FFFF。
动态存储区的地址范围是0x4000_0000~0x6FFF_FFFF。DMC0有权使用地址0x4000_0000~
0x4FFF_FFFF,并且DMC1有权使用地址0x5000_0000~0x6FFF_FFFF。对于每一块芯片选择的起始地址是可
以进行配置的。
外设区域通过 PERI 总线被访问,它的地址范围是0x7000_0000~0x7FFF_FFFF。这个地址范围的所有
的 SFR能被访问。而且如果数据需要从NFCON或 CFCON 传输,这些数据需要通过PERI总线传输。
存储器系统模块的地址映射图,如图2-1所示。
图 2-1 地址映射