488
查看驱动第二发:字符设备驱动程序的源代码
驱动第二发:字符设备驱动程序
0
←
驱动第二发:字符设备驱动程序
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你被禁止执行你刚才请求的操作。
您可以查看并复制此页面的源代码:
==== 基本分为两大步骤: ==== '''动态获取设备号''' result = alloc_chrdev_region(&dev, scull_minor, scull_nr_devs, "scull"); scull_major = MAJOR(dev); '''注册设备''' 内核内部使用struct cdev结构来表示字符设备,因此在内核调用设备之前,必须分配并注册一个或多个cdev结构: struct cdev *my_cdev = cdev_alloc(); my_cdev->ops = &my_fops; 将其初始化: cdev_init(my_cdev, &scull_fops); add至内核: err = cdev_add(my_cdev, devno, 1); 移除已注册的字符设备: cdev_del(my_cdev); 最后,最好再编写一个脚本,用于加载驱动程序模块: 可以利用awk这类工具从 /proc/devices中获取信息,并在 /dev目录中创建设置文件。 ps.如此看来一个驱动程序的增加在步骤上似乎并不复杂,但驱动的核心在于scull_fops的编写上,因为在linux中,所有的设备都虚拟为一个文件,如此便能方便地运用通道等现成的工具对设备进行控制,所以驱动的核心内容都在于 <span style="color:#FF0000;">file_operation</span>这个结构体中函数的实现上。
返回
驱动第二发:字符设备驱动程序
。
导航菜单
个人工具
   
个人维基
注册
登录
名字空间
页面
变换
查看
阅读
查看源代码
统计
查看历史
操作
搜索
导航
首页
Ubuntu
Android
C&CPP
Java
Python
大杂烩
最近更改
工具箱
所有页面
文件列表
特殊页面