Linux字符设备驱动作业——说明及测试文档.docVIP

Linux字符设备驱动作业——说明及测试文档.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux字符设备驱动作业——说明及测试文档.doc

Linux字符设备驱动作业——说明及测试文档 内容 编写字符设备驱动并测试通过 作业提交的内容: make_upperdrv ;upperdrv.c的makefile文件 upperdrv.c ;softdev设备的驱动程序,设备名:upper,主设备号:117 dread.c ;测试程序,对设备的读操作 dwrite.c ;测试程序,对设备的写操作 dioctl.c ;测试程序,对设备的控制操作 设备 虚拟设备softdev.c softdev_send(),softdev_recv() softdev_ioctl() 功能:小写转大写 Makefile 编译加载设备 make softdev.o insmod softdev.o 开发环境 Linux 2.4.x 内核源程序 Gcc 编译器 make 使用C 语言开发 设备驱动 文件名:upperdrv.c 设备名:upper 设备类型:字符设备 主设备号:117 从设备号:n 测试程序 写设备程序:dwrite,一次写一个字符串,写完退出 dwrite device name string 读设备程序:dread,循环读取设备接收到数据,并显示 dread device name 设置设备程序:dioctl,设置设备工作方式,0:不做大写转换,1:做大写转换。缺省工作方式为1 dioctl device name digit mode Linux字符设备驱动 检查标准 测试标准 在/proc/devices中能看到该设备名 可以对该设备进行读写。作业的内容包括对设备的读写程序。可以用该程序对设备进行测试 设置设备做大写转换或者不做大写转换。缺省状态下做小写(大写转换,可以设置为不做转换 该设备驱动用softdev设备的softdev_send和softdev_recv做发送和接受 使用模块(module)方式加载 测试步骤及结果:[假定内核已经过编译,有.config文件,支持模块加载] 1,在Linux下,加载入softdev设备: 命令:make ;产生softdev.o insmod softdev.o ;加载softdev 2, 编译upperdrv.c并加载: 先在/dev/下注册一个设备节点:mknod /dev/upper c 117 0 ;主设备号117 次设备号0 make –f make_upperdrv ;产生 upperdrv.o insmod upperdrv.o ;加载upperdrv 这是能够 lsmod 命令看到 upperdrv Used by softdev Used by [upperdrv] 在/proc/devices中能看到该设备名: cat /proc/devices , 显示 Character Devices: ……117 upper 说明设备upper已加载成功。 3, 编译dwrite.c, dread.c, dioctl.c: gcc –o dwrite dwrite.c gcc –o dread dread.c gcc –o dioctl dioctl.c 4, 测试相应功能:. 各命令格式为:dwrite +device name +[string] ;在当前目录下就是 ./dwrite upper string dread + upper ;在当前目录下就是 ./dread upper dioctl +device name+[cmd] ;在当前目录下就是 ./dioctl upper 1;1表示小写转大写模式,0表示不转换 实例操作: 命令 ./dwrite upper abcdefghijk1234 屏幕显示 buf=” abcdefghijk1234” strlen(buf)=15 After write, return len=15 15 bytes written to device! 在另一窗口打命令 ./dread upper 屏幕显示 readmsg_len=15 ABCDEFGHIJK1234 以上是在设备默认的小写字母转大写字母的模式下,通过dioctl可以改变这一模式: 命令 ./dioctl upper 0 在打入上面的dwrite命令后,dread显示的就是abcdefghijk1234了

文档评论(0)

qspd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档