Chinaunix首页 | 论坛 | 博客
  • 博客访问: 343760
  • 博文数量: 96
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 152
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-02 09:27
文章分类

全部博文(96)

文章存档

2017年(2)

2016年(30)

2015年(38)

2014年(25)

2013年(1)

我的朋友

分类: LINUX

2015-12-02 16:18:56

原文地址: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的高速缓冲困扰,好不容易找到这个函数,总算是解决问题了.
用于确保每次数据都写到内存中了

 
阅读(1983) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~