文章目錄
- MMU Table 表分配原理及其代碼實現
- MMU Table 分配代碼實現
MMU Table 表分配原理及其代碼實現
在做映射的時候所映射的地址范圍最大只能是某一級 level table 中 entry 所能支持的最大范圍,如果超過這個范圍需要在對應 level table 中新增一個entry,這里還是以映射虛擬地址0x0000_0000 -- 0x8000_0000
為例,我們知道 Level0 table 中的一個 Entry 指向 512G地址空間,然而0x0000_0000 -- 0x8000_0000
才占用 2G的地址空間,所以在 Level0 table 中只會使用一個 Entry,但是在 Level1 table 中就不一樣了,因為 Level1 table 中的一個 Entry 最大只支持1G的地址空間,所以需要將0x0000_0000 -- 0x8000_0000
地址分配在 Level1 table 中的 2個 Entry 中,如文章【ARM Cache 與 MMU 系列文章 7.7 – ARMv8/v9 MMU Table 表分配原理及其代碼實現 1】 圖 1-1 所示。 其中:
- Entry0 指向
0x000_0000 - 0x3FFF_FFFFF
- Entr