Mmap系统调用:

Mmap函数是内存映射函数,负责把文件内容映射到进程的虚拟内存空间,通过对这段内存的读取和修改,来实现堆文件的读取和修改,而不需要再调用read,write等操作。

原型如下:

其参数含义如下:

有映射函数就有解除映射函数,munmap就是解除映射的函数:

注意:直接映射过来的区间虽然用字符型形式表示,但是不一定包含‘\0’,所以使用字符型拷贝函数的时候要慎重。最好用内存拷贝函数。

Mmap设备操作:

而mmap设备操作时如何建立页表的呢?主要有以下几种方法:

Remap_pfn_range函数的原型及参数如下:

所以mmap和poll设备方法一样,实现比较单一,大部分的活都被linux做了,一次标准的调用如下:

申请io内存:

存在着内存空间和io空间的概念:

他们的关系如下图所示:

由此可以引出io端口和io内存的概念:

由于io空间是x86的概念,arm实际上只有内存空间,所以这里不记载io端口的使用方法。

使用io内存分4步:

1. 申请:

使用方式如下:

2. 映射:

使用方法如下:

3. 访问:

4. 释放:

混杂设备驱动:

在linux里,存在一类字符设备,他们共享一个主设备号-10,但次设备号不同,我们称这类设备为混杂设备。这类设备一般都是简单的字符设备,比如LED可以设置为混杂驱动(也可以不设置为混杂驱动)。

最新文章

  1. js声明json数据,打印json数据,遍历json数据
  2. 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)
  3. 动软MySQL存储过程模板
  4. arduino 红外遥控器控制LED灯
  5. imageview圆角的实现
  6. app开发版面设计原则
  7. iPhone 6/6 Plus 出现后,如何改进工作流以实现一份设计稿支持多个尺寸?
  8. python写的多线程下载工具
  9. controller,link,compile不同
  10. 读取Excel任务列表并显示在Outlook日历上
  11. plsql使用之debug
  12. aix puppet agent
  13. python去除文本中的HTML标签
  14. OpenStack修复影响宿主机的QEMU漏洞CVE-2017-2615
  15. java安全框架shiro(一)
  16. hive SQL查询结果添加行号
  17. Lucene与Solr基础
  18. [JLOI 2016]成绩比较
  19. sshpass 配置密码登录ssh
  20. Couchbase学习和使用

热门文章

  1. Qt编写自定义控件44-天气仪表盘
  2. 使用Tomcat搭建基于域名的虚拟机
  3. c# 调用mysql数据库验证用户名和密码
  4. MySQL复制表结构
  5. ubuntu18.04开机提示welcome to emergency mode! after logging in type...的解决办法
  6. spring mvc 后端获得前端传递过来的参数的方法
  7. 最新 珍岛java校招面经 (含整理过的面试题大全)
  8. C++ 编译错误 jump to case label [-fpermissive]
  9. 龙芯PG10 安装uuid-ossp 的方法 复用瀚高数据库的 so文件
  10. Jmeter 跨线程组传递参数 之两种方法(转)