本文档在broadcom21553平台代码上编译GPS deamon(glgps) 和so文件,并将两个文件移植到8810机器上,

并使其定位成功

GPS SDK:spreadtrum_T8810android_android2_3_2.18.11.130823

编译平台:broadcom21553 2.3.12

以下为相关步骤(都以实验验证成功,仅供参考):
一,要修改的文件:
1,
Broadcom21553/vendor/brcm/config/ buildspec.bcm21553_acar10DSRef(该文件为整体编译android代码时的config配置),
在开始编译后,会将里面的配置写到android根目录:buildspec.mk
具体方法为:
在buildspec.bcm21553_acar10DSRef中加入:2.18.11.130823/vendor/broadcom/gps/customers/spreadtrum/Makefile.spreadtrumT8810android.mak文件中的config选项:
内容如下:
CONFIG_HAL_SERIAL_TYPE=/dev/i2c-1
CONFIG_HAL_CMD=yes
CONFIG_HAL_CMD_FILE=/data/gps/glgpsctrl
CONFIG_HAL_LTO=yes
CONFIG_HAL_LTO_DIR=/data/gps/
CONFIG_HAL_LTO_FILE=lto.dat
CONFIG_HAL_NMEA_PIPE=yes
CONFIG_HAL_NMEA_FILE=/data/gps/gpspipe
CONFIG_HAL_NV=yes
CONFIG_HAL_NV_DIR=/data/gps/
CONFIG_HAL_NV_FILE=gldata.sto
CONFIG_HAL_RRC=no
#CONFIG_HAL_NO_GPIO=yes
CONFIG_HAL_GPIO_SYSFS=yes
CONFIG_HAL_CATCH_SIGNALS=yes
CONFIG_HAL_LCS_API=yes
#CONFIG_HAL_LOG_ANDROID=yes
CONFIG_HAL_TIME_MONOTONIC=yes
CONFIG_HAL_HAVE_TIMEOUT_EVENT=yes
CONFIG_HAL_I2C_DEV=yes
CONFIG_HAL_SMBUS_I2C=yes
CONFIG_HAL_INIT_CUSTOM=yes
CONFIG_HAL_SUPL=true
ENABLE_TLS=yes
#LTO_LICENSEE=brcmdev
# Enable CMCC Supl log
CONFIG_HAL_SUPLLOG=yes

TARGET_RELEASE_CFLAGS=-O2 -fno-strict-aliasing

二,加入库文件:
2.18.11.130823/vendor/broadcom/gps/customers/spreadtrum/glhal/T8810android/lib/libglhal_spreadtrumT8810android.a
2.18.11.130823/vendor/broadcom/gps/customers/spreadtrum/glhal_supllog/lib/libglhal_supllog_spreadtrumT8810android.a
2.18.11.130823/vendor/broadcom/gps/customers/spreadtrum/gllbs_distr/lib/libgllbs_spreadtrumT8810android.a
2.18.11.130823/vendor/broadcom/gps/customers/spreadtrum/gll_distr/lib/libgll_spreadtrumT8810android.a
2.18.11.130823/vendor/broadcom/gps/customers/spreadtrum/glnet_distr/lib/libglnet_spreadtrumT8810android.a
2.18.11.130823/vendor/broadcom/gps/customers/spreadtrum/gltools_distr/lib/libgltools_spreadtrumT8810android.a
将以上的库文件拷贝到:
Broadcom21553/prebuilt/android-arm/gps/
为了不报编译错误:将库重命名,比如:libglhal_spreadtrumT8810android.a改为:libglhal.a(其他类似)
并修改Android.mk文件(内容如下):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := libgll.a
LOCAL_MODULE := libgll
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := user
LOCAL_MODULE_SUFFIX := .a
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := libglnet.a
LOCAL_MODULE := libglnet
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := user
LOCAL_MODULE_SUFFIX := .a
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := libgllbs.a
LOCAL_MODULE := libgllbs
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := user
LOCAL_MODULE_SUFFIX := .a
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := libgltools.a
LOCAL_MODULE := libgltools
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := user
LOCAL_MODULE_SUFFIX := .a
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_SRC_FILES :=  libglhal_supllog.a
LOCAL_MODULE :=  libglhal_supllog
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := user
LOCAL_MODULE_SUFFIX := .a
include $(BUILD_PREBUILT)

