首页 > 代码库 > S3C6410 Memory Map & ARM 指令集 笔记
S3C6410 Memory Map & ARM 指令集 笔记
Memory Map & 指令集
上面这幅图表明了 Main memory 物理地址空间和各个控制器之间的关系, 例如,0x 0000 0000 ~ 0x07FF FFFF之间的地址空间属于Int.ROM控制器 SROM控制器 和One NAND控制器寻址的空间,其余的以此类推.具体的细节和内存子系统有关系.
图中标注有2的方框表示这个地址空间既能SROM控制器或OneNAND 控制器,至于具体给谁,这取决于系统控制器
6410 支持 32-bit 的物理地址空间,这部分地址空间可以被划分为两个部分. 一部分给内存,另一部分用于外围端口.
Main memory 通过SPINE bus 寻址, 它的地址空间范围从 0x0000_0000 到 0x6FFF_FFFF.
Main memory 的部分又被划分为 四个部分,
- boot image area
- internal memory area
- static memory area
- dynamic memory area.
Boot image area 的地址空间从 0x0000_0000 到 0x07FF_FFFF,这里其实没有真实的映射过的内存。
Boot image area 有mirrored image 这个指向一个在internal memory的特殊区域或者是静态内存中的一部分区域
boot image的起始地址被固定到 0x0000_0000.
Internal memory area 被用来给boot loader访问 internal ROM 和 internal SRAM , 也被称作 Steppingstone. Start address 对于任何 internal memory 都是固定的. internal ROM 的地址空间从0x0800_0000 到 x0BFF_FFFF, 但真实的储存空间仅仅 32KB. 这部分区域是 read-only的, 并且当 interlnal ROM booting 被选中的时候,能映射到 boot image area. internal SRAM 的寻址空间是从0x0C00_0000 到 0x0FFF_FFFF, 但实际上只有 4KB.
Static memory area的寻址空间是从 0x1000_0000 到 0x3FFF_FFFF. SROM, SRAM, NOR Flash, asyncronous NOR interface device, OneNAND Flash, and Steppingstone 能利用这个地址空间寻址.
Each area stands for a chip select, for example, address range from 0x1000_0000 to 0x17FF_FFFF stands for Xm0CSn[0]. Start address for each chip select is fixed. NAND Flash and CF/ATA cannot be accessed via static
memory area, so if any of Xm0CSn[5:2] is mapped to NFCON or CFCON, related address region should not be
accessed. One exception is that if Xm0CSn[2] is used for NAND Flash, Steppingstone is mirrored to address
region from 0x2000_0000 to 27FF_FFFF.
Dynamic memory area 的寻址空间是从 0x4000_0000 到 0x6FFF_FFFF. DMC1 有权使用地址空间从 0x5000_0000 到 0x6FFF_FFFF. Start address for each chip select is configurable.
Pheripheral 通过 PERI bus 寻址, 它的地址空间范围是从 0x7000_0000 到 0x7FFF_FFFF. 所有的 SFRs 均能寻址这段地址空间. 同样,如果数据需要从NFCON 或 CFCON获取,将通过PERI bus传输.
ARM支持两种指令集 —— ARM指令集和Thumb 指令集。其中ARM指令为32位长度,Thumb指令长度为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码比较,可以节省30%~40%的储存空间,同时具备32位代码的特点.
533MHz at 1.1V and 667MHz at 1.2 V respectively. S3C6410的主频最高可以是667Mhz
ARM 指令集
S3C6410 Memory Map & ARM 指令集 笔记