Linux驱动程序-----字符设备
来源:互联网 发布:网址域名 编辑:程序博客网 时间:2024/05/15 23:44
根据书本<Linux设备驱动开发详解>,写了自己的一个Linux驱动,一个简单的字符设备,其实也没什么实际功能,主要是能对字符设备类驱动有一个很清晰的认识,也增加了自己对驱动程序开发的信心吧
1、重要的结构体分析
1.1 cdev结构体
cdev 结构体的 dev_t 成员定义了设备号,为 32 位,其中高 12 位为主设备号,低20 位为次设备号。使用下列宏可以从dev_t中生成主次设备号
主设备号:MAJOR(dev_t dev);
次设备号:MINOR(dev_t dev);
使用下列宏则可以通过主次设备号生成dev_t
MKDEV(int major,int minor);
cdev另一个重要成员就是file_operations定义了字符设备驱动程序提供给虚拟文件系统的接口函数,也是字符设备驱动程序的主要组成部分。cdev结构体的操作函数有:
void cdev_init(struct cdev *, struct file_operations *);
int cdev_add(struct cdev *, dev_t, unsigned);
viod cdev_del(struct cdev *);
cdev_init()函数用于初始化cdev的各个成员,并建立cdev与file_operations 之间的连接,cdev_add()和cdev_del()分别是用于向系统添加和删除一个cdev,完成字符设备的注册和消除。
1.2 file_operations结构体
file_operations是实现系统调用的具体操作
2、驱动程序结构分析
3、具体程序实现
该例程是一个简单的memory程序,就把一块内存虚拟成一个字符设备,对其进行读写操作。代码简易,对字符驱动程序有个很清楚的概括
Makefile如下
- linux字符设备驱动程序
- Linux 字符设备驱动程序
- linux字符设备驱动程序
- Linux驱动程序-----字符设备
- Linux字符设备驱动程序
- Linux字符设备驱动程序
- Linux字符设备驱动程序
- linux设备驱动程序 字符设备驱动程序
- Linux设备驱动程序-字符设备驱动程序
- Linux字符设备驱动程序解析
- Linux字符设备驱动程序开发
- Linux 2.6 字符设备驱动程序
- Linux 2.6 字符设备驱动程序
- Linux 2.6 字符设备驱动程序
- Linux字符设备驱动程序开发
- Linux 2.6 字符设备驱动程序
- Linux 2.6 字符设备驱动程序
- Linux 2.6 字符设备驱动程序
- Images.xcassets 的简单使用
- jquery删除数组指定元素
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- Git repository 地址修改
- GRE写作必备句型
- Linux驱动程序-----字符设备
- HTML页脚无论内容怎么变都在网页的最底部
- SQLServer: 如何搜索%、_、[
- java环境变量配置
- hdu 1086 计算几何 线段求交
- Android_开源控件_DragSortListview
- redirect_uri参数错误解决方法 微信公众平台
- 场景拼图工具开发
- 华为 3G 移植回忆