免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 12199 | 回复: 3
打印 上一主题 下一主题

请教ioremap与mmap的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-14 20:38 |只看该作者 |倒序浏览
看书中讲ioremap是将物理地址转换为虚拟地址??这里的虚拟地址是相对应与内核的??

mmap是将设备内存线性地址映射到用户地址空间??

而且在ldd3中用户虚拟地址,物理地址,内核逻辑地址,内核虚拟地址??

按照ldd3 来讲就是内存页应该放在高端内存 是否就是内核的虚拟地址??

很是疑惑,求高人指点迷津!!

论坛徽章:
0
2 [报告]
发表于 2013-08-15 11:10 |只看该作者
你不是已经说了区别
ioremap是将物理地址转换为虚拟地址

mmap是将设备内存线性地址映射到用户地址空间

linux的线程只能访问虚拟地址,不管是不是内核,ioremap应用,比如有个寄存器地址是0xe8000000
你要用ioremap映射后,才能访问地址0xe8000000。这两个地址是不同的,mmu会帮你搞定,对你是透明的

mmap在内核我用过ops中的mmap方法
我写过一个例程,见附件。里面还有用户态的测试程序。

有什么问题,可以加入我们群,问题会更快得到回复!
群号:163617970

kmalloc_map.rar

4.65 KB, 下载次数: 143

论坛徽章:
0
3 [报告]
发表于 2013-08-16 23:22 |只看该作者
以下由韦老师提供的说明

韦老师我想问下 ioremap 和 mmap有什么区别

  深圳韦东山个体(xxx) 22:58:44
   ioremap得到的内存,在读写数据时不会存在CACHE里,直达硬件

你意思mmap就是多了启用缓冲 是由mmc处理的

  对于ARM来说,IO和MEM是统一编址的
  唯一差别就是CACHE

  mmap是给应用程序提供映射地址的

论坛徽章:
0
4 [报告]
发表于 2015-06-04 23:15 |只看该作者
回复 2# wwxxxxll
请问mmap是将内核空间虚拟地址映射成用户空间虚拟地址 还是 直接将物理地址映射成用户空间虚拟地址?

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP