
1.编写字符驱动程序需要在内核中注册设备和中断程序,还有file_ops里面的open,read,release等函数
2.注册成功后在/proc/device文件里面可以看到你注册的设备名称和主设备号,/proc/interrupt文件中可以看到注册的中断
3.为设备创建文件节点,mknod /dev/char_dev_test c 主设备号 次设备号,于是就在/dev/里面生成一个char_dev_test 设备文件
4,应用程序通过文件 *** 作函数,比如open,read等 *** 作char_dev_test 文件
eg: FILE* p=open("/dev/char_dev_test","rb")
if(p==NULL) { printf("error,can't open dev file!")return -1}
char buf[1024]
read(p,buf,size_t)
//其中open是调用的注册进入内核的file_ops的open函数,read是调用的file_ops的read函数,里面一般有copy_to_user,将内核数据复制到用户空间,也就是复制到了buf中。
关于驱动的知识,建议你还是学习一下linux驱动开发相关知识
祝你好运
scripts/Makefile.build:49: *** CFLAGS was changed in "/linux_device/driver/scull/Makefile". Fix it to use EXTRA_CFLAGS. Stop. 这个不是写得很清楚了吗? 将makefile中的 CFLAGS 替换成 EXTRA_CFLAGS欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)