ifeq ($(CONFIG_BRCM_AGPS_PKCS15_ENABLE),true)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := libpkcs15codec.a
LOCAL_MODULE := libpkcs15codec
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_TAGS := user
LOCAL_MODULE_SUFFIX := .a
include $(BUILD_PREBUILT)

endif #CONFIG_BRCM_AGPS_PKCS15_ENABLE

三,拷贝gps源码:
将2.18.11.130823/vendor/broadcom/gps/下的 allPartners/拷贝到Broadcom21553/hardware/broadcom/gps/并修改权限为755

四,重新编译:
1,如果出现:
build/core/base_rules.mk:166: *** hardware/broadcom/gps/allPartners/deliverables/cbee_gen/unix/../../../..: MODULE.TARGET.STATIC_LIBRARIES.libgll already defined by prebuilt/android-arm/gps。 停止。

解决办法:
cd hardware/broadcom/gps/allPartners/deliverables/
rm -rf cbee_gen/

2,如果出现:
build/core/base_rules.mk:166: *** hardware/broadcom/gps/allPartners/deliverables/glhal/unix/../../../..: MODULE.TARGET.STATIC_LIBRARIES.brcmgpslcsapi already defined by hardware/broadcom/gps/allPartners/deliverables/middleware_connectors/unix/Android/gps_jni。 停止。

解决办法:
cd hardware/broadcom/gps/allPartners/deliverables/middleware_connectors/unix/Android/gps_jni
vi Android.mk
将LOCAL_MODULE := brcmgpslcsapi
修改为:LOCAL_MODULE := brcmlcsapi

3,若出现:
make: *** 没有规则可以创建“out/target/product/bcm21553/obj/EXECUTABLES/testclient_intermediates/LINKED/testclient”需要的目标“out/target/product/bcm21553/obj/STATIC_LIBRARIES/libgpslcsapi_intermediates/libgpslcsapi.a”。 停止。
make: *** 正在等待未完成的任务....
解决办法:
rm -rf allPartners\deliverables\middleware_connectors\unix\lcsapi\test_ril

五,成功编译以后:
将out/target/product/brcm21553/下面的system/bin/glgps和system/lib/hw/gps.brcm.so adb push进8810机器进行验证即可
注意:
1,  在push之前要将机器中的两个文件都删除
2,  将so文件改名字为gps.sprdbp.so

