快速业务通道

Linux字符设备驱动程序的编写框架

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-13
译,然后

ld ?-r ?file1.o ?file2.o ?-o ?modulename.

驱动程序已经编译好了,现在把它安装到系统中去.

$ insmod ?–f ?test.o

如果安装成功,在/proc/devices文件中就可以看到设备test,并可以看到它的主设备号.要卸载的话,运行 :

$ rmmod test

下一步要创建设备文件.

mknod /dev/test c major minor

c 是指字符设备,major是主设备号,就是在/proc/devices里看到的.

用shell命令

$ cat /proc/devices

就可以获得主设备号,可以把上面的命令行加入你的shell script中去.

minor是从设备号,设置成0就可以了.

我们现在可以通过设备文件来访问我们的驱动程序.写一个小小的测试程序.
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
main()
{
int testdev;
int i;
char buf[10];
testdev = open("/dev/test",O_RDWR);
if ( testdev == -1 )
{
printf("Cann''t open file n");
exit(0);
}
read(testdev,buf,10);
for (i = 0; i < 10;i )
printf("%dn",buf[i]);
close(testdev);
}

编译运行,看看是不是打印出全1 ?

以上只是一个简单的演示.真正实用的驱动程序要复杂的多,要处理如中断,DMA,I/O port等问题.这些才是真正的难点.上述给出了一个简单的字符设备驱动编写的框架和原理,更为复杂的编写需要去认真研究LINUX内核的运行机制和具体的设备运行的机制等等.希望大家好好掌握LINUX设备驱动程序编写的方法.

Empire CMS,phome.net

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号