实验二
实验题目:简单的字符设备驱动程序
实验目的:掌握Makefile文件编写方法;熟悉字符设备驱动程序设计、开发和使用流程; 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤:
编写一个简单的字符设备驱动程序,完成下列功能,并写出运行程序后输出的结果。 1)
编写简单的字符设备驱动程序,能够实现对虚拟设备int类型
变量的读写操作;
2) 3)
编写Makefile文件,对驱动程序进行编译;
采用动态模块加载方式对驱动程序进行加载,并查看加载前后
效果; 4)
编写测试程序,对虚拟设备进行读写操作,对驱动程序功能进
行验证。 实验步骤:
1)使用如下命令创建驱动源程序文件进行编写。 vim globalvar.c
2)编写相应的Makefile文件。 vim Makefile
3)对驱动程序进行编译、调试,生成globalvar.o目标文件。 make(make clean)
4)加载驱动程序,并查看是否加载成功。 insmod globalvar.o cat /proc/devices
(卸载模块命令 rmmod globalvar)(注意:无后缀名) 5)编写测试文件globalvartest.c,并进行编译,生成
globalvartest.o可执行文件。 6)创建虚拟设备文件。
mknod /dev/globalvar c 253 0
7)运行globalvartest.o,查看、记录并提交结果。 ./globalvartest.o 提交代码:
1)globalvar.c/globalvar.o 2)Makefile
3)globalvartest.c/globalvartest.o 4)测试结果(.jpg文件)
一.globalvar.c驱动程序 测试程序
makefile文件
测试结果
实验三
实验题目:并发控制及中断程序 实验目的:
(1)掌握linux内核中并发控制的方法,学会运用信号量/队列/自旋锁进行内核驱动程序中的并发控制;
(2)掌握中断处理机制原理,学会使用tasklet进行软中断处理。 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤:
以简单的字符设备驱动程序globalvar为基础,编写程序完成下列功能,并写出运行程序后输出的结果。