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