寄存器描述中的地址是物理地址还是虚拟地址(对mmu来说)

时间:2021-06-19 01:06:21
问大家一个基本问题,一般在一款处理器芯片的资料中,会看到的各种io口的寄存器描述,那寄存器描述中的地址是物理地址还是虚拟地址(对mmu来说)

,我的意思是例如某个寄存器的地址为0x10042000,那我对它读写是直接用0x10042000,还是用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000,

不知道这样想对不对

9 个解决方案

#1


嘿嘿,自己顶一下,大家帮忙解释一下。

#2


我认为是物理地址的!
“直接用0x10042000或用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000”两种方法都可以用!

#3


cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址

#4


to Reallyu

"cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址"


未打开mmu时使用虚拟地址吧


我也认为是这样

#5


不知道这个虚拟地址和物理地址的映射关系表(供mmu使用)是在时候,如何建立的?

#6


3 楼  "cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用“   物理地址

一般 将 虚拟地址 和 物理地址重叠 也就是让他们相同  这样你可以认为是访问的物理地址, 但要明白那还是一个虚拟地址

#7


不管MMU是否打开,都是访问的物理地址

#8


,我的意思是例如某个寄存器的地址为0x10042000,那我对它读写是直接用0x10042000,还是用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000, 

这里的0x10042000总是物理地址,MMU打开后,由于程序无法直接访问物理地址,才需要MmuMapIoSpace映射到一个逻辑地址,通过返回的逻辑地址进行访问,这个逻辑地址通过MMU转换后还是0x10042000这个物理地址

#9


所有spec datasheet描述的都是物理地址。没有哪个spec会描述虚拟地址,因为根本不知道designer会使用哪种OS,会映射到哪个虚拟地址。

MMU使能之前,都是直接对物理地址操作。MMU使能之后,都是对虚拟地址操作。

地址映射的关系(地址映射表)的建立,是在用PB进行WINCE定制编译的过程中实现的。
地址映射关系(地址映射表)的实现,是在MMU使能的过程中,系统将建立好的映射表加载到MMU中的。

如果对MMU有兴趣,可以找一些文章来看看,很有趣的,绝对是对一些惯性思维的极大改变。这个东西真是个奇迹。

#1


嘿嘿,自己顶一下,大家帮忙解释一下。

#2


我认为是物理地址的!
“直接用0x10042000或用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000”两种方法都可以用!

#3


cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址

#4


to Reallyu

"cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址"


未打开mmu时使用虚拟地址吧


我也认为是这样

#5


不知道这个虚拟地址和物理地址的映射关系表(供mmu使用)是在时候,如何建立的?

#6


3 楼  "cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用“   物理地址

一般 将 虚拟地址 和 物理地址重叠 也就是让他们相同  这样你可以认为是访问的物理地址, 但要明白那还是一个虚拟地址

#7


不管MMU是否打开,都是访问的物理地址

#8


,我的意思是例如某个寄存器的地址为0x10042000,那我对它读写是直接用0x10042000,还是用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000, 

这里的0x10042000总是物理地址,MMU打开后,由于程序无法直接访问物理地址,才需要MmuMapIoSpace映射到一个逻辑地址,通过返回的逻辑地址进行访问,这个逻辑地址通过MMU转换后还是0x10042000这个物理地址

#9


所有spec datasheet描述的都是物理地址。没有哪个spec会描述虚拟地址,因为根本不知道designer会使用哪种OS,会映射到哪个虚拟地址。

MMU使能之前,都是直接对物理地址操作。MMU使能之后,都是对虚拟地址操作。

地址映射的关系(地址映射表)的建立,是在用PB进行WINCE定制编译的过程中实现的。
地址映射关系(地址映射表)的实现,是在MMU使能的过程中,系统将建立好的映射表加载到MMU中的。

如果对MMU有兴趣,可以找一些文章来看看,很有趣的,绝对是对一些惯性思维的极大改变。这个东西真是个奇迹。