上一章我们介绍了iio子系统中的iio trigger模块,本章我们将介绍iio event模块,iio event主要用于阈值监测、自由落体监测等监测功能。因为IIO EVENT涉及IIO DEVICE字符设备文件操作,因此本章内容主要分为如下几部分:
一、 IIO DEVICE字符设备文件操作接口
二、IIO EVENT设计分析
三、IIO EVENT相关接口说明
一、 IIO DEVICE字符设备文件操作接口
在IIO 子系统中,每一个IIO DEVICE均会创建一个字符设备文件,名称为/dev/iio:deviceX,该字符设备文件节点在iio_device_register中调用cdev_init、cdev_add完成字符设备文件节点的创建,且文件操作接口为iio_buffer_fileops(而借助sysfs的kobject uevent,则会将cdev add的信息发送给应用程序,应用层的mdev/udev接收到cdev add的uevent之后,则会调用mknod完成字符设备文件节点的创建,详细内容可参考我之前写的字符设备文件专栏的内容《》)。如下即是/dev/iio:deviceX的访问流程,应用程序通过open/read/poll/ioctl接口则会调用内核中VFS提供的操作接口,最终则调用iio_buffer_fileops中定义的接口。

iio_buffer_fileops的定义如下

问题来了,iio device对应的字符设备文件节点主要提供哪些服务呢?
主要提供两方面的内容:
- 提供对iio device各通道连续采集数据的读取操作(前提是该iio device的某些通道提供了iio buffer功能);
- 提供创建event数据读取对应的匿名字符设备文件节点的功能(通过ioctl功能,则创建一个匿名的字符设备文件节点,用于

最低0.47元/天 解锁文章
1091

被折叠的 条评论
为什么被折叠?



