android gps hal大概分析

本文介绍了如何在Android系统中添加和编译GPS HAL模块,包括修改Android.mk文件、编译生成so库,并分析了HAL层的关键结构体hw_module_t,以及GPS设备的打开、接口提供等过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gps android hal层分析
我用的UT4412的板子由于上面没有gps模块,自己找到了一个北斗模块给上一个3.3的电,TX、RX接到板子的串口上。
我做的gps是在网上下载的代码,下载之后代码放在hardware/libhardware/modules/下面,修改上一层的Android.mk 添加gps模块   如下:
hardware_modules := gralloc hwcomposer audio nfc gps hello
include $(call all-named-subdir-makefiles,$(hardware_modules))

在gps目录下添加gps.c Android.mk文件 如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_SRC_FILES := hello.c
LOCAL_MODULE := hello.default
include $(BUILD_SHARED_LIBRARY)

模块化编译之后会在out/target/product/smdk4x12/obj/lib下生成gps.default.so,如果目录下还有gps.goldfish.so文件要把它删除,不删除会导致调不到自己gps.default.so库文件,然后打包 make snod,通过fastboot下载到板子上,在网上下载一个gps测试软件通过adb下载到板子上,打开软件就可以测试。

下面分析一下HAL层的gps代码:
hw_module_t 这个结构体是hal层的关键,我们看到hw_module_t结构体是怎么定义的
const struct hw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值