高通MSM8255 GPS 调试分析
来源:互联网 发布:俊熙喜欢恩熙吗 知乎 编辑:程序博客网 时间:2024/06/05 11:48
http://blog.csdn.net/dwyane_zhang/article/details/6775738
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接口)
- dx_auth
- 官方解读Intent之一
- Mac OS X 键盘快捷键
- MES项目导入-注意点-MES项目的实施经验
- 一致性Hash算法
- 高通MSM8255 GPS 调试分析
- UNICODE工程中,由十六进制的unicode字符内码转换成unicode字符
- Centos5.5 下的永久添加静态路由方法
- 最佳的75个安全测试工具
- ZeroMQ:还在研究为什么epoll比select更好吗?
- JAVA2 & Jetty Class Loading
- 成为高级嵌入式系统硬件工程师要具备的技能
- Windows API User32.dll
- 例程管理