ioremap_nocache函数说明

来源:互联网 发布:网络优化课程 编辑:程序博客网 时间:2024/05/01 12:13

ioremap_nocache函数说明

NAME

ioremap_nocache - 把内存映射到CPU空间  

SYNOPSIS

void __iomem * ioremap_nocache (unsigned long phys_addr, unsigned long size);  

ARGUMENTS

phys_addr
要映射的物理地址 
size
要映射资源的大小 

DESCRIPTION

ioremap_nocache进行一系列平台相关的操作使得CPU可以通过readb/readw/readl/writeb/writew/writel等IO函数进行访问。
返回的地址不保证可以作为虚拟地址直接访问。 
[译者按:在译者的使用过程种并没有出现不能作为虚拟地址直接访问的情况,可能是某些平台下的不可以吧。译者的使用平台是x86和ixp425]

这个版本的ioremap确保这些内存在CPU是不可缓冲的,如同PCI总线上现存的缓冲规则一样。注:此时在很多总线上仍有其他的缓冲和缓存。在某些特殊的驱动中,作者应当在PCI写的时候进行读取。
这对于一些控制寄存器在这种不希望复合写或者缓冲读的区域内时是非常有用的
返回的映射地址必须使用iounmap来释放。

一直被这个CPU的高速缓冲困扰,好不容易找到这个函数,总算是解决问题了.
用于确保每次数据都写到内存中了