操作系统课程作业:在Linux系统中为提供的虚拟字符设备编写驱动程序和测试程序
操作系统课程:Linux字符设备驱动作业
作业要求:
1.为提供的虚拟字符设备编写驱动程序
2.编写测试驱动的程序并测试通过
提供的虚拟字符设备(softdev.tgz):
– 虚拟设备文件:softdev.c
– 功能:小写转大写
softdev_send()
softdev_recv()
softdev_ioctl()
– 主要文件:
Makefile
softdev.c
softdev.h
– 编译加载设备方法
make
insmod softdev.ko
检查标准:
测试标准
– 在/proc/devices中能看到该设备名:“upper”,主设备号:117,设备类
型:字符设备
– 可以对该设备进行读写。作业的内容包括对设备的读写程序。可以用该程
序对设备进行测试
– 设置设备做大写转换或者不做大写转换。缺省状态下做小写到大写转换,
可以设置为不做转换
– 该设备驱动用softdev设备的softdev_send和softdev_recv做发送和接受
– 使用模块(module)方式加载
测试程序具体要求
– 写设备程序:dwrite,一次写一个字符串,写完退出
dwrite
– 读设备程序:dread,循环读取设备接收到数据,并显示
dread
– 设置设备程序:dioctl,设置设备工作方式,0:不做大写转换,1:做大写转换。
缺省工作方式为1
dioctl
作业提交的文件:
– Makefile
– upperdev.c
– dread.c
– dwrite.c
– dioctl.c
作业完成代码(虚拟设备文件和驱动程序文件、测试驱动程序文件网络地址见最后):