バックグラウンド:
新しいセンサーを Android プラットフォームに統合しようとしています。開発目的で、Nvidia Jetson-TK1 開発ボードと Spark Core を使用しています。Spark Core はセンサーと通信し、USB 経由でシリアルにデータを出力します。
大まかに言えば、私のニーズは次のとおりです。
- USB経由でSpark Coreにシリアルデータを読み書きできるようにするため
- APIで書かれたAndroid Serviceでデータを扱うには
- これらすべてを高速で達成する
将来、HAL の操作に慣れてきたら、Spark Core を完全に削除し、Jetson の GPIO ピンを使用してセンサー IC を制御する可能性があります。
詳細について:
コマンドを使用してデータを読み取ることができますがcat /dev/ttyACM0
、より低レベルのアプローチを探しています。HAL を使用してデバイスと通信したいと考えています。具体的には、I のときに Spark Core が表示されるようにしcat /proc/bus/input/devices
ます。
次に、を使用してデータを読み取れるようにしたいと考えていますgetevent /dev/input/eventXX
。
主な質問:
これが私のアプローチです:
- ネイティブ C コードで USB デバイス ドライバーを検索または開発する
- JNI を使用して、Android ソース コード内のドライバーをコンパイルします。
- HAL 定義を使用して HAL モジュール (.so バイナリ) を作成する
- Android ソースコードをカーネルにコンパイルする
- ジェットソンにフラッシュ
- 利益
これは正しいです?誰かが私が最初のステップとして何をすべきかを教えてもらえますか? AndroidはLinuxカーネル上に構築されており、LinuxカーネルにはUSBデバイスドライバーが組み込まれている必要があることを知っているため、私はほとんど混乱しています(そうですか?)