MMU(MemoryManage Unit),就是内存管理单元。
MMU 主要完成的功能如下:
1)、完成地址映射,虚拟空间到物理空间的映射。
2)、内存保护,设置存储器的访问权限,设置虚拟存储空间的缓冲特性。
一、地址映射
地址映射是虚拟空间到物理空间的映射。地址分为虚拟地址(VA,Virtual Address)、物理地址(PA,Physcical Address)。
一般32 位的处理器来说,虚拟地址VA范围是 2^32=4GB,假设板子的内存 DDR3或者DDR4的size为512MB,512MB 的内存就是物理内存范围,经过 MMU 可以将其映射到整个 4GB 的虚拟空间,如图 下图所示
二、地址映射转换函数
涉及到了物理内存和虚拟内存之间的转换,需要用到两个函数:ioremap 和 iounmap。
2.1 ioremap 函数
ioremap 函 数 用 于 获 取 指 定 物 理 地 址 空 间 对 应 的 虚 拟 地 址 空 间 , 定 义 在arch/arm/include/asm/io.h 文件中,定义如下:
#define