ARM的MMU--类比地址问题
2014-05-22 11:48
78 查看
1. 地址空间:虚拟地址VA,转换后地址(线性地址)MVA,物理地址PA。
2. VA -> MVA是硬件自动完成,参见《手册》MMU部分,具体硬件应该是ARM CPU内部硬件,这个后面找到ARM CPU结构图了才好说。MVA -> PA是通过MMU了,这里可以设置。
注意这里只有低32MB才需要转换,这样做可能是考虑进程使用32MB空间的情况比较多吧。
3. VA是ARM CPU地址线发出的地址,通过《手册》所示的硬件转换成MVA,通过总线(参考OCP bus)发给MMU。MMU将MVA转换为PA之后发给挂在MMU下面的设备(如FLASH、DRAM、EEPROM)。
4. 难道有设备不在MMU管理之下吗?至少我的板子有,一般是低速外设(挂在LX bus,而LX bus又是OCP bus分频出来的),典型的如UART。
5. MMU部分code分析要点:
·看LDS文件可以看到编译时候的load view= exec view;烧写到flash中的基地址由链接器给出。由于ARM上电PC=0,所以BASE地址为0,包含了head.o和init.o。在start.s中有函数copy_2th_to_sdram用于code搬运。
·注意直到load pc之前全部是在flash中。
·LDS文件看出:first段load/exec都在地址0,其中load是指在生成的image中存在的位置,exec是编译过程中符号地址base为0;second段load在2048B处,这是在image中的位置,当然也可以顺着first放下去,但是这样二阶段搬运code的时候的地址就不好计算了,exec地址=0xB0004000这个是符号base地址。当然这里符号base在0xB0004000是想运行时候在内存的这个位置,但是能不能到这个位置还是要看搬运code如何做了。
2. VA -> MVA是硬件自动完成,参见《手册》MMU部分,具体硬件应该是ARM CPU内部硬件,这个后面找到ARM CPU结构图了才好说。MVA -> PA是通过MMU了,这里可以设置。
注意这里只有低32MB才需要转换,这样做可能是考虑进程使用32MB空间的情况比较多吧。
3. VA是ARM CPU地址线发出的地址,通过《手册》所示的硬件转换成MVA,通过总线(参考OCP bus)发给MMU。MMU将MVA转换为PA之后发给挂在MMU下面的设备(如FLASH、DRAM、EEPROM)。
4. 难道有设备不在MMU管理之下吗?至少我的板子有,一般是低速外设(挂在LX bus,而LX bus又是OCP bus分频出来的),典型的如UART。
5. MMU部分code分析要点:
·看LDS文件可以看到编译时候的load view= exec view;烧写到flash中的基地址由链接器给出。由于ARM上电PC=0,所以BASE地址为0,包含了head.o和init.o。在start.s中有函数copy_2th_to_sdram用于code搬运。
·注意直到load pc之前全部是在flash中。
·LDS文件看出:first段load/exec都在地址0,其中load是指在生成的image中存在的位置,exec是编译过程中符号地址base为0;second段load在2048B处,这是在image中的位置,当然也可以顺着first放下去,但是这样二阶段搬运code的时候的地址就不好计算了,exec地址=0xB0004000这个是符号base地址。当然这里符号base在0xB0004000是想运行时候在内存的这个位置,但是能不能到这个位置还是要看搬运code如何做了。
相关文章推荐
- ARM920T MMU and Cache ——PART1 虚拟地址和物理地址的概念
- ARM的I/O访问问题 (DCache使能、MMU未使能问题)
- ARM中MMU地址转换理解
- (亚嵌)ARM920T的MMU与Cache之虚拟地址和物理地址的概念
- 【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题
- 【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题
- ARM的I/O访问问题 (DCache使能、MMU未使能问题)
- ARM Uboot经历——Uboot地址问题
- arm mmu地址重映射
- 【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题
- ARMv6 架构下MMU虚拟地址到物理地址二级映射过程
- ARM中MMU地址转换理解
- ARM中MMU地址转换理解
- ARM平台的地址对齐问题
- 【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题
- arm的MMU详解(虚拟地址)
- 5、ARM中MMU地址转换理解
- ARM中MMU之地址转换
- X86,ARM的虚拟地址转换.什么是MMU,MMU的作用
- X86,ARM的虚拟地址转换.什么是MMU,MMU的作用