初学ARM,对页表的概念理解不好,想请教下:
页表的作用是将MVA转换成Physical Address。
我的疑问是:
1. MVA是在程序中所用到的地址么?如标号。
这样编程时就不用关心具体的Physical Address,只要在初始化时,编制好页表,解释出一定的映射关系就可以了吧?
2. 一级页表的基地址是Physical Address么?
3. 对于一级页表的建立:
比如我想把MVA的0x0映射到Physical Address的0x2400 0000,映射空间大小为1MB,如下操作正确么?
将(一级页表基地址)写入CP15->C2
LDR $desc,=(MMU_STD_ACCESS + MMU_C + MMU_B)
LDR $indx,=0x2400 0000
ORR $indx,$indx,$desc
LDR $base,=(一级页表基地址)
STR $indx,[$base],#4
|