1.添加gps hal层代码包

将ublox gps芯片的hal层代码拷贝至apps/LINUX/android/hardware/ublox/路径下,树状图如下:

2.修改编译选项

将新增的ublox gps hal层代码编译进入image,需要修改apps/LINUX/android/device/qcom/msmnile_gvmgh/路径下的msmnile_gvmgh.mk和manifest.xml两个文件。【注:msmnile_gvmgh是我的项目工程名,即out/target/product/msmnile_gvmgh】

2.1修改msmnile_gvmgh.mk

gps hal层源码ublox/gps/hal/Android.mk中有如下描述:

HIDL_VERSION的值在ublox/gps/version.mk中定义:

搜索PLATFORM_SDK_VERSION可知该值为30,对应版本名为Android11,根据version.mk应该选择HIDL_VERSION值为2.1。

在Android中,通过PRODUCT_PACKAGES宏将指定的模块编译进最终烧写的image中,这里使用相同的方式将ublox gps hal层代码编译并打包至image。在msmnile_gvmgh.mk文件末尾添加一下内容:

#for u-blox GNSS
PRODUCT_PACKAGES += libParser \libAgnss \android.hardware.gnss@2.1-service-ubx \u-blox.conf

2.2 修改manifest.xml

在ublox gps hal层代码包的README文件中有说明,需要修改manifest.xml文件,以说明为模板参考、根据项目实际情况修改即可。

3.移除高通默认的gps功能模块

去掉系统中默认的虚拟的gps功能模块,系统才能加载刚刚编译进系统的真正的gps功能代码。

修改apps/LINUX/android/hardware/qcom/gps/gps_vendor_product.mk文件。

4.添加安全配置文件

在ublox gps hal层代码包的README文件中有说明,说明如下:

u-blox/gps/sepolicy/目录下有多个Android版本的配置文件,我的Android版本为11,选择Android-11即可。

在apps/LINUX/android/device/qcom/sepolicy_vndr/SEpolicy.mk文件中添加一下内容即可:

BOARD_SEPOLICY_DIRS += hardware/u-blox/gps/sepolicy/android-11

5.配置串口

5.1 设备树配置

GPS和SoC之间通过uart进行数据交互,所以需要配置对应串口的设备树文件,如果串口已经配置好了即可以正常使用,则此步骤跳过。

5.2 Qup配置

Qup的全称是qualcomm universal peripherals即高通通用外设,uart就是连接在qup上,我的gps uart连接在QUP13上,所以肯需要在tz_8155/trustzone_images/core/settings/buses/qup_accesscontrol/qupv3/config/855/QUPAC_Access.c文件中修改qupv3_perms_auto[]数组的QUPV3_2_SE3相关配置。

每个数组项有7个元素,分别是PeriphID、ProtocolID、Mode、NsOwner、bAllowFifo、bLoad、bModExcl。

PeriphID - QUP SE ID基于QUP块和块内的SE索引,例如QUPV3_2_SE3表示QUP块2,其SE索引为3;
ProtocolID – 它定义了由QUP固件管理的协议。
Mode – 它定义了QUP固件的默认工作模式。它可以是以下之一:QUPV3_MODE_FIFO = 0,QUPV3_MODE_CPU_DMA = 1, QUPV3_MODE_GSI = 2;
NsOwner - 它定义了负责初始化和运行的QUP SE的所有者;
bAllowFifo - 允许FIFO模式始终设置为TRUE。
bLoad - 加载固件映像总是设置为TRUE。
bModExcl - 模式独占性总是设置为FALSE。

5.3 Ublox gps代码配置

ublox/gps/u-blox.conf文件是ublox gps hal层代码的配置文件,该文件中可以配置HAL层需要打开的串口设备节点以及串口的波特率等设置。

