打印

关于物理地址与虚拟地址的理解 求教

[复制链接]
1123|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinc_mark|  楼主 | 2014-4-14 15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个MCU的pdf文档,其中有一些内部模块的地址说明,类似如下:
address                              acronym              Register Descrition
0x01e2 7000h                    REVID                 .......
设备本身就只有128MB的内存,按我的理解,这个应该是虚拟地址,因为设备端没有这么大的物理地址来,不知道我这样理解是正确的吗?请指教!

相关帖子

沙发
sinc_mark|  楼主 | 2014-4-14 15:05 | 只看该作者
自己百度过,说物理地址就应该是芯片内部的总线的实际链接相对应,按这个说法,这个像是物理地址,但由于设备只有128MB的ROM ,64MB的RAM,现在很迷惑!求指导!

使用特权

评论回复
板凳
jplzl| | 2014-4-14 15:30 | 只看该作者
sinc_mark 发表于 2014-4-14 15:05
自己百度过,说物理地址就应该是芯片内部的总线的实际链接相对应,按这个说法,这个像是物理地址,但由于设 ...

内部ROM只有128M,并不影响内部模块的地址大于128M呀,如果是32BIT的MCU,一般都可以最大寻址4G的
能访问的最大地址数和地址总线的宽度相关咯
再找找其他地方,应该有整个MEMORY MAP的说明的,包括ROM,RAM,外设地址等

使用特权

评论回复
地板
sinc_mark|  楼主 | 2014-4-14 15:53 | 只看该作者
jplzl 发表于 2014-4-14 15:30
内部ROM只有128M,并不影响内部模块的地址大于128M呀,如果是32BIT的MCU,一般都可以最大寻址4G的
能访问 ...

IC本身有MMU,是可以模拟4G的内存空间的,所以我才会想这个地址是虚拟地址,并且设备本身只有64MB的RAM..现在对物理地址和虚拟地址真的有点混了。。

使用特权

评论回复
5
jplzl| | 2014-4-14 16:08 | 只看该作者
sinc_mark 发表于 2014-4-14 15:53
IC本身有MMU,是可以模拟4G的内存空间的,所以我才会想这个地址是虚拟地址,并且设备本身只有64MB的RAM.. ...

这样说吧,地址大小和芯片的ROM,RAM大小在数量上是没有关系的
通常ROM或RAM地址范围只是MCU可访问地址范围内的一段而已
假设你这个MCU为一个ARM9吧,实际可访问地址就为4G
但实际上芯片制造商不会把这4G地址都用完
很可能的用法是:
起始的1M以内吧,用作ROM/RAM的映射,但实际的RAM可能只有32K
然后在4G的高处,也就是0xFFFF FFFF向下,分配个256M用于MCU的外设地址


物理地址:实际地址线能访问的
虚拟地址:物理地址经MMU转换后得到的地址

在上述假设中,写出来的地址都是物理地址,关闭MMU功能时,都可以直接用这个地址值访问相关寄存器
在开了MMU功能时,可根据MMU的设置,把这个RAM地址映射到一个地址,假如:
0x0000 0000 -> 0x0001 0000 MMU-REMAP
那,这个0x0000 0000是物理地址,在开启MMU后,再访问这个地址不是正确的
这个0x0001 0000是虚拟地址,开启MMU后,访问这个地址,即是访问物理地址0x0000 0000

使用特权

评论回复
6
lr2131| | 2014-4-15 10:45 | 只看该作者
不知道是不是有MMU

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:教育,就是把娃围起来,一期一期的收钱。 医疗,就是把命围起来,一天一天的收钱。

47

主题

301

帖子

0

粉丝