如何在Linux中访问IIO设备驱动程序

时间:2018-06-22 09:33:12

标签: linux linux-device-driver

我是Linux设备驱动程序的菜鸟。

我有一个IIO驱动程序(用于OPT3001环境光传感器),它通过I2C总线运行,该总线已在内核中成功编译(版本3.18)。修改设备树以匹配驱动程序中存在的兼容字段。

问题是如何访问此驱动程序以在用户空间中获取一些数据?

驱动程序在结构中注册了一些用于读取和写入的回调。我应该直接在C文件中调用它们吗?

2 个答案:

答案 0 :(得分:0)

您可以使用以下提供的用户空间API:

#include <linux/i2c-dev.h>

使用它可以打开/ dev / i2c-X总线(X = 0,1,2,...),使用ioctl调用设置设备地址,并使用读写操作进行读写操作公共汽车。

此外,您可以安装“ i2c-tools”软件包(apt-get install i2c-tools),以安装诸如i2cset,i2cget和i2cdetect之类的用户空间工具,对于测试I2C总线及其连接的设备非常有用。 / p>

答案 1 :(得分:0)

您有不同的可能性:

  • 您的驱动程序提供了一个/ dev节点,您可以在C文件中打开它。
  • 您的驱动程序通过sysfs提供信息。

在/ dev节点的情况下,您可以访问文件操作(打开,读取,写入,ioctl)。您只需打开文件1次,每次read()调用都会从传感器读取值。

对于sysfs,您应该在/ sys / class / ...中找到要打开/读取的文件。