Xilinx社区
首页 > 技术专栏 > 骁龙820A车载系统逻辑初探--CarHvacService模块解析
骁龙820A车载系统逻辑初探--CarHvacService模块解析
来源:技术专家 时间:2017-10-23

  骁龙820A是高通为智能汽车推出的处理器,就是没基带版的820处理器,支持600Mbps的移动上网速率,支持车载嵌入式软件平台QNX,苹果和谷歌连接智能手机和汽车平台的桥接工具CarPlay和“安卓汽车”。

  在上一个系列中,小编讲解了车载hal中的具体实现部分,今天小编给大家带来hal在车载系统中是如何使用的,以CarHvacService.java为例。

  CarHvacService使用流程

  在了解VehicleHal主要功能函数和基本流程后,小编将进一步带你熟悉CarHvacService的主要流程。先上一个继承关系图。

  在之前小编VehicleHal基本流程文章中提到过,HalService包括CarHavcService在VehicleHal中初始化。构建了HvacHalService的实例mHavcHal。即VehicleHal通过构造函数的初始化的操作new了一个HvacHalService的对象。

  HalServiceBase抽象类

  HvacHalService继承了HalServiceBase,HalServiceBase是一个abstract抽象类。abstract类没有具体的实现过程,具体的实现方法需要子类实现。所以这个VehicleHal的具体实现还是要看HavcHalService 。

  HavcHalService 的实现

  HavcHalService的主要方法如下图所示。该类实实现了abstract父类的init,release,takeSupportedProperties函数。

  我们可以解析一下takeSupportedProperties。该函数在VehicleHal初始化init的时候被调用。

  private void init() { //VehicleHal.java

  VehiclePropConfigs properties = mVehicleNetwork.listProperties();

  // needs copy as getConfigsList gives unmodifiable one.

  List propertiesList =

  new LinkedList(properties.getConfigsList());

  for (HalServiceBase service: mAllServices) {

  List taken = service.takeSupportedProperties(propertiesList);

  takeSupportedProperties主要功能是ID的映射转换halToHvacPropId

  这个函数就是把所有可以支持的属性列出来,以hvacPropId为key值传送到有需要的地方。

  CarHvacService

  经过这么长的铺垫,终于迎来了具体的使用方式,这个java类可以让我们把前面所有的流程连接起来。

  这个是与vehiclehal得到了havcHalService的Instence.

  在VehicleHal中的实现方法是:

  然后CarHavcService有关的部分体现在:

  总结

  上次小编写了这篇vehiclehal的解析,只是大概介绍了其组成构造,很多读者不能把这些联想到高大上的Qualcomm的车载骁龙820A上,这次小编介绍了CarPropertyUtils,希望对大家理解VehicleHal有帮助哦。

more汽车电子市场动态
more技术专栏
more专家答疑
问:配置高通pmd9607的mpp管脚, 设置为模拟输入一直量不到电压,请教。
答:需要注意,MPP管脚并不是所有MPP管脚都可以配置的,请参考spec说明,你需要配置的pin有没有限制。通常模拟输入的话,还要配置ANA_IN_CTL等寄存器,需要外接模拟量,然后读取该pin的值的寄存器中HKADC值。
问:专家请指导: sensor厂家给的sensor相关资料(chromatix + lib)是支持前置摄像头的,“支持”主要是我这边验证过前置已经点亮。 后置摄像也用同sensor, 但用这套相关资料就点不亮了。 kernel层确认已经PROBE, 同时在/dev下有media0 media1,请协助该如何完成后置的点亮. p.s: 1. 该板后置如果使用其他sensor,可以点亮前后置摄像头; 2. 将后置摄像头拆卸, 可点亮前置, 不拆卸后置,同样可以点亮前置; 3. 如果前置后置一样, 前后置都点不亮, 但kernel层确认都probe, dev下有camera0,camera1,camera2; 4. 拆卸前置,仅后置, 依然无法点亮, kernel已经probe,dev下有camera0,camera1 针对前后置同sensor, 在sensor_init.c增加2sensor, 分别命名为: sensor, sensor_rear,同时在sensor_Libs目录下增加sensor,sensor_rear目录,主要是针对lib部分, 同时对lib中camera_id和position做对应修改(前:CAMERA_1,1,后: CAMERA_0,0) 写的太多, 一句话说明下问题: 前后置同sensor如何同时点亮前后置sensor, 是否需要修改lib中的参数,如何修改?还是其他问题?
答:从现象描述看,可以从以下几点排查。 1,sensor的配置,通常后置sensor 4lanes,而前置sensor 2lanes。换不同型号的sensor可以点亮,说明这些配置可能没有修改 导致一些问题。 2,重点看下,“拆卸前置,仅后置, 依然无法点亮,dev下有camera0,camera1,”,对比下前后置不同型号 枚举dev也是这样,看看HAL层dumpimage检查图像是否正常。 3,camera id枚举冲突,无法区分两颗相同的sensor,tuning参数调用是否正确。
问:请教专家,UE 链路层怎么样才能主动和NODE B断开。 设备和基站没有OTA log,也不太清楚是什么原因导致的连接断开。
答:可以通过AT命令CREG可以离线和在线网络。不知道是否是您需要的情况。 http://blog.chinaunix.net/uid-149881-id-2780145.html
问:有没有懂高通平台root 和解网络锁的高手?
答:eng和userdebug版本上通过adb root。你是否需要如下的方法么, https://zhidao.baidu.com/question/557640730.html
Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备12027778号-2 北京市公安局备案:1101082052