RK プラットフォームのセンサー フレームワーク HAL レイヤーは他の HAL レイヤーと互換性があるため、ライブラリ

元のリンク: https://blog.csdn.net/qq_41779533/article/details/120839515
 

1. まず、それぞれのセンサー フレームワークが正常にデバッグされ、各プラットフォームがデータを正常に表示できることを確認します 2.
複数の HAL レイヤーのライブラリをマージしてコンパイルします
1. /device/rockchip/rkxxxx/BoardConfig.mk を開き
、USE_SENSOR_MULTI_HAL を開きますマクロ、USE_SENSOR_MULTI_HAL := true。そうでない場合は、最後に追加してください。


2. hals.conf を記述し、コンパイルする 2 つのライブラリの名前を追加します。ソース コード ディレクトリは /device/rockchip/rkxx/ にあります。目的は、このディレクトリから /system/stc/sensors/ にコピーすることです。 . hal.conf ファイルの内容 以下のように、このステップでは lib と lib64 の両方をリストする必要があります。

/vendor/lib/hw/lib***1.so
/vendor/lib64/hw/lib***1.so
/vendor/lib/hw/lib***2.so
/vendor/lib64/hw/lib***2.so

3. /hardware/libhardware/modules/sensors/Android.mk でコンパイル済みモジュールの名前を変更します。これは最終的にマージされたものなので、lib***3.so という名前を付けます。ライブラリ名が間違っている場合は、センサー HAL レイヤー サービスが機能できなくなります。来てください。

LOCAL_MODULE := sensors.$(TARGET_BOARD_HARDWARE)

4. コンパイルしてコピーする必要があるファイルを /device/rockchip/rkxx/device.mk に追加します。

PRODUCT_PACKAGES += \
        lib***1 \
        lib***2
PRODUCT_COPY_FILES += \
         $(LOCAL_PATH)/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf

5. 最終的なコンパイルでは、3 つの so ライブラリ ファイルが /vendor/lib/hw/ に配置され、hals.conf が /vendor/etc/sensors/ にコピーされます。この時点でどのセンサーを使用する場合は、lib*** 3. so は自動的に lib***1.so または lib***2.so を呼び出します。

テスト効果: 両方の hal が呼び出されます

メモを取り、元の著者に敬意を表すために記事を再印刷します (qq_41779533)

おすすめ

転載: blog.csdn.net/lsh670660992/article/details/132511632