106 lines · plain
1.. include:: ../disclaimer-zh_CN.rst2 3:Original: Documentation/iio/iio_configfs.rst4 5:翻译:6 7 司延腾 Yanteng Si <siyanteng@loongson.cn>8 9.. _cn_iio_configfs:10 11=====================12工业 IIO configfs支持13=====================14 151. 概述16=======17 18Configfs是一种内核对象的基于文件系统的管理系统,IIO使用一些可以通过19configfs轻松配置的对象(例如:设备,触发器)。20 21关于configfs是如何运行的,请查阅Documentation/filesystems/configfs.rst22了解更多信息。23 242. 用法25=======26为了使configfs支持IIO,我们需要在编译时选中config的CONFIG_IIO_CONFIGFS27选项。28 29然后,挂载configfs文件系统(通常在 /config directory目录下)::30 31 $ mkdir/config32 $ mount -t configfs none/config33 34此时,将创建所有默认IIO组,并可以在/ config / iio下对其进行访问。 下一章35将介绍可用的IIO配置对象。36 373. 软件触发器38=============39 40IIO默认configfs组之一是“触发器”组。挂载configfs后可以自动访问它,并且可41以在/config/iio/triggers下找到。42 43IIO软件触发器为创建多种触发器类型提供了支持。通常在include/linux/iio44/sw_trigger.h:中的接口下将新的触发器类型实现为单独的内核模块:45::46 47 /*48 * drivers/iio/trigger/iio-trig-sample.c49 * 一种新触发器类型的内核模块实例50 */51 #include <linux/iio/sw_trigger.h>52 53 54 static struct iio_sw_trigger *iio_trig_sample_probe(const char *name)55 {56 /*57 * 这将分配并注册一个IIO触发器以及其他触发器类型特性的初始化。58 */59 }60 61 static int iio_trig_sample_remove(struct iio_sw_trigger *swt)62 {63 /*64 * 这会废弃iio_trig_sample_probe中的操作65 */66 }67 68 static const struct iio_sw_trigger_ops iio_trig_sample_ops = {69 .probe = iio_trig_sample_probe,70 .remove = iio_trig_sample_remove,71 };72 73 static struct iio_sw_trigger_type iio_trig_sample = {74 .name = "trig-sample",75 .owner = THIS_MODULE,76 .ops = &iio_trig_sample_ops,77 };78 79 module_iio_sw_trigger_driver(iio_trig_sample);80 81每种触发器类型在/config/iio/triggers下都有其自己的目录。加载iio-trig-sample82模块将创建“trig-sample”触发器类型目录/config/iio/triggers/trig-sample.83 84我们支持以下中断源(触发器类型)85 86 * hrtimer,使用高分辨率定时器作为中断源87 883.1 Hrtimer触发器创建与销毁89---------------------------90 91加载iio-trig-hrtimer模块将注册hrtimer触发器类型,从而允许用户在92/config/iio/triggers/hrtimer下创建hrtimer触发器。93 94例如::95 96 $ mkdir /config/iio/triggers/hrtimer/instance197 $ rmdir /config/iio/triggers/hrtimer/instance198 99每个触发器可以具有一个或多个独特的触发器类型的属性。100 1013.2 "hrtimer" 触发器类型属性102----------------------------103 104"hrtimer”触发器类型没有来自/config dir的任何可配置属性。105它确实引入了触发目录的sampling_frequency属性。106该属性以Hz为单位设置轮询频率,精度为mHz。