linux下开发驱动程序是怎样把应用程序和内核联系在一起

linux下开发驱动程序是怎样把应用程序和内核联系在一起,第1张

驱动程序一般是通过模块注入内核,用字符驱动程序举个例子:

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7270437.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存