首页
学习
活动
专区
圈层
工具
发布

Linux IIO 子系统

Linux 内核为了管理这些日益增多的 ADC 类传感器,特地推出了 IIO 子系统,我们学习如何使用 IIO 子系统来编写 ADC 类传感器驱动。...1、iio_dev 结构体 IIO 子系统使用结构体 iio_dev 来描述一个具体 IIO 设备,此设备结构体定义在include/linux/iio/iio.h 文件中 2、iio_dev 申请与释放...iio_info结构体定义在 include/linux/iio/iio.h 中 5、iio_chan_spec IIO 的核心就是通道,一个传感器可能有多路数据,比如一个 ADC 芯片支持 8 路采集...Linux 内核使用 iio_chan_spec 结构体来描述通道,定义在 include/linux/iio/iio.h 文件中。...Linux 内核默认使能了 IIO 子系统,但是有一些 IIO 模块没有选择上,这样会导致我们编译 驱动的时候会提示某些 API 函数不存在,需要使能的项目如下: -> Device Drivers

2.9K40

MS1112驱动开发(iio框架)

1.1 iio_dev结构体 IIO子系统使用结构体iio_dev来描述一个具体IIO设备,此设备结构体定义在include/linux/iio/iio.h文件中,结构体内容如下: 571 struct...iio_info结构体定义在 include/linux/iio/liio.h中,结构体定义如下(有省略): 445 struct iio_info { 446 const struct...扩大的倍数我们不能随便设置,而是要使用Linux定义的倍数,Linux 内核里面定义的数据扩大倍数,或者说数据组合形式如表所示: 组合宏 描述 IIO_VAL_INT 整数值,没有小数。...Linux 内核使用IIO_CHAN_INFO_RAW和IIO_CHAN_INFO_SCALE这两个宏来表示原始值以及分辨率,这两个宏就是掩码。...Linux内核使用iio_chan_spec结构体来描述通道,定义在include/linux/iio/iio.h文件中,内容如下: 238 struct iio_chan_spec { 239

9410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608

    打开bing.com,搜“ICM20608 linux driver”,发现这个网址: https://github.com/torvalds/linux/blob/master/drivers/iio.../imu/inv_mpu6050/inv_mpu_spi.c 大胆假设,在linux内核中应该也有驱动,找到: $ cd drivers/iio/imu/inv_mpu6050$ grep "20608...1.3 SPI控制器驱动程序 1.3.1 找到驱动程序 根据上述设备树信息,在Linux内核源码目录下搜"fsl,imx6ul-ecspi",就可以找到SPI控制器的驱动程序: book@100ask:...~/100ask_imx6ull-sdk/Linux-4.9.88/drivers$ grep "fsl,imx6ul-ecspi" * -nrBinary file built-in.o matchesspi.../iio/devices/iio:device1目录,读取里面的文件,同时转动开发板,可以观察到值在变化: [root@imx6ull:~]# cd /sys/bus/iio/devices/iio\

    2.7K20

    SIGCOMM2023 | 主机拥塞控制

    为了证明这一点,我们使用 ~800LOC 在 Linux 内核中执行 hostCC 的端到端实现,并与未经修改的 Linux DCTCP 一起对其进行评估。...主机拥塞信号 hostCC 使用 IIO 缓冲区占用率作为拥塞信号。使用 IIO 占用作为主机拥塞信号的好处如下所示。...其次,IIO 占用率可以与另一个统计数据(IIO 插入率,定义为 PCIe 将数据插入 IIO 缓冲区的速率)相结合,以测量各种其他有用的指标;例如,瞬时 PCIe 吞吐量(捕获 NIC 缓冲区耗尽的速率...)等于瞬时 IIO 插入速率乘以缓存行大小,IIO 占用率和 IIO 插入率可以使用通常可用的两个寄存器来测量商用硬件,允许 hostCC 无需任何硬件修改/支持即可工作。...最后,IIO 测量是在 NIC 到内存数据路径之外的处理器互连处完成的; 因此,IIO 占用测量不受主机拥塞的影响。

    63410

    快速去掉不用的linux kernel模块

    快速去掉不用的linux kernel模块 由于要满足尽量多的客户需求,Xilinx的默认linux kernel的配置,包含了尽可能多的常用模块。实际嵌入式产品中,很多模块用不到。...如果在linux kernel的编译目录,搜索所有目标(.o)文件,就能发现那些模块被编译到linux kernel中。对于不用的模块,可以配置linux kernel,去掉它们。...PetaLinux工程,修改linux kernel的配置后,保存在文件project-spec/meta-user/recipes-kernel/linux/bsp.cfg里。...bsp.cfg linux-xlnx_%.bbappend 如果想快速去掉不用的模块,可以在文件project-spec/meta-user/recipes-kernel/linux/bsp.cfg...CONFIG_MEDIA_PLATFORM_SUPPORT is not set # CONFIG_MEDIA_TEST_SUPPORT is not set # CONFIG_IOMMU_SUPPORT is not set # CONFIG_IIO

    1.8K10

    我从600场技术面试中总结出的5个常见问题

    1interviewing.io 的模拟面试 在 IIO 上进行面试时,我们按 4 分的标准给面试者打分。1 分表示他们做得非常糟糕,4 分表示他们在这方面做得非常好。...2我在面试中看到的常见问题 以下是我在面试中看到的最主要的问题,不只是在 IIO 上,很多人都会有类似的问题出现。我希望这些建议对你有帮助。...3建 议 当我们在 IIO 的面试结束时,我喜欢对他们的面试流程以及我认为他们可以通过实践进行改进的地方提出大量反馈。一般情况下,我会花 10 到 20 分钟来回答别人的问题,有时会超过一小时。...我喜欢在 IIO 上帮助别人。 以下是我给大家的一些建议。 沟通 没有什么比听自己的录音更糟糕了。...2017 年夏天,他加入 interviewing.io 成为一名签约面试官,他非常喜欢 IIO 撰写的数据分析文章,这些文章帮助我们揭露和消除科技行业采访中的偏见。

    50420
    领券