1

Android (Samsung Galaxy S3 の Jelly Bean) でのセンサー データの取得に取り組んでいます。私は Android/Linux 内部に不慣れです。

センサーサンプルがドライバーからユーザー空間にどのように上昇するかについて、Android ソースを読み込もうとしています。参考までにこちらをご覧ください。SensorManager から SensorService に至るまで、すべてを行うことができます。カーネル モジュールのロード インフラストラクチャ、イベント入力デバイスの登録、およびドライバー (Galaxy S3 のオープンソースの加速度センサー ドライバーなど) での input_report_rel() 関数呼び出しを確認できます。しかし、その間、つまりハードウェア抽象化レイヤーで迷子になります。SensorService (SensorDevice の助けを借りて) は、最終的に構造体sensors_poll_device_t の関数ポインターを介して HAL を呼び出します。ヘッダー ファイルは /hardware/libhardware/include/hardware にあります。

HAL はどこに実装されていますか? HAL とカーネルの入力サブシステム間の相互作用はどのように実行されますか? SensorService は、プラットフォームで使用可能なセンサーと、ユーザーランドからそれらにアクセスするためのファイルをどのように検出しますか?

どんな種類の助けも大歓迎です!

4

2 に答える 2

1

Android Sensors HAL がどこに適合するか、およびその役割の概要については、2012 年の Design West プレゼンテーションの統合センサーを Android ハードウェアに統合するスライドを参照してください。

スライドでは、広く利用可能な SensorBase クラスを使用して入力イベント ベースのセンサー ドライバーを読み取る方法と、HAL が get_sensors_list 関数を実装して、この特定のデバイスが持つセンサーを SensorService に知らせる方法について詳しく説明しています。

于 2013-02-20T06:51:16.430 に答える
1

ビーグルボーン (TI 開発ボード)、センサー HAL ソース コードは /device/ti/am335xevm/libsensors/ にあります。キーワード「libsensors」を検索するのが簡単な方法です。

于 2013-07-04T08:52:50.250 に答える