首页 > 解决方案 > 如何在 linux 中访问 IIO 设备驱动程序

问题描述

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

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

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

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

标签: linuxlinux-device-driver

解决方案


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

#include <linux/i2c-dev.h>

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

此外,您可以安装“i2c-tools”包(apt-get install i2c-tools),安装 i2cset、i2cget 和 i2cdetect 等用户空间工具,这对于测试 I2C 总线和连接到它的设备非常有用。


推荐阅读