背景:
我正在尝试将新传感器集成到 Android 平台中。出于开发目的,我使用的是 Nvidia Jetson-TK1 开发板和 Spark Core。Spark Core 与传感器通信,并通过 USB 串行输出数据。
在高层次上,我的需求是:
- 能够通过 USB 将串行数据读/写到 Spark Core
- 使用 API 编写的 Android Service 处理数据
- 高速完成这一切
将来当我在使用 HAL 方面变得更有经验时,我可能会完全消除 Spark Core,并使用 Jetson 上的 GPIO 引脚来控制传感器 IC。
进入细节:
我可以通过 command 读取数据cat /dev/ttyACM0
,但我正在寻找一种更底层的方法。我想使用 HAL 与设备进行通信。具体来说,我希望 Spark Core 在cat /proc/bus/input/devices
.
然后我希望能够使用getevent /dev/input/eventXX
.
主要问题:
这是我的方法:
- 在本机 C 代码中查找或开发 USB 设备驱动程序
- 在Android源码中使用JNI编译驱动
- 使用 HAL 定义创建 HAL 模块(.so 二进制文件)
- 将 Android 源代码编译到内核中
- 闪到 Jetson
- 利润
这个对吗?有人能指出我第一步的方向吗?我很困惑,因为我知道 Android 是基于 Linux 内核构建的,而 Linux 内核应该内置 USB 设备驱动程序(对吗?)