在 ARMv7 VMSA MMU 中,存在 ttbr0 和 ttbr1 指向的两组转换表。ttbr0 或 ttbr1 指向的表将用于转换的虚拟地址范围由“N”字段 TTBCR 寄存器设置。
现在,如果我将此 TTBCR.N 设置为 7,则 ttbr0 处的转换表覆盖的地址范围为 0x00000000 - 0x2000000
所以 0x2000000 之后的第一个地址(即 0x2000004?)将使用 ttbr1 处的转换表进行转换。根据 ARMv7 VMSA 中的短描述符格式,转换表可以具有节 (1MB) 区域和超节 (16MB) 映射区域。
我的问题是如果我在地址位置放置一个超级部分会发生什么,比如 0x1600000。
根据理论,那么 0x1600000 到 0x2600000 范围内的地址将映射到物理地址 0x1600000。(但是,这不起作用,因为转换表本身在 0x2000000 处发生变化?)
那么在这种情况下会发生什么?在这种情况下,ttbr1 的第一个条目应该放什么?