LINUX字符程序驱动

LINUX字符程序驱动

ID:40562119

大小:988.50 KB

页数:9页

时间:2019-08-04

LINUX字符程序驱动_第1页
LINUX字符程序驱动_第2页
LINUX字符程序驱动_第3页
LINUX字符程序驱动_第4页
LINUX字符程序驱动_第5页
资源描述:

《LINUX字符程序驱动》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux下编写字符设备驱动程序实验步骤1.编写驱动程序:这里主要是编写一些函数来填充file_operations的各个域。这里file_operation的每个域都表示一个系统调用。我定义了4个函数,分别是my_open,my_release,my_read,my_write,下面分别予以描述。(1)my_read,从设备中读取字符,代码如下:(2)my_write,向设备中写入字符,代码如下:(3)my_open备中写入字符,代码如下:(4)my_release字符,代码如下:(5)填充file_operations域(6)注册模块(7

2、)注销模块1.编写Makefile,并编译驱动程序为模块这里利用老师讲过的向系统中添加模块的方法,我们编写Makefile文件,编译刚才写的驱动程序。Makefile的内容如下:下面我们使用make命令来编译,可以发现生成了devDrv.ko文件,这即为我们要添加的模块,如下图所示:1.装载模块这里我们使用insmod命令来加载我们编译好的模块,命令如下所示:sudoinsmoddevDrv.ko加载完成后我们可以使用lsmod来查看我们是否加载成功,如下图所示:也可一通过dmesg来查看加载模块时打印的日志信息,如下图所示:我们可以看到,这

3、里已经成功加载了模块,并注册了字符设备,且虚拟的主设备号是249,我们之后可以使用命令“mknod/dev/myDevicec2490”来添加从设备号。1.分配设备号由于字符设备也是文件,每个文件有两个设备号,一个是主设备号,一个是从设备号。从第3步中,我们知道我们的设备的主设备号是249,也可以通过cat/proc/devices来查找我们的主设备号,如下图所示:可以看到我们的设备myDevice的主设备号是249,下面我们使用命令mknod/dev/myDevicec2490来分配从设备号。之后,我们可以在/dev/目录下看到新建的设备m

4、yDevice了,使用命令ls/dev/:下面,我们就可以编写测试程序来测试我们的驱动设备啦。1.测试驱动程序首先,我们需要编写测试程序,如下图所示:然后,我们使用命令gccdrvTest.c-otest来编译测试文件,可以生成可执行文件test。我们在管理员权限下运行test文件,会打印出系统里的设备,并提示我们输入要使用的设备,如下所示:这里我们输入我们的设备,myDevice,程序会把我们上次输入给输出出来,之后它会提示我们输入一个字符串,这里我们输入:hello,Iamadevicedriver,welcometouseme,如下所示

5、:按下回车键,结果如下所示:1.删除设备,模块最后,我们需要删除我们的设备,和加载的模块。首先,使用命令rm/dev/myDevice可以删除我们的命令,之后我们可以使用命令ls/dev来查看我们的设备是否成功删除,如下图所示:可以看到,myDevice已经被成功删除啦。然后,我们可以使用命令rmmoddevDrv来删除加载的模块,如下图所示:至此,本次实验就完成了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。