1、平台:rk3128  android5.1
2、所需资源:
gps.default.so  (android5.1 GPS库)
3、移植:
32位系统下,将gps.default.so文件放在目录/system/lib/hw下,(rk3128)
64位系统下,将gps.default.so文件放在目录/system/lib64/hw下。
eg:
4、开启android gps支持(rk3128默认没有开启)
方法一:(推荐)
device/rockchip/common/BoardConfig.mk文件中,
# product has GPS or not
BOARD_HAS_GPS := true    (false 改为 ture)(使支持gps)
方法二:(不推荐)
device/rockchip/common/device.mk +340
将红框false改为ture
5、设置默认定位模式以及打开gps log
①persist.gps.start属性,为gps即gps模式,为agps即为agps模式,这里设置为gps模式
②Hal库的日志打印是通过安卓属性persist.gpslog.start控制的,属性值为1时,开启打印,为0时关闭打印
如下:
vim ./system/core/rootdir/init.rc
6、调试
① 通过指令getprop | grep gps查询gps相关属性值
② logcat | grep -i  "gps" 查询相关gps log
③底层调试at命令
at+zginit
at+zgmode=3
at+zgport=2
at+zgnmea=31
at+zgmeasure=1
t+zgrun=2
补充:
①安装相关测试apk测试gps是否正常!
②使用配套的gps天线,并处于空旷地段调试
7、相、关知识补充

关于android定位方式
android 定位一般有四种方法,这四种方式分别是GPS定位、WIFI定位、基站定位、AGPS定位。
1、 Android GPS
需要GPS硬件支持直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块现在大部分的智能机应该都有了。通过GPS方式准确度是最高的但是它的缺点也非常明显。
1、 比较耗电
2、 绝大部分用户默认不开启GPS模块
3、 从GPS模块启动到获取第一次定位数据可能需要比较长的时间
4、 室内几乎无法使用。
这其中缺点2、3都是比较致命的。需要指出的是GPS走的是卫星通信的通道在没有网络连接的情况下也能用。
2、 Android基站定位
Android基站定位只要明白了基站/WIFI定位的原理自己实现基站/WIFI定位其实不难。基站定位一般有几种:第一种是利用手机附近的三个基站进行三角定位,由于每个基站的位置是固定的,利用电磁波在这三个基站间中转所需要时间来算出手机所在的坐标;第二种则是利用获取最近的基站的信息,其中包括基站 id、location area code、mobile country code、mobile network code和信号强度将这些数据发送到google的定位web服务里,就能拿到当前所在的位置信息,误差一般在几十米到几百米之内。其中信号强度这个数据很重要。
3、 Android Wifi定位
根据一个固定的Wifi MAC地址通过收集到的该Wifi热点的位置然后访问网络上的定位服务以获得经纬度坐标。因为它和基站定位其实都需要使用网络所以在Android也统称为Network方式。
4、 AGPS定位
AGPS(AssistedGPS)辅助全球卫星定位系统是结合GSM或GPRS与传统卫星定位利用基地台代送辅助卫星信息以缩减GPS芯片获取卫星信号的延迟时间受遮盖的室内也能借基地台讯号弥补减轻GPS芯片对卫星的依赖度。和纯GPS、基地台三角定位比较,AGPS能提供范围更广、更省电、速度更快的定位服务。理想误差范围在10公尺以内,日本和美国都已经成熟运用AGPS于LBS服务(Location Based Service)基于位置的服务。AGPS技术是一种结合了网络基站信息和GPS信息对移动台进行定位的技术,可以在GSM/GPRS、WCDMA和CDMA2000网络中进行使用。该技术需要在手机内增加GPS接收机模块并改造手机的天线,同时要在移动网络上加建位置服务器、差分GPS基准站等设备。AGPS解决方案的优势主要体现在其定位精度上在室外等空旷地区其精度在正常的GPS工作环境下可以达到10米左右,堪称目前定位精度最高的一种定位技术。该技术的另一优点为首次捕获GPS信号的时间一般仅需几秒,不像GPS的首次捕获时间可能要2-3分钟。
模块输出信息主要包括4个部分:
1、GPS定位信息GPGGA(Global Positioning SystemFix Data)
[html] view plaincopyprint?
  1. $GPGGA,063740.998,2234.2551,N,11408.0339,E,1,08,00.9,00053.A,M,-2.1,M,,*7B 
  2. $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF> 
  3. <1> UTC时间,hhmmss(时分秒)格式 
  4. <2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输) 
  5. <3> 纬度半球N(北半球)或S(南半球) 
  6. <4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输) 
  7. <5> 经度半球E(东经)或W(西经) 
  8. <6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算 
  9. <7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输) 
  10. <8> HDOP水平精度因子(0.5~99.9) 
  11. <9> 海拔高度(-9999.9~99999.9) 
  12. <10> 地球椭球面相对大地水准面的高度 
  13. <11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空) 
  14. <12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空) 
