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

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

实验环境

操作系统版本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函数的功能是根据物理帧号建立页表,并映射到用户进程空间。
通过这次实验使我掌握了通过添加内核模块来实现一个基于内存映射的杂项设备驱动程序。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值