ioremap_nocache函数
注解ioremap_nocache
void __iomem * ioremap_nocache (unsigned long phys_addr, unsigned long size);
调用ioremap_nocache()函数之后,返回一个线性地址,此时CPU 可以访问设备的内存(已经将其映射到了线性地址空间中了),此时CPU可以使用访问内存的指令访问设备的内存空间(host bridge 判断访问物理内存还是设备中的内存),此时我们就可以像访问内存一样来访问设备的内存(寄存器)。
ioremap是为一段高端的物理内存建立映射(即增加相关的页表内容),驱动常用
mmap是为可能不连续的一系列逻辑上相关的(如整体是一个文件)物理内存段建立映射,
并呈现一个连续的虚拟地址空间,应用程序常用
mmap是系统调用,只能应用程序用。
ioremap是kernel提供的函数,只能在kernel里用