高通MSM8255 GPS 调试分析

news/2024/11/15 2:45:53/

没事做整理一下GPS的流程,也算给自己一个交代。

 

1.硬件抽象层:

高通MSM的硬件层代码在:hardware/qcom/gps/loc_api下,高通的GPS集成在baseband侧,与Modem部分一样,同样是基于share Memory上高通自有的RPC协议实现。所以高通的硬件层分为两部分,一部分实现的是:硬件抽象层的接口实现,另一部分实现的是基于RPC协议封装的具体控制和数据操作,该部分主要是利用高通的RPC代码生成器生成。两个部分是通过一个glue层粘合在一起的。高通MSM的硬件抽象层在其子目录 libloc_api中,主要在loc_eng.cpp中。loc_eng_ioctl.cpp用于承载到glue层的具体控制和回调。而剩余其它几个文件主要是辅助GPS定位的XTRA和Net Initiated的实现。

GpsInterface接口实现如下:

 高通的GPS硬件抽象层包含GPS数据的“获取”和“解析”,它们都通过RPC上报。然后再调用loc_eng_init注册的回调,向上层上报。

上报部分的实现是基于loc_eng_process_deferred_action函数的线程中,该线程实现一个等待循环,当GPS有数据解析上报时,RPC部分会回调loc_eng_init初始化时的loc_event_cb,该回调函数会激活线程中的等待循环。线程通过loc_eng_process_loc_event函数处理获取数据,并调用loc_eng_report_xxx(xxx代表position、卫星状态sv等),将数据通过上层注册的回调函数进行上报。这部分代码如下:

高通GPS还实现了XTRA与AGPS,其中AGPS的接口在sLocEngAGpsInterface中实现,内容如下:

loc_eng_agps_set_server函数完成对server的配置。硬件抽象层根据loc_eng_set_position_mode中传入的配置,决定是否启用AGPS。其中启动函数为set_agps_server,该函数最终通过RPC写入GPS。



http://www.ppmy.cn/news/540819.html

相关文章

高通核心板MSM8953核心板

核心板特性 A53架构 8核(8*2.2GHz(A53)) 产品尺寸小,便于客户集成,减少产品体积; 支持4G LTE超高速上网,单板兼容移动/联通/电信2G/3G/4G; 支持4128存储器,SD3.0支持128G; 尺寸小…

【Android驱动】高通msm8953背光流程

问题记录:最近遇到一个屏背光的问题,主要就是pwm脚没找到的问题 异常logo: [ 1833.972190] qyc, lcd-backlight mode: 0, bl_level: 353 [ 1833.973325] qyc, mdss_dsi_panel_bklt_pwm [ 1833.978269] Stage 1, level 353 [ 1833.982342] Stage 5 [ 1833…

st18 android 5,高通MSM8255只要1K5!高性价比的安卓机推荐

高通MSM8255/3.3英寸/2300元——索爱Xperia ray ST18i 当前市场上的大多数智能机型,在外观的设计上,或多或少都偏重商务风格,同质化现象也非常严重。而索尼爱立信在今年成功推出的XPERIA系列产品,并没有延续这种趋势,以…

高通MSM8255串口驱动移植

1.在板载信息里面添加东东: a.首先进入kernel/arch/arm/mach-msm/board-msm7x30.c 在结构体struct platform_device *devices[ ] __initdata { };中添加变量&msm_devices_uart3, 配置变量struct msm_gpio uart3_config_data[ ],将GPIO配置成串口模式…

TypeScript中的对象类型(可选属性 只读属性 交叉类型)

一、定义对象类型 在TypeScript中定义对象类型有以下三种方式: 1. 匿名对象类型 匿名对象类型是在定义变量时直接使用花括号{},来定义一个对象类型。例如: const person: { name: string, age: number } { name: John, age: 25 };上述代…

OIE

https://openie.allenai.org/ https://www.jianshu.com/p/a1994336af2d https://meta-guide.com/data-processing/etl/open-information-extraction

Object obj是什么意思?

表示obj是Object类型的变量。

odb

https://www.codesynthesis.com/products/odb/