实验六 实现一个基于内存映射的设备驱动程序

目录

  • 实验六 实现一个基于内存映射的设备驱动程序
    • 实验环境
    • 一.实验目的
    • 二.实验内容
    • 三.实验步骤
    • 四.实验总结

实验环境

操作系统版本:ubuntu-14.04.1-desktop-i386
下载连接:http://old-releases.ubuntu.com/releases/trusty/ubuntu-14.04.1-desktop-i386.iso
实验课件及源码:https://wwe.lanzouw.com/ilBQnyrwffi

一.实验目的

1、掌握Linux设备驱动程序基本原理
2、掌握Linux字符设备驱动的创建流程
3、掌握Linux字符设备驱动的常见函数
4、理解Linux设备驱动的内存映射机制

二.实验内容

1、通过添加内核模块来实现一个基于内存映射的杂项设备驱动程序

三.实验步骤

1、通过make编译miscdev_map.c文件

2、将编译好的miscdev_map.ko文件插入到系统内核中并创建设备节点

3、编译并运行miscdev_maptest.c文件,查看实验结果

四.实验总结

此次实验的目的是掌握Linux设备驱动程序基本原理,掌握Linux字符设备驱动的创建流程,掌握Linux字符设备驱动的常见函数,理解Linux设备驱动的内存映射机制。由于设备也可以看做是一种文件,所以设备文件也支持基于内存映射的数据传输方式。
设备驱动程序在调用其mmap函数完成从内核空间到用户空间的映射时,必须要建立相应的页表。建立页表可以使用remap_pfn_range函数。remap_pfn_range函数的功能是根据物理帧号建立页表,并映射到用户进程空间。
通过这次实验使我掌握了通过添加内核模块来实现一个基于内存映射的杂项设备驱动程序。

实验六 实现一个基于内存映射的设备驱动程序相关推荐

  1. 随想录(基于内存映射的进程通信)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在通信协议的开发中,有的时候为了本地调试的需要,需要实现进程之间的通信.在windows系统中 ...

  2. linux内核内存映射实验报告,动手实践-Linux内存映射基础(上)

    Linux内核分析与应用 西安邮电大学(陈莉君) 在庞大的Linux内核源代码学习中,如何抓住主要线索和思路,如何让所学能够切实地应用起来,本课程主讲以自己20年来对Linux内核的研究和教学为基础, ...

  3. LCD不带显存,是如何内存映射屏幕。S5PV210SoC在内存中选一段内存存放颜色数据,通过配置将LCD控制器和这一段内存连接起来,构成映射关系,LCD控制器就自动从显存中读取像素数据传给LCD驱动器

    一.LCD控制原理 S5PV210处理器中自带LCD控制器,控制LCD的显示,把 LCD 图像数据从一个位于系统内存的 video buffer 传送到一个外部的 LCD 驱动器接口. 类型: STN ...

  4. 经典 【操作系统实验】 实验六 设备驱动程序 RH5 2.6.18 + 2.6.32 内核

    经典 [操作系统实验] 实验六 设备驱动程序 设备驱动程序 简单介绍一下2.6版本内核添加模块的方法: 虚拟块设备驱动程序内容 设备驱动程序 前言: 本文是基于Linux的设备驱动实验流程记录,涵盖了 ...

  5. Java实现基于内存的搜索引擎设计和实现 课程报告+项目源码+帮助文档等

    资源下载地址:https://download.csdn.net/download/sheziqiong/85694989 资源下载地址:https://download.csdn.net/downl ...

  6. 《SPARK/TACHYON:基于内存的分布式存储系统》-史鸣飞(英特尔亚太研发有限公司大数据软件部工程师)...

    史鸣飞:大家好,我是叫史鸣飞,来自英特尔公司,接下来我向大家介绍一下Tachyon.我事先想了解一下大家有没有听说过Tachyon,或者是对Tachyon有没有一些了解?对Spark呢? 首先做一个介 ...

  7. 内存映射MMAP和DMA【转】

    转自:http://blog.csdn.net/zhoudengqing/article/details/41654293 版权声明:本文为博主原创文章,未经博主允许不得转载. 这一章介绍Linux内 ...

  8. 内存映射与DMA笔记

    内存映射与DMA笔记 2009-08-04 14:49 3项技术: 1,mmap系统调用可以实现将设备内存映射到用户进程的地址空间. 2,使用get_user_pages,可以把用户空间内存映射到内核 ...

  9. 3、Spark2x 基于内存的计算引擎

    Spark2x 基于内存的计算引擎 一.Spark 概述 Spark 是一种基于内存进行计算的分布式批处理引擎,他的主要工作是执行以下几种计算: (1) 数据处理,可以进行快速的数据计算工作,具备容错 ...

最新文章

  1. JAVA 对象序列化(二)——Externalizable
  2. c#的Marshal
  3. linux 安装jdk(install jdk)
  4. python综合管理系统_Python-20 (信息系统-框架/循环/增删/综合应用)
  5. 微信怎么绑定消息服务器吗,fastweixin: 极其方便的实现微信公众平台服务端开发,2行代码完成服务器绑定,3行代码实现用户消息监听...
  6. LeetCode题库整理【Java】—— 1两数之和
  7. java导出excel float_【Java】导入导出Excel表格
  8. Java经典实例:实现一个简单堆栈
  9. W3C-Web Service
  10. E-prime debug
  11. 网络模块封装-axio
  12. 那时的回忆~九州幻想!
  13. 《码农的爱情》第一章又逢情人节
  14. 云计算机有什么用,云电脑对玩家来说有什么作用
  15. 树莓派 使用3.5耳机口输出音频
  16. Elasticsearch 搜索入门技术之一
  17. hostname命令的使用
  18. oracle分类账设置,Oracle EBS R12 总帐和子分类账关系详解[转载]
  19. vscode提示:“An SSH installation couldn‘t be found”
  20. 仿生学导论学习笔记——第一章

热门文章

  1. c语言中void明明没有return为什么还可以使用结果,为什么要在void的函数里面使用return语句呢?(C语言)...
  2. ViewBag的使用方法
  3. python工业控制系统机柜_智慧职教2020Python程序设计(常州工业职业技术学院)答案...
  4. rc4算法安全漏洞_RC4攻击:RC4加密算法能否保护SSL/TLS?
  5. Tomcat设置允许跨域访问
  6. c# winform登录窗口按enter自动登录设置
  7. ObjectARX 光栅图像获取
  8. 用PC上的Chrome 模拟手机浏览器
  9. Android 如何修改默认输入法
  10. 大专计算机类英语翻译,专科英文(大学专科用英文怎么说)