GPIO中断驱动的I2C驱动器结构

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

我有兴趣编写基本的 Linux 内核模块驱动程序。

当有新数据可用时,将触发外部引脚并调用 GPIO 中断。

该设备是基于 I2C 的,因此在触发后我希望可以访问该设备。我的困惑是我是否应该在 GPIO 中断处理程序中或其他时间进行 I2C 读取?我的理解是 GPIO 处理程序是一个阻塞中断,因此您希望尽快退出它。

触发 GPIO 后从内核空间读取 I2C 数据的正确方法是什么?

linux-kernel linux-device-driver gpio i2c
1个回答
0
投票

我的理解是 GPIO 处理程序是一个阻塞中断,因此您希望尽快退出它。

您的意见是正确的!中断处理程序应尽可能短且快,因为它们在同一 CPU 上禁用中断的情况下运行。如果您尝试在 GPIO 中断处理程序中进行 I2C 读取,您可以简单地推迟 I2C 读取操作(使用线程 IRQ 处理程序或通过工作队列调度工作)。

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