android - Android 如何解释 SPI 接收到的输入

标签 android linux-kernel linux-device-driver spi input-devices

这是我关于 stackoverflow 的第一个问题,尽管我一直在阅读这个解决问题的资源。

无论如何,这是我面临的问题:

我正在尝试通过总线 SPI 连接两个评估板:

  • 第一个(数据源)模拟触摸屏,是一个 Linux 发行版(目前:Raspbian)。
  • 第二个是嵌入式 Android。

我想通过 SPI 连接这两个,并将触摸序列从 Linux 发送到 Android(根据多点触摸协议(protocol)(https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt))。 spidev 已启用,但我不知道如何“执行”我将收到的触摸。

据我所知:我不能使用 Android 输入设备 (https://source.android.com/devices/input/input-device-configuration-files.html),因为它不能依赖 SPI 通信。 那么我必须在 linux 内核中创建一个驱动程序吗?在这种特定情况下,“最佳做法”是什么?

提前致谢,您可能会挽救我的实习机会:)

最佳答案

如果您的 Android Linux 内核设置为公开/dev/spidev(或者您可以在内核中进行设置),则您不必创建 Linux 内核模块。您可以通过在 c/c++ 中编写 NDK 包装器来从 Android 访问/dev/spidev。 我已经做到了并且有效。我建议您从编写一个小的 c 程序开始,该程序配置和打开/dev/spidev spi channel ,并发送/接收一些测试数据。成功后,将 c 程序重写为 NDK 包装器库,您可以从 Android 程序访问它。

这里假设 Android 应用是您自己编写的。如果你想让触摸事件一般适用于 Android,我认为你需要将触摸驱动程序编写为内核模块。

关于android - Android 如何解释 SPI 接收到的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774512/

相关文章:

android - 如何在 Android Studio 中使用 PostResponseAsyncTask 将 SharedPreferences 设置为下一个 Activity 值?

java - Proguard 生成错误的字符串资源 ID

linux-kernel - Cygwin:Linux 内核 make clean 不工作

linux - 从源代码构建 Linux 内核 (linux-4.10.10.tar.xz)

android - 无效的 APK 文件

android - 无法通过 Facebook SDK 登录

linux - Linux 中的 init_user 命名空间是什么?

linux - 如何在 Linux 中添加具有 VID/PID 的设备

linux - 获取第4层桥下真实的net_device

linux - 关闭或停止Linux中的不同设备