Linux 字符设备驱动
来源:互联网 发布:代码高亮 源码 编辑:程序博客网 时间:2024/05/16 05:38
一)字符设备驱动程序框架
字符设备都有主设备号和次设备号,主设备用于标识属于哪类设备,次设备号表示该类设备的序号;比如一个系统有2个同样的设备,那么它俩的主设备号是一样的,只是次设备号不一样
设备号有 typedef u_long dev_t来表示,对应32位机器,高12位表示主设备号,低20位表示次设备号
通过命令 cat /proc/devices可以查看设备号
向系统申请字符设备号:通过register_chrdev_region来注册设备号,但是设备号有可能会冲突,可以先通过alloc_chrdev_region来申请;通过unregister_chrdev_region来释放。
二)cdev
在Linux使用cdev来表示字符设备
cdev,inode的关系:cdev是inode的一个成员,当应用打开设备文件A,系统会产生一个inode结点,通过inode结点的i_cdev字段找到cdev字符结构体,在通过cdev的操作函数ops来操作设备。
file_operations是对设备进行操作的函数指针集合
三)字符设备驱动的组成
1、字符设备的加载函数和卸载函数:xxx_init和xxx_exit
2、file_operations主要函数的实现
四)驱动程序与应用程序之间的数据交换
有这么几个方法可以进行数据的交互,copy_to_user、copy_from_user、put_user、ge_user
0 0
- LINUX--字符设备驱动
- Linux字符设备驱动
- Linux字符设备驱动
- Linux字符设备驱动
- linux字符设备驱动
- linux字符设备驱动
- linux 字符设备驱动
- linux字符设备驱动
- linux 字符设备驱动
- Linux字符设备驱动
- linux字符设备驱动
- Linux字符设备驱动
- linux 字符设备驱动
- Linux字符设备驱动
- linux字符设备驱动
- Linux字符设备驱动
- Linux字符设备驱动
- Linux 字符设备驱动
- centos更新源
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- Cocos2d-x3.2与OpenGL渲染总结(一)Cocos2d-x3.2的渲染流程
- c#生成图片验证码,避免被软件识别的完美方案
- linux下的C语言开发(makefile编写)
- Linux 字符设备驱动
- 图片裁剪开源框架cropper源码解析
- 【Boost】boost库中thread多线程详解10——condition条件变量
- [案例]更高效,更安全,北京高法开启“掌上法院”新时代
- YTU 2844: 改错题A-看电影
- Generative Modeling of Convolutional Neural Networks
- Spark优化一则 - 减少Shuffle
- Android 自己自定义监听模式套路
- Myeclipse使用html模板