$GPGGA,063740.998,2234.2551,N,11408.0339,E,1,08,00.9,00053.A,M,-2.1,M,,*7B
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3> 纬度半球N(北半球)或S(南半球)
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5> 经度半球E(东经)或W(西经)
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
<8> HDOP水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)

2、当前卫星信息GPGSA(GPS DOP and ActiveSatellites)
[html] view plaincopyprint?
  1. $GPGSA,A,3,06,16,14,22,25,01,30,20,,,,,01.6,00.9,01.3*0D 
  2. $GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF> 
  3. <1>模式 :M = 手动, A = 自动。 
  4. <2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。 
  5. <3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。 
  6. <4> PDOP位置精度因子(0.5~99.9) 
  7. <5> HDOP水平精度因子(0.5~99.9) 
  8. <6> VDOP垂直精度因子(0.5~99.9) 
  9. <7> Checksum.(检查位). 
$GPGSA,A,3,06,16,14,22,25,01,30,20,,,,,01.6,00.9,01.3*0D
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>
<1>模式 :M = 手动, A = 自动。
<2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。
<3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。
<4> PDOP位置精度因子(0.5~99.9)
<5> HDOP水平精度因子(0.5~99.9)
<6> VDOP垂直精度因子(0.5~99.9)
<7> Checksum.(检查位).

3、可见卫星信息GPGSV(GPS Satellites in View)     
[html] view plaincopyprint?
  1. $GPGSV,2,1,08,06,26,075,44,16,50,227,47,14,57,097,44,22,17,169,41*70 
  2. $GPGSV,2,2,08,25,49,352,45,01,64,006,45,30,13,039,39,20,15,312,34*7A 
  3. $GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF> 
  4. <1> GSV语句的总数 
  5. <2> 本句GSV的编号 
  6. <3> 可见卫星的总数,00 至 12。 
  7. <4> 卫星编号, 01 至 32。 
  8. <5>卫星仰角, 00 至 90 度。 
  9. <6>卫星方位角, 000 至 359 度。实际值。 
  10. <7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。 
  11. <8>Checksum.(检查位). 
  12. 第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。 
$GPGSV,2,1,08,06,26,075,44,16,50,227,47,14,57,097,44,22,17,169,41*70
$GPGSV,2,2,08,25,49,352,45,01,64,006,45,30,13,039,39,20,15,312,34*7A
$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF>
<1> GSV语句的总数
<2> 本句GSV的编号
<3> 可见卫星的总数,00 至 12。
<4> 卫星编号, 01 至 32。
<5>卫星仰角, 00 至 90 度。
<6>卫星方位角, 000 至 359 度。实际值。
<7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。
<8>Checksum.(检查位).
第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行出现,若未使用,这些字段会空白。

4、推荐最小定位信息GPRMC(Recommended MinimumSpecific GPS/TRANSIT Data)
[html] view plaincopyprint?
  1. $GPRMC,012724.000,A,2234.3157,N,11408.0921,E,0.00,,290108,,,A*71 
  2. $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF> 
  3. <1> UTC时间,hhmmss(时分秒)格式 
  4. <2> 定位状态,A=有效定位,V=无效定位 
  5. <3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输) 
  6. <4> 纬度半球N(北半球)或S(南半球) 
  7. <5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输) 
  8. <6> 经度半球E(东经)或W(西经) 
  9. <7> 地面速率(000.0~999.9节,前面的0也将被传输) 
  10. <8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输) 
  11. <9> UTC日期,ddmmyy(日月年)格式 
  12. <10> 磁偏角(000.0~180.0度,前面的0也将被传输) 
  13. <11> 磁偏角方向,E(东)或W(西) 
  14. <12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效) 
  15. 我们所关心的是GPRMC这条信息,因为其中包括当前格林威治时间、经度、纬度、日期等。 
$GPRMC,012724.000,A,2234.3157,N,11408.0921,E,0.00,,290108,,,A*71
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<4> 纬度半球N(北半球)或S(南半球)
<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<6> 经度半球E(东经)或W(西经)
<7> 地面速率(000.0~999.9节,前面的0也将被传输)
<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)
<9> UTC日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0度,前面的0也将被传输)
<11> 磁偏角方向,E(东)或W(西)
<12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
我们所关心的是GPRMC这条信息,因为其中包括当前格林威治时间、经度、纬度、日期等。