高通8155 GPS HAL层代码移植相关推荐

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

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

  2. 高通MSM8255 GPS 调试分析

    没事做整理一下GPS的流程,也算给自己一个交代. 1.硬件抽象层: 高通MSM的硬件层代码在:hardware/qcom/gps/loc_api下,高通的GPS集成在baseband侧,与Modem部 ...

  3. 高通8155/8295 boot分析

    目录 前言 通用boot流程 8155/8295 boot流程概述 前言 本文将基于高通8155/8295 Q+A hypervisor平台分析整个boot的启动流程.高通其他SOC芯片的启动流程大致 ...

  4. 04 基于高通8155的智能座舱功能安全设计

    前言 本篇图文跟大家分享一下基于高通8155的智能座舱仪表域功能安全设计. 全系内容可在<搞一下汽车电子>后台回复 "系列",或进入菜单栏 "分享平台&quo ...

  5. 高通8155车载芯片_WEY来“摩卡”云首秀,搭载高通8155芯片

    本期亮点  "咖啡"一词源自埃塞俄比亚的一个名叫卡法的古镇,在希腊语中"Kaweh"的意思是"力量与热情",而摩卡咖啡代表着创新和更多可能性 ...

  6. Android架构实例分析之编写hello驱动的HAL层代码

    Android架构实例分析之编写hello驱动的HAL层代码 摘要: HAL层中文名称又叫硬件抽象层,可以理解我Linux驱动的应用层.本文实现了一个简单的hello HAL的代码,衔接hello驱动 ...

  7. CM4尺寸4G mini模组高通版GPS功能测试

    关键词:树莓派  CM4  4G  mini  高通  芯片组  GPS  无源天线  minicom   概述:我们有一款定制版的miniPCIE接口4G模组,采用高通芯片组,可支持GPS.为了方便 ...

  8. 认识高通8155(开发板介绍)

    认识高通8155 一.8155芯片介绍 高通8155就是高通SA8155P芯片的简称,发布于2019年,是全球首款量产7nm制程车机芯片,整个芯片的AI算力能够达到8TOPS,同时还有蓝牙5.0.Wi ...

  9. 高通8155智能座舱「风头正劲」,三款热销车型过万辆

    2021年之前,大部分市场在售车型的座舱尤其是车机芯片主要是NXP.TI.瑞萨.联发科等厂商供货.不过,随着高通8155芯片的上车,买车认准高通8155成为车市的"网红级"配置. ...

最新文章

  1. 刷题:二叉树的非递归遍历方式
  2. Linux C编程--进程介绍2--exec函数
  3. 实现做出html的上标以及下标
  4. python保存到txt_python 如何将数据写入本地txt文本文件的实现方法
  5. C#在WinForm中打开控制台显示
  6. C++ 三种继承方式
  7. mysql使用substring_index达到splite功能
  8. 解压出来的文件md5会改变吗_监控Linux文件变化,防止系统被黑
  9. Systrace分析app启动分析
  10. HFSS15.0 安装破解说明
  11. 好程序员Java教程分享javaweb框架
  12. win7电脑屏幕亮度怎么调节
  13. 新版火狐浏览器安装Flash组件,解决部分网站视频无法观看问题
  14. 基于CST电磁仿真软件的波导弯头设计
  15. 屏幕尺寸、分辨率、像素、PPT解释及其关系
  16. 30年时间让科技与人对话,什么是机器人语音识别原理
  17. 在线端口检查工具 Online IP TCP UDP port scan
  18. 认识V模型,W模型,H模型三类模型
  19. 1170. 比较字符串最小字母出现频次
  20. mysql中sql中统计结果四舍五入保留两位小数

热门文章

  1. 营销活动思维导图系列(共55份)
  2. 多个视频的音频互换软件,一键互换视频的音频声音
  3. c语言读取无压缩的cbl的源代码,c语言基础算法案例
  4. 从零开发短视频电商 视频观看数、点赞数的优化
  5. WPS无法加载EndNote加载项
  6. 在Windows电脑上修改图片内存大小的方法
  7. 对比学习Contrastive Learning
  8. iOS-Core-Animation-Advanced-Techniques(三)
  9. RxJava操作符学习APP
  10. 什么是虚拟主机?虚拟主机的作用有哪些?