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

问题描述 投票:0回答:3

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

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

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

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

linux linux-device-driver
3个回答
0
投票

你有不同的可能性:

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

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

如果是 sysfs,您应该在 /sys/class/... 中找到要打开/读取的文件


0
投票

使用 libiio - IIO 设备的用户空间库。


-1
投票

您可以使用以下提供的用户空间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 总线和连接到它的设备非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.