设为首页 加入收藏

TOP

OK6410,MMU,内存管理 杂谈(二)
2016-12-12 08:15:31 】 浏览:378
Tags:OK6410 MMU 内存 管理 杂谈
64M物理地址上去。这样,即使使用虚拟地址去取ddr中数据,也是能够取到的。


  因为一个段是映射的1MB空间,所以总共需要64个段,十六进制也就是0x40。所以在while里面判断是虚拟地址要小于0x54000000。再者,每一个段表示1MB空间,所以虚拟地址和物理地都要加1MB。也就是0x100000。


  这样,就将页表给建立好了。如果还需要使用其他地址区域,就都得为这些区域建立映射表。


1.6.3开启mmu


  TTB是很重要的,保存的是一级页表的首地址。首先就应该先要设置这个TTB。往CP15的C2寄存器里面写入这个值就好了,因为这个寄存器就是保存的TTB。


  然后是设置域的权限,将域的权限设置为11,不进行访问权限检查。设置CP15的c3寄存器。


  最后打开MMU。设置CP15的c1寄存器组的c0。是对CP15进行操作,用C语言是实现不了的,使用嵌入汇编。


  


  就设置好了MMU,并打开了MMU。之后使用的地址都是虚拟地址了。而且该虚拟地址必须是要在页表中建立的,不然的话,就会产生异常。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇内存管理单元MMU(memory managem.. 下一篇Java 对象流的简单使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目