标题:
ARM存储器的地址映射
[打印本页]
作者:
m1_ljp
时间:
2013-3-15 14:51
标题:
ARM存储器的地址映射
以下基于
S3C4510B
嵌入式系统
S3C4510B
嵌入式系统中,系统复位后存储器的地址空间为
0x000 0000
至
0x3FF FFFF
的范围,其中
0x000 0000
至
0x010 0000
共
4MB
的空间为可直接访问区域(对应
ROM
的
Bank0
),即初始化代码可以烧写在这个范围内。
0x200 0000
~
0x3FF 0000
为未定义区域,需要初始化代码来定义。
0x3FF 0000
~
0x3FF FFFF
的空间为特殊功能寄存器的地址范围,特殊功能寄存器包括系统管理器、以太网控制器、
HDLC
通道控制器、
I/O
口控制器、中断控制器等等。
图1
系统复位时的存储器映射
下一步的任务就是在初始化代码中,通过配置系统管理寄存器的值来激活整个存储器空间。
特殊功能寄存器地址范围的起点,即
0x3FF 0000
地址处为
SYSCFG
寄存器,该寄存器的值在系统加电或复位时被初使化为
0x3FF0000
,我们也可通过配置寄存器的值,将特殊功能寄存器组的起始地址设定在
64MB
地址空间的任意位置。其它特殊功能寄存器的实际物理地址为特殊功能寄存器组的起始地址加上该寄存器的偏移地址。例如,系统复位时特殊功能寄存器组的起始地址初始化为
0x3FF0000
,特殊功能寄存器
ROMCON
的偏移地址为
0x3014
,因此,
ROMCON
的物理地址是:
0x3FF0000
+
0x3014
=
0x3FF3014
如果用户重新设定特殊功能寄存器组的起始地址为
0x3000000
,则
ROMCON
新的物理地址是
0x3003014
。在大多数情况下,并不需要去重新设置特殊功能寄存器组的起始地址,而直接使用其初始化值
0x3FF0000
。设置
ROM
或
DRAM
组的起始地址可以通过相应的寄存器加以配置。配置后如下图所示
图2
S3C4510B系统存储器映射
其中需要注意的是内部SRAM作为cache用。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0