- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 linux驱动开发之字符设备--私有数据和container_of
前言驱动开发中通常为设备定义一个设备相关的设备结构体,其包含该设备的cdev 、私有数据、信号量、irq等这些信息。 驱动开发中通常将文件的私有数据private_data指向设备结构体,在read()、write()、ioctl()等函数通过 private_data 访问数据 设备结构体。container_of() 是一个比较常用的宏,其作用为通过结构体成员的指针找到对应结构体
2017-05-31 21:13:27 2831 1
原创 linux驱动开发之字符设备--自动创建设备节点
mdev在/dev下创建设备的方法有两种,一种是手动的使用 mknod 进行创建。另外一种是使用 mdev 进行自动的创建设备。 mdev集成在busybox中,mdev 会自动检测 /sys/class 和 /sys/block 的所有类设备目录;如果在目录中含有名为“dev”的文件,同时如果内容是设备号的话,mdev 就会利用这些信息,在/dev下创建这个设备节点。
2017-05-26 21:40:34 1459
原创 linux驱动开发之字符设备--内核和用户空间数据的交换(sysfs)
设备驱动程序中与用户层的接口,除了 read/write/ioctl 方式外,还有sysfs属性。 对于sysfs属性提供的接口,在应用层,可以直接使用 shell 进行交互,而不必进行 编写 C 代码的方式进行对底层的读写。
2017-05-25 20:38:52 1423
原创 linux驱动开发之字符设备--内核和用户空间数据的交换(ioctl)
在驱动中,除了需要具备读写能力外,还需要对硬件设备进行控制。ioctl就常用户底层的一些操作。
2017-05-23 20:00:51 1159
原创 linux驱动开发之字符设备--内核和用户空间数据的交换(read write)
前边给出了字符设备的框架,内核和用户空间进行交流的时候,离不来数据的交换;内核实现read、wriet 、ioctl是常用的交互手段。
2017-05-20 13:56:47 1708
原创 linux驱动开发之字符设备框架 -调用过程分析
前言在前边三节的基础上,粗略的分析一下,上层应用调用到驱动程序的过程,分为下面几个方面: 1.字符设备驱动本身 2.mknod的作用 3.open的调用过程
2017-05-18 20:02:52 1179
原创 linux驱动开发之字符设备框架 - 实例
前言前两小节中介绍了字符设备的cdev和函数操作集 file_operations。理论还需要和实践结合起来,这节主要是给出一个示例代码和测试代码。正文#include
2017-05-17 21:24:19 912
原创 linux驱动开发之字符设备框架 - file_operations
在上一节中介绍了字符设备的重要结构体 cdev,以及和 cdev 相关的一些操作函数,比如cdev_alloc()、 cdev_init() 等,但是和 cdev_init() 密切相关的一个参数 fops,并没有介绍。这节重点分析 file_operations 结构体。
2017-05-14 13:38:33 608
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人