ARM中mmu的映射原理與配置步驟

在mmu啓動之前;

    1.將ttb放置在cp15的c2的高18位

    2.在虛擬地址映射表基地址位置構建一級頁表:ttb的開始的16K字節空間,可分2^16=4096個映射描述符(我的理解是有四種不同的映射,可分4096個映射方式)

    注:構建一級頁表是對所選的映射進行設置,配置domain ap 等;

有關mmu的轉換過程:(我的理解)

       1 虛擬地址中的前12位地址他可以反映本次描述符在一級頁表中的索引(即ttb+前12位地址)

       2 對於頁映射 一級頁表的前12位存放二級頁表的基址,二級頁表中的相對應的描述有虛擬地址中的

  12-19位(即二級頁表的基址+虛擬地址中的對應的二級頁表的索引)

      對於段映射前12位是物理基址,後20位是一次映射的大小,也就是偏移量

       3 若要映射比1M(偏移量)大的數據,則要進行多次映射,一次1M;

         比如映射64M的數據,一次映射1M,則程序可以是:

           vaddr=0xb0000000 //虛擬地址

           paddr = 0x30000000; //物理地址

            while(vaddr<=0xb3e00000)

                {

                   *(ttb+(vaddr<<20))=(paddr&0xfff00000)|mmu_secdsc;

                   vaddr+= 100000;

                    paddr+= 100000;

                }

發佈了24 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章