IIO 子系统系统框架文章来源:https://www.toymoban.com/news/detail-592332.html
而在IIO子系统内部,则主要包括如下四部分的内容:文章来源地址https://www.toymoban.com/news/detail-592332.html
- iio buffer用于处理需要进行连续采集的数据,当一个IIO device的各通道数据支持连续采集时,则调用iio buffer模块提供的接口,创建iio buffer用于存储连续存储的数据,同时该模块提供字符设备文件的注册,因此应用程序通过字符设备文件即可读取该IIO device各通道连续采集的数据;
- 当IIO DEVICE支持连续采集时,一般需要绑定一种触发方法,作为数据到达的信号,而IIO子系统提个iio trigger实现该功能,当iio trigger信号到后,则将数据push到iio buffer中(目前IIO子系统提供了iio trigger的注册、注销与查找接口,且系统中已提供了iio-trig-sysfs、iio-trig-gpio、iio-trig-irq等通用的触发方法。这种方式是不是很眼熟,在led子系统中,也包含为led-trigger,一个led-class可以和一个led-trigger绑定,从而实现对led亮度的控制策略);
- 针对温度传感器等器件,也会进行事件触发(如温度传感器设置温度上限阈值,当温度高于该阈值后,则触发中断信号),因此IIO子系统提供了iio event模块,iio event模块提供了字符设备操作接口用于对event的监控(该字符设备操作接口并没有创建字符设备文件,而是在iio buffer的ioctl中开启event monitor,然后调用anon_inode_getfd创建了一个匿名inode节点,并设置inode的ops接口等)。
- 以上3个都是iio 子系统各子功能,而iio core则主要实现iio device的创建,并根据传递的参数决定是否需要创建iio buffer等,提供了iio device的内存申、请注册与注销接口。
到了这里,关于Linux IIO 子系统简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!