,我的意思是例如某个寄存器的地址为0x10042000,那我对它读写是直接用0x10042000,还是用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000,
不知道这样想对不对
9 个解决方案
#1
嘿嘿,自己顶一下,大家帮忙解释一下。
#2
我认为是物理地址的!
“直接用0x10042000或用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000”两种方法都可以用!
“直接用0x10042000或用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000”两种方法都可以用!
#3
cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址
#4
to Reallyu
"cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址"
未打开mmu时使用虚拟地址吧
我也认为是这样
"cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址"
未打开mmu时使用虚拟地址吧
我也认为是这样
#5
不知道这个虚拟地址和物理地址的映射关系表(供mmu使用)是在时候,如何建立的?
#6
3 楼 "cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用“ 物理地址
一般 将 虚拟地址 和 物理地址重叠 也就是让他们相同 这样你可以认为是访问的物理地址, 但要明白那还是一个虚拟地址
一般 将 虚拟地址 和 物理地址重叠 也就是让他们相同 这样你可以认为是访问的物理地址, 但要明白那还是一个虚拟地址
#7
不管MMU是否打开,都是访问的物理地址
#8
,我的意思是例如某个寄存器的地址为0x10042000,那我对它读写是直接用0x10042000,还是用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000,
这里的0x10042000总是物理地址,MMU打开后,由于程序无法直接访问物理地址,才需要MmuMapIoSpace映射到一个逻辑地址,通过返回的逻辑地址进行访问,这个逻辑地址通过MMU转换后还是0x10042000这个物理地址
这里的0x10042000总是物理地址,MMU打开后,由于程序无法直接访问物理地址,才需要MmuMapIoSpace映射到一个逻辑地址,通过返回的逻辑地址进行访问,这个逻辑地址通过MMU转换后还是0x10042000这个物理地址
#9
所有spec datasheet描述的都是物理地址。没有哪个spec会描述虚拟地址,因为根本不知道designer会使用哪种OS,会映射到哪个虚拟地址。
MMU使能之前,都是直接对物理地址操作。MMU使能之后,都是对虚拟地址操作。
地址映射的关系(地址映射表)的建立,是在用PB进行WINCE定制编译的过程中实现的。
地址映射关系(地址映射表)的实现,是在MMU使能的过程中,系统将建立好的映射表加载到MMU中的。
如果对MMU有兴趣,可以找一些文章来看看,很有趣的,绝对是对一些惯性思维的极大改变。这个东西真是个奇迹。
MMU使能之前,都是直接对物理地址操作。MMU使能之后,都是对虚拟地址操作。
地址映射的关系(地址映射表)的建立,是在用PB进行WINCE定制编译的过程中实现的。
地址映射关系(地址映射表)的实现,是在MMU使能的过程中,系统将建立好的映射表加载到MMU中的。
如果对MMU有兴趣,可以找一些文章来看看,很有趣的,绝对是对一些惯性思维的极大改变。这个东西真是个奇迹。
#1
嘿嘿,自己顶一下,大家帮忙解释一下。
#2
我认为是物理地址的!
“直接用0x10042000或用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000”两种方法都可以用!
“直接用0x10042000或用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000”两种方法都可以用!
#3
cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址
#4
to Reallyu
"cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址"
未打开mmu时使用虚拟地址吧
我也认为是这样
"cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用虚拟地址"
未打开mmu时使用虚拟地址吧
我也认为是这样
#5
不知道这个虚拟地址和物理地址的映射关系表(供mmu使用)是在时候,如何建立的?
#6
3 楼 "cpu 手册上描述的是物理地址,在打开mmu的情况下访问寄存器要使用虚拟地址.未打开mmu时使用“ 物理地址
一般 将 虚拟地址 和 物理地址重叠 也就是让他们相同 这样你可以认为是访问的物理地址, 但要明白那还是一个虚拟地址
一般 将 虚拟地址 和 物理地址重叠 也就是让他们相同 这样你可以认为是访问的物理地址, 但要明白那还是一个虚拟地址
#7
不管MMU是否打开,都是访问的物理地址
#8
,我的意思是例如某个寄存器的地址为0x10042000,那我对它读写是直接用0x10042000,还是用相应的虚拟地址,然后mmu再将这个虚拟地址转成0x10042000,
这里的0x10042000总是物理地址,MMU打开后,由于程序无法直接访问物理地址,才需要MmuMapIoSpace映射到一个逻辑地址,通过返回的逻辑地址进行访问,这个逻辑地址通过MMU转换后还是0x10042000这个物理地址
这里的0x10042000总是物理地址,MMU打开后,由于程序无法直接访问物理地址,才需要MmuMapIoSpace映射到一个逻辑地址,通过返回的逻辑地址进行访问,这个逻辑地址通过MMU转换后还是0x10042000这个物理地址
#9
所有spec datasheet描述的都是物理地址。没有哪个spec会描述虚拟地址,因为根本不知道designer会使用哪种OS,会映射到哪个虚拟地址。
MMU使能之前,都是直接对物理地址操作。MMU使能之后,都是对虚拟地址操作。
地址映射的关系(地址映射表)的建立,是在用PB进行WINCE定制编译的过程中实现的。
地址映射关系(地址映射表)的实现,是在MMU使能的过程中,系统将建立好的映射表加载到MMU中的。
如果对MMU有兴趣,可以找一些文章来看看,很有趣的,绝对是对一些惯性思维的极大改变。这个东西真是个奇迹。
MMU使能之前,都是直接对物理地址操作。MMU使能之后,都是对虚拟地址操作。
地址映射的关系(地址映射表)的建立,是在用PB进行WINCE定制编译的过程中实现的。
地址映射关系(地址映射表)的实现,是在MMU使能的过程中,系统将建立好的映射表加载到MMU中的。
如果对MMU有兴趣,可以找一些文章来看看,很有趣的,绝对是对一些惯性思维的极大改变。这个东西真是个奇迹。