S3C6410 存储器映射
1 存储系统块图
注解)6410X PoP A类型的不支持NAND Flash。所以此时我们可以忽略掉NAND Flash控制器这一列。6410X PoP D类型的不支持OneNANF Flash控制器,此时可以忽略OneNAND Flash控制器这一列,这样就不会冲突了。
表格中还有上脚标为1和2的符号,他们的含义分为别:
上脚标1代表在这个地方的内容在存储子系统这一节中有详细说明。
上脚标2代表这个地址可以同时被映射到SROM控制器和OneNAND控制器。详细的信息也在存储子系统这一节中介绍。
我们可以通过SPINE总线来访问主要存储区域,它的地址范围是0x0000_0000~0x6FFF_FFFF.这个主要的存储区域被分为四个区域:引导镜像区、内部存储区/静态存储区和动态存储区。
引导镜像区的地址范围是0x0000_0000~0x7FFF_FFFF,但是这里没有实际映射的存储。引导镜像区在内部存储区或者是内部镜像区中有一个镜像区域。引导镜像的地址固定为0x0000_0000.
内部存储区用来访问内部ROM和用于boot loader的内部SRAM这两个区域的。其中,用于boot loader的内部SRAM区域也被称作Steppingstone。每一个内部存储区的起始地址都是固定的。内部ROM的地址范围是0x0800_0000~0x0BFF_FFFF,但是实际的存储大小只有32KB。这个区域是只读的,并且当选择内部ROM启动方式时,这个区域可以被映射到引导镜像区。内部SRAM的地址范围是0x0C00_0000~0x0FFF_FFFF,但是实际的存储大小只有4KB。
静态存储区的地址范围是0x1000_0000~0x3FFF_FFFF.我们可以通过这个地址访问到:SROM、SRAM、NOR Flash、异步NOR接口的设备、OneNAND Flash和Steppingstone。每一个区域都代表一个芯片被选择,例如:地址0x1000_0000~0x17FF_FFFF代表Xm0CSN[0].每一个被选择的芯片的起始地址都是固定的。我们不能通过静态存储区来访问NAND Flash和 CF/ATA,因此,如果任何的Xm0CSn[5:2]被映射到了NFCON或者CFCON,相关的地址区域是不能被访问到的。但是有一个例外,那就是当Xm0CSn[2]用于NAND Flash时,Steppingstone就镜像到了区域0x2000_0000~0x27FF_FFFF.
动态存储区域的范围是0x4000_0000~0x6FFF_FFFF.DMC1有权利使用0x5000_0000~0x6FFF_FFFF这个地址范围。每一个被选择的芯片的起始地址都是可以配置的。
我们可以通过PERI这个总线来访问外设,它的地址范围是0x7000_0000~0x7FFF_FFFF.所有的SFRs都可以通过这个地址范围访问到。当然,如果我们需要从NFCON或者是CFCON来传输数据,那么这些数据也必须通过PERI总线来传输。