第一范文网 - 专业文章范例文档资料分享平台

02 driverdemo实验步骤

来源:用户分享 时间:2025/5/17 16:19:11 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Driverdemo实验步骤

一.感性认识的实验步骤:

提示:以下内容均在Linux PC机上进行 1.用mknod命令建立demo设备节点 mknod /dev/demo c 254 0 2. 用insmod 命令插入设备驱动

insmod demo.o 3. 运行测试程序

./test_demo 4.删除设备节点 rm -f /dev/demo

二.完善代码部分

1.分析用户程序源代码的作用 200字以内

2.完善设备驱动源代码

把demo.c文件中以???标记的部分,按照提示和该函数的功能,填上适当的函数和语

3.分析Makefile文件,把为PC linux编写的Makefile文件改写为为ARM开发平台编写的

Makefile文件

三、编译驱动模块及测试程序

1.按第二部分完善代码后,用make命令编译驱动和测试程序

[qianzg@localhost demo]$make armv4l-unknown-linux-gcc -c -I.. -Wall -O -D__KERNEL__ -DMODULE -I/arm2410dev/kernel-2410dev/include demo.c -o demo.o demo.c:108: warning: initialization from incompatible pointer type armv4l-unknown-linux-gcc armv4l-unknown-linux-gcc -c -I.. -I.. -Wall -Wall -O -O -D__KERNEL__ -D__KERNEL__ -DMODULE -DMODULE -I/arm2410dev/kernel-2410dev/include hello.c -o hello.o -I/arm2410dev/kernel-2410dev/include -c -o test_demo.o test_demo.c armv4l-unknown-linux-gcc test_demo.o -o test_demo 注意:如果编译的时候出现问题,可能是在/usr/src下没有建立一个linux连接,可以使用下面的命令: [root@zxt demo]# cd /usr/src/ [root@zxt src]# ln -sf linux-2.4.20-8 linux [root@zxt src]# ls debug linux linux-2.4 linux-2.4.20-8 redhat 4、测试驱动程序

如果使用gcc编译的话,需要通过下面的命令来建立设备节点,如果使用交叉编译器的话,不需要建立设备节点。

#mknod /dev/demo c 254 0 首先要插入驱动模块demo.o,然后可以用lsmod命令来查看模块是否已经被插入,在不使用该模块的时候还可以用rmmod命令来将模块卸载。

[root@zxt demo]# insmod demo.o Warning: loading demo.o will taint the kernel: no license See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module demo loaded, with warnings 下面使用测试程序来进行测试,按照上面步骤成功后会出现下面的结果:

[root@zxt demo]# ./test_demo write 32 bytes data to /dev/demo 0: 0 1 2 3 1: 4 5 6 7 2: 8 9 10 11 3: 12 13 14 15 4: 16 17 18 19 5: 20 21 22 23 6: 24 25 26 27 7: 28 29 30 31 ***************************************************** Read 32 bytes data from /dev/demo 0: 31 30 29 28 1: 27 26 25 24 2: 23 22 21 11 3: 12 13 14 15 4: 16 17 18 19 5: 20 10 9 8 6: 7 6 5 4 7: 3 2 1 0 ***************************************************** 如果模块没有成功插入的话,会出现下面的情况:

[root@zxt demo]# ./test_demo ####DEMO device open fail#### 在驱动模块成功插入后,会在/dev下面建立一个叫做demo的设备文件,我们也可以使用cat 命令来直接调用read函数,来测试读过程。 [root@zxt demo]# cat /dev/demo device open success! 思考题

1、添加一些自己的功能,修改源代码并编译调试。

2、增加一个中断驱动函数,比如PC机并口,试验中断驱动的实现。

搜索更多关于: 02 driverdemo实验步骤 的文档
02 driverdemo实验步骤.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c97mps1koaj4n7xz5eb8g_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top