ST传感器芯片HAL按官方文档移植后,测试一直掉不起来,加的日志没出来。经过分析,是系统自带了一个HAL,影响的。
按照官方文档,移植HAL后,在/device/<vendor\>/<board\>/device.mk*路径增加PRODUCT_PACKAGES += sensors.{TARGET_BOARD_PLATFORM}。生成的sensors.{TARGET_BOARD_PLATFORM}.so会被在刷系统的时候安装到目标机器的/system/vendor/lib/hw/位置。
我进入到目标机器的hw目录下查看,发现有两个sensors.*.so,另一个应该是系统源码自带的。源码搜索后,发现在hardware/rockchip/sensor/st/Android.mk有配置如下图。该配置会生成一个sensors.$(TARGET_BOARD_HARDWARE).so文件,且安装到目标机器hw目录下。
LOCAL_MODULE := sensors.$(TARGET_BOARD_HARDWARE)
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_RELATIVE_PATH := hw
在sensor的HAL逻辑中,打开so是有检索顺序的:
第一顺序:sensors.$(TARGET_BOARD_HARDWARE).so
第二顺序:sensors.{TARGET_BOARD_PLATFORM}.so
第三顺序:sensors.default.so
考虑到迅速实现,我直接在hardware/rockchip/sensor/st/Android.mk中的文件名后面加字符串,让该so名字改变,不影响我们的目标文件调用就行。修改后如下图:
修改完成后,直接编译刷机就行。完成后,开机就能看到我们移植的HAL中添加的日志了,说明移植的HAL已经默认被系统调起来了。
新人入行,经验分享,如有所误,欢迎指出~文章来源:https://www.toymoban.com/news/detail-686828.html
版权归属:深圳市琪智科技有限公司-花花文章来源地址https://www.toymoban.com/news/detail-686828.html
到了这里,关于【android12-linux-5.1】【ST芯片】HAL移植后没调起来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!