六,进行定位验证:
从开启apk到定位成功花了8分钟22秒。附件为相应log。
。。。
12:15:45.790 &549625E GL_NMEA[0][$QZGSA,A,3,,,,,,,,,,,,,6.6,4.7,4.6*2F
12:15:45.790 &549625E GL_NMEA[0][$PGLOR,0,FIX,502.3*27
12:15:45.790 TTFF=08:22
12:15:45.790 $549625I TTFF @ <gps_time WeekNum="1690" TowMs="274558589"/>
12:15:45.790 &549625E GL_NMEA[0][$GPRMC,041543.59,A,3150.492930,N,11716.600326,E,000.0,,300512,,,A*7D
。。。

移植GPS到8810机器(coolpad)相关推荐

  1. rk3568 移植 GPS/GNSS 模组

    rk3568 移植 GNSS 模组 (SIM68D UM220) 部分LTE模组(EC20 M750) 仅有 GPS ,但场景需求 GNSS 定位功能,此时需要额外增加 GNSS的模组功.单GPS/G ...

  2. (GPS移植三部曲)Linux下移植GPS应用程序之常见问题的分析与解决方法之三

    GPS应用程序移植常见问题分析与解决 ID Issue Description Analyse Causation Solution 1 导航系统一运行,就退出 使用ps命令,发现进程中cld_nav ...

  3. 导航上显示某个地点已关闭什么意思_8款手机GPS导航横向对比测评(留存备用)科技美学...

    以下为文字版 测试的机型我们选取了各个价位最近热门的八台手机,分别是红米Note7.诺基亚X7.小米8.努比亚X.荣耀V20.华为Mate20Pro.三星Note9.iPhone XS Max. 其中 ...

  4. [计算机组成原理]机器数及特点

    文章目录 一.为什么研究及其内的数据表示 二.机器内的数据表示 三.常见机器的特点 1.原码 2.反码 3.补码 4.移码(增码) 一.为什么研究及其内的数据表示 1.目的:组织数据,方便计算机硬件直 ...

  5. 嵌入式系统概念以及嵌入式基础知识

    嵌入式系统概念以及嵌入式基础知识 \\\插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的(禾厶-亻言-手戈).最近比较闲,带做毕设,带学生参加省级以上比赛/ ...

  6. cmd导入oracle库文件,cmd 导入oracle数据库

    从服务器将Oracle数据库导出到本地Oracle数据库的方法 原文:从服务器将Oracle数据库导出到本地Oracle数据库的方法 1.将服务器上的Oracle数据库导入到本地   在CMD模式下执 ...

  7. linux c va_list 32位和64位的差异

    在将程序从32位机器移植到64位机器的过程中经常出现一些奇奇怪怪的错误,这里记录一下在使用可变参数的过程中导致在32位机器上正常运行的程序移植到64位机器上之后出现段错误的发现过程以及解决方案. 首先 ...

  8. 开发日记-20190523 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》

    前言 今天其实挺累的,也没有什么特别的感想,因为部门还处于起步阶段,很多流程真的还是相当欠缺,所以一些时候我对于需求的理解其实真的很尴尬,结果就导致了这次做的东西牛头不对马嘴,浪费了大量的时间在完全没 ...

  9. ROS探索总结(七)(八)(九)——smartcar源码上传 键盘控制 操作杆控制

    ROS探索总结(七)--smartcar源码上传 看到前面写的博客还是帮助了很多ROS的学习者,我感到非常荣幸.其实我也是一名ROS的新手,ROS的相关资料少,上手难度大,我现在也在摸索着学习,还希望 ...

最新文章

  1. bmp文件头_「正点原子FPGA连载」第十九章SD卡读BMP图片LCD显示
  2. 题目1444:More is better
  3. 管道命令和xargs的区别(经典解释)
  4. IBatisNet基础组件
  5. 在Powershell中禁止执行脚本
  6. FireBug实用指南
  7. 线程间通信的几种方法_并发编程中的线程间通信
  8. Jmeter BeanShell采样器提取接口响应并传递(三)
  9. 人脸对齐(十四)--LPFA
  10. (原創) 如何控制DE2 VGA輸出時某座標的顏色? (IC Design) (DE2) (Quartus II)
  11. CentOS桥接网卡配置
  12. python基于pip和conda配置国内安装源,提升下载安装性能
  13. SpringMvc 最新jar包下载
  14. 怎么训练 GAN 网络
  15. Android动态换肤框架PrettySkin原理篇(一)- LayoutInflater的理解及使用
  16. EXCEL——提取身份证中的出生年月日
  17. windows使用scrapy爬取微信评论
  18. ArrayList和LinkedList的底层源码之我见
  19. 【NOI模拟赛】黑色大桥(DP优化,李超树)
  20. RobotStudio仿真—Smart组件创建动态夹具

热门文章

  1. 一文掌握常用的机器学习模型
  2. 基于51单片机的流水灯循环点亮
  3. python拼多多领现金_拼多多天天领现金最后都是1分怎么办?领现金活动规则
  4. eval()替代方法
  5. 零基础学python实战答案-Python编程从零基础到项目实战 完整PPT+习题答案
  6. 跟着鬼哥学爬虫-10-python微信-5-加上了人工智能回复!
  7. 云产品泛滥!小生来理一理各种云产品的区别~
  8. mysql按周统计某维度指标(week与weekday)
  9. Cross-modal Retrieval(跨模态检索)
  10. 怎么给Win10分屏?