详细GPS细节见:
https://www.cnblogs.com/LiaoHao/p/3298511.html

RK平台ME3630模块GPS移植调试相关推荐

  1. RK平台--EVS模块: (二)EVS框架介绍

    下面来介绍一下EVS的框架部分,具体工作目录可以查看以下文章 RK平台--EVS模块:(一)概述 Google EVS组件框图 EVS 应用 可作为参考实现的 C++ EVS 示例应用 (/packa ...

  2. android+usb转串口+唯一id,Android平台3G模块驱动移植-USB转串口

    Android平台3g模块是通过ril库来支持数据.短信.彩信.电话.第三方通话.USSD等功能的.其相应的组件有:rild用来为rild socket建立文件,pppd和chat为拨号文件,libr ...

  3. RK平台--EVS模块: (一)概述

    最近在做车机camera相关的工作,由于手头上没有车载soc的板子,想着用RK3399实现car的EVS功能来熟悉一下android的Automotive 服务. 平台: 硬件soc--RK3399 ...

  4. 高通平台MSM8916LCM模块移植(一)-bootloader部分

    此次移植打算分成两个模块来说,bootloader部分和kernel部分.在实际的移植调试过程中也是这么分成了两个部分分别调试. 高通平台中的bootloader叫做LK(Little Kernel, ...

  5. android ko 编译,如何把rtl8188EUS驱动编译生成ko模块并且下载到rk平台Android4.2.2上使用...

    下了rtl8188EUS_linux_v4.3.24_16705.20160509.tar.gz,看了里面的数据手册,发现有些看不懂,上网搜了一下,发现大部分博客都在扯淡...后来还是我把Makefi ...

  6. 高通MSM8255 GPS 调试分析Android系统之Broadcom GPS 移植

    http://blog.csdn.net/dwyane_zhang/article/details/6775738 没事做整理一下GPS的流程,也算给自己一个交代. 1.硬件抽象层: 高通MSM的硬件 ...

  7. RK平台移植rtl8852bs wifi驱动

    RK平台 android 12的内核里面没有rtl8852bs wifi驱动,找模组原厂要了驱动,看了一下是其他平台的...要放RK平台是编译不过的,要做一下相应的修改,有点坑! 首先,修改kerne ...

  8. rk平台vr主板项目开发总结

    rk平台vr主板项目开发总结. 产品的形态: 需要配合标准的HDMI接口或usb dp接口的头显设备 需要对应的Android AR core开发的VR 应用程序,游戏等. 主要的功能模块: 基本的A ...

  9. [Camera]RK平台摄像头驱动

    platform:rk3399 OS:Android 7.1 Kernel:4.4 参考: 1. KrisFei https://blog.csdn.net/kris_fei/article/deta ...

最新文章

  1. UIImage存为本地文件与UIImage转换为NSData
  2. 人群分析--ResnetCrowd: A Residual Deep Learning Architecture
  3. logic:equal 标签的使用(转)
  4. Linux 防火墙开放特定端口 (iptables)
  5. Rxjs--创建操作符
  6. 如何打通高薪的黄金通道 成为职场金领
  7. 网络编程4之UDP协议
  8. windows 如何使用4GB(开启3GB和PAE)
  9. MySQL遭遇DELETE误操作的回滚
  10. 入行架构师之前,这7项技能你要先了解一下
  11. java web 中的乱码
  12. HALCON 21.11:深度学习笔记---Data(数据)(3)
  13. 编写可靠shell脚本的8个建议
  14. 菜鸟java基础--1
  15. 2022年ICASSP说话人日志(Speaker Diarization)方向论文泛读总结
  16. 东方快车谋杀案java_2015年第13本(英文第9本):Murder on the Orient Express 东方快车谋杀案...
  17. Flask学习笔记[更新中....]
  18. P1234小A的口头禅
  19. FusionCharts 参数设置
  20. 英雄联盟手游常见问题

热门文章

  1. ONF执行主席Dan Pitt:下一个战争可能是控制器
  2. java 项目文件夹_java项目三大文件夹的区别(package,source folder,folder)
  3. 快排C语言三种实现方法(大同小异)
  4. easypoi 实现多sheet导出excel
  5. 2020年中国包子行业现状及竞争格局分析,未来行业集中度将进一步提升「图」
  6. One or more files are in a conflicted state——解决代码冲突
  7. Java语言编写小游戏
  8. USACO 2018 February Contest, Silver-Rest Stops
  9. dPCA 二面角主成分分析
  10. 苹果快捷键怎么调出来_iPhone手机没有声音怎么办?