高通MSM8255 GPS 调试分析
来源:互联网 发布:淘宝店引流量方法 编辑:程序博客网 时间:2024/06/05 17:03
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。
下面是GPS从上层调用到下层,再把数据上报给上层的流程图:
- 高通MSM8255 GPS 调试分析
- 高通MSM8255 GPS 调试分析
- 高通MSM8255 GPS 调试分析
- 高通MSM8255 GPS 调试分析&&Android系统之Broadcom GPS 移植
- 高通MSM8255串口驱动移植
- 高通MSM8255串口驱动移植
- 高通 WCNSS crash分析调试
- 高通CP Crash分析调试
- gps调试
- 主流手机CPU及机型介绍!手机CPU生产厂商介绍!高通QSD8250、MSM8255、TI OMAP 3630、nVIDIA Tegra 2介绍
- 高通WIFI GPS 测试demo
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口) .
- android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)
- BCM4330 Android OS Wireless Develop
- android sensors整个流程
- Android下的Wifi (上层流程)
- C++之名字隐藏
- Android 中的WiFi学习笔记——经典
- 高通MSM8255 GPS 调试分析
- Subversion服务器搭建 (安装步骤)
- SVN
- 单片机学习
- Ruby 计算数组中对象的属性的平均值
- 分享一个固定行头列头的脚本
- js判断某html元素是否存在
- 模块中的THIS_MODULE
- oracle sql执行计划存储在什么位置?