高通挂载bp侧驱动bringup流程

2023-05-16

BP侧修改

(1)添加供应商给的驱动

添加到vendor\qcom\non-hlos\ADSP.VT.5.4.3.c1\adsp_proc\ssc_drivers

(2)添加编译

\vendor\qcom\non-hlos\ADSP.VT.5.4.3.c1\adsp_proc\ssc\chipset\divar\por.py

 if 'SSC_TARGET_X86' not in env['CPPDEFINES']:
        #POR sensors list
        include_sensor_vendor_libs.extend(['lsm6dso',         #ACCEL/GYRO/MD/TEMP
                                           'sns_ak0991x',     #MAGNETOMETER
                                           'sns_tmd2725',     #ALS/PROX 
                                           'sns_bmp285',      #PRESSURE
                                           'sns_bu52053nvx', #HALL
                                           'sns_sc7a20',
                                           'sns_ltr569'])    

/*此处id为供应商给的驱动文件中LTR-569ALS-WA\build\sns_ltr569.scons,.scons的前缀*/      

 (3)修改通讯协议

-3.1vendor\qcom\

non-hlos\ADSP.VT.5.4.3.c1\adsp_proc\core\settings\buses\qup_fw\config\divar\fw_devcfg.c

根据DATA SHEET选择对应SE设备修改通信协议

-3.2vendor\qcom\non-hlos\

ADSP.VT.5.4.3.c1\adsp_proc\core\settings\buses\i2c\config\divar\i2c_devcfg.c

 (4)查看是否编译成功:

1.编译成功会adsp_proc下生成obj文件夹,里面有所有的镜像

2.或在驱动文件的build下生成/sensor.img/所有.o文件

可以直接在编译目录下$:find -name "xxxx.o"以快捷搜索有无.o生成

AP侧修改

添加.json文件在

vendor\qcom\proprietary\sensors-see\registry\config\lahaina(项目名)

{
  "config":
  { 
    "hw_platform": ["QRD"], //  cat /sys/devices/soc0/hw_platform获取
    "soc_id": ["497"] //cat /sys/devices/soc0/soc_id 获取

  },
  "bmi160_0":{
    "owner": "sns_bmi160",
    ".accel":{
      "owner": "sns_bmi160",
      ".config":{
        "owner": "sns_bmi160",
        "is_dri":{ "type": "int", "ver": "0",
          "data": "1"
        },//配置中断模式或者轮训模式(“0”轮训模式,“1”中断模式)
        "hw_id":{ "type": "int", "ver": "0",
          "data": "0"
        },//用来区分同一硬件多个传感器
        "res_idx":{ "type": "int", "ver": "0",
          "data": "2"
        },
        "sync_stream":{ "type": "int", "ver": "0",
          "data": "0"
        }
      }
    },
    ".gyro":{
      "owner": "sns_bmi160",
      ".config":{
        "owner": "sns_bmi160",
        "is_dri":{ "type": "int", "ver": "0",
          "data": "1"
        },
        "hw_id":{ "type": "int", "ver": "0",
          "data": "0"
        },
        "res_idx":{ "type": "int", "ver": "0",
          "data": "4"
        },
        "sync_stream":{ "type": "int", "ver": "0",
          "data": "0"
        }
      }
    },
    ".md":{
      "owner": "sns_bmi160",
      ".config":{
        "owner": "sns_bmi160",
        "is_dri":{ "type": "int", "ver": "0",
          "data": "1"
        },
        "hw_id":{ "type": "int", "ver": "0",
          "data": "0"
        },
        "res_idx":{ "type": "int", "ver": "0",
          "data": "0"
        },
        "sync_stream":{ "type": "int", "ver": "0",
          "data": "0"
        }
      }
    },
    ".temp":{
      "owner": "sns_bmi160",
      ".config":{
        "owner": "sns_bmi160",
        "is_dri":{ "type": "int", "ver": "0",
          "data": "0"
        },
        "hw_id":{ "type": "int", "ver": "0",
          "data": "0"
        },
        "res_idx":{ "type": "int", "ver": "0",
          "data": "2"
        },
        "sync_stream":{ "type": "int", "ver": "0",
          "data": "0"
        }
      }
    }
  },
  "bmi160_0_platform":{
    "owner": "sns_bmi160",
    ".config":{
      "owner": "sns_bmi160",
      "bus_type":{ "type": "int", "ver": "0",
        "data": "0"
      },//I2C 写 0、 SPI 写 1、 I3C 写 3
      "bus_instance":{ "type": "int", "ver": "0",
        "data": "2"
      },//bus_instance: = QUP 数 + 1

      "slave_config":{ "type": "int", "ver": "0",
        "data": "104"
      },//I2C 地址,参考规格书
      "min_bus_speed_khz":{ "type": "int", "ver": "0",
        "data": "400"
      },//最小 COM 总线时钟速度,默认配置 400khz
      "max_bus_speed_khz":{ "type": "int", "ver": "0",
        "data": "400"
      },//最大 COM 总线时钟速度,默认配置 400khz
      "reg_addr_type":{ "type": "int", "ver": "0",
        "data": "0"
      },//寄存器地址类型( 寄存器地址位数,“ 0” 8 bit “ 1” 16 bit “ 2” 32bit)
      "dri_irq_num":{ "type": "int", "ver": "0",
        "data": "102"
      },//中断引脚

      "irq_pull_type":{ "type": "int", "ver": "0",
        "data": "2"
      },//配置中断引脚内部电平类型
      "irq_is_chip_pin":{ "type": "int", "ver": "0",
        "data": "1"
      },//配置 MSM_GPIO 由于中断模式
      "irq_drive_strength":{ "type": "int", "ver": "0",
        "data": "0"
      },//配置 MSM_GPIO 由于中断模式
      "irq_trigger_type":{ "type": "int", "ver": "0",
        "data": "0"
      },//中断触发类型,这里我们配置为低电平触发
      "num_rail":{ "type": "int", "ver": "0",
        "data": "2"
      },//中断触发类型,这里我们配置为低电平触发
      "rail_on_state":{ "type": "int", "ver": "0",
        "data": "2"
      },//低功耗供电模式 LPM 还是常规供电模式 NPM
      "vddio_rail":{ "type": "str", "ver": "0",
        "data": "/pmic/client/sensor_vddio"
      }, 
      "vdd_rail":{ "type": "str", "ver": "0",
        "data": "/pmic/client/sensor_vdd"
      }, 
      "rigid_body_type":{ "type": "int", "ver": "0",
      "data": "0"
      }
    }

将sensor器件添加到高通island(低功耗模式)

【不同平台特性不同,此操作需和平台确认清楚能不能去掉!并非所有平台都能去掉这三行!】

vendor\qcom\non-hlos\ADSP.VT.5.4.3.c1\adsp_proc\ssc\chipset\divar\por.py

(1)先在在此文件中注释掉以下三行,以释放island空间来添加新器件进island空间:

    #env.AddUsesFlags(['SNS_DYNLIB_LOCAL_HEAPMGR'])
    #env.AddUsesFlags(['SNS_DYNLIB_LSM6DSO'])
    #env.Append(CPPDEFINES = ['SNS_DYNLIB_NUM_OF_ISLAND_PAGES = 11'])

(2) 在此处添加驱动名

     # 1. Island drivers
    env.AddUsesFlags(['SNS_ISLAND_INCLUDE_HX32062SE'])
    #env.AddUsesFlags(['SNS_ISLAND_INCLUDE_AK0991X'])
    #env.AddUsesFlags(['SNS_ISLAND_INCLUDE_TMD2725'])
    #env.AddUsesFlags(['SNS_ISLAND_INCLUDE_BMP285'])

island驱动名获取方法:打开驱动文件中的build文件(后缀.scons),找到以下句段,

if 'SNS_ISLAND_INCLUDE_HX32062SE' in env:
  hx32062se_island_enable = True

其中引号中的id就是添加到por.py的id。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高通挂载bp侧驱动bringup流程 的相关文章

  • 计算机二进制的浮点表示法

    计算机二进制的浮点表示法 0 1 3 61 0 3 组成 符号位 0表示正 1表示负 指数位 2的n次方 xff0c n 43 127 对于4字节浮点数 xff0c 此处为127 再换算成二进制 尾数位 直接用 过程 将整数部分换算成二进制
  • STM32延时函数的三种方法——最好掌握第三种

    单片机编程过程中经常用到延时函数 xff0c 最常用的莫过于微秒级延时delay us 和毫秒级delay ms 1 普通延时法 这个比较简单 xff0c 让单片机做一些无关紧要的工作来打发时间 xff0c 经常用循环来实现 xff0c 不
  • 【常用模块】HC-05蓝牙串口通信模块使用详解(实例:手机蓝牙控制STM32单片机)

    HC 05蓝牙串口通信模块应该是使用最广泛的一种蓝牙模块之一了 为什么呢 xff1f 因为HC05模块是一款高性能主从一体蓝牙串口模块 xff0c 可以不用知道太多蓝牙相关知识就可以很好的上手 说白了 xff0c 只是个蓝牙转串口的设备 x
  • uln2003驱动电路

    一 uln2003有什么作用 ULN2003是大电流驱动阵列 xff0c 多用于单片机 智能仪表 PLC 数字量输出卡等控制电路中 可直接驱动继电器等负载 输入5VTTL电平 xff0c 输出可达500mA 50V ULN2003是高耐压
  • 简单超声波测距

    用到模块 hc sr04超声波模块 xff0c stm32开发板 本实验通过超声波测距模块得到长度 直接打印到窗口显示 xff0c 故主要用到定时器函数 xff0c 串口函数 hcsr04 c 只需要提供一个 10uS以上脉冲触发信号 xf
  • Javaer,你必须要了解的ExecutorService

    ExecutorService初接触 之前做的一个功能里有一个耗时操作 xff1a 处理数据库里对应的记录 xff0c 然后将每个处理后的结果做个排序 恕本人小白 xff0c 刚开始直接用单线程处理 xff01 你敢信 xff1f xff0
  • 平衡自行车-理论篇

    原文链接 xff1a http nicekwell net blog 20180121 ping heng zi xing che li lun pian html 一 模型分析 1 倒立摆2 自行车的平衡控制 2 1 怎样的状态才叫平衡2
  • 魔百盒CM201-1刷机教程

    家里有一块魔百盒CM201 1一直在家积灰 xff0c 由于看到网上教程可以刷各种系统 xff0c 所以想着玩来试试看 先刷一个电视版安卓系统看 盒子样子大概就是下面这样 xff1a 拿到手之后就迫不及待的将外壳拆掉了 xff0c 下面这样
  • RK3288刷机教程:安装Ubuntu 16.04

    网上有很多基于瑞芯微RK3288芯片的板子 xff0c 个人感觉配置都非常不错 xff01 然后就淘了两块玩玩 如下图所示 xff1a 然后可以看到 xff0c 各种接口也比较全乎 xff01 有HDMI和VGA视频输出接口 xff0c 两
  • ros串口通讯(读取串口数据)

    ros串口通讯是非常重要的通讯手段 xff0c 通常跟下位机或者各种usb口外设都是通过串口进行通讯的 那么我们跟着教程来学习一下如何读取手机通过无线串口发送给电脑的数据 这里我通过一个usb ttl工具将蓝牙连接到电脑上 xff0c 然后
  • No package ‘orocos-bfl‘ found

    目录 问题 xff1a 原因 xff1a 解决办法 xff1a 问题 xff1a 在编译ros工程的时候 xff0c 出现如下错误提示 xff1a No package 39 orocos bfl 39 found 如下图所示 xff1a
  • 人工智能(AI)入门

    人工智能的入门学习需要具备的知识结构 xff1a 一 编程语言选择 推荐python xff0c 原因有二 xff0c 其一 xff0c 语法简单易学 xff1b 其二 xff0c 有丰富的库支持 二 算法设计基础 人工智能的研究内容集中在
  • 卡尔曼滤波(Kalman filter)算法以及Arduino应用-mpu6050(导航贴)

    正在更新中 这篇文章要跟大家一起完全搞明白卡尔曼滤波 xff0c 连一个标点符号也不放过 xff0c 完完全全理解明白 如果你看不懂 xff0c 那说明我写的不好 本文是看了dr con博士的视频后做的 xff0c 建议可以去看看 如果哪里
  • ROS发布tf坐标

    我们写个小程序来发布一个坐标系 xff1a 坐标系消息格式 xff1a std msgs Header header 头信息 uint32 seq 序列号 time stamp 时间戳 string frame id 坐标 ID strin
  • pop_back()的用法及运行机制

    vector在c 43 43 中非常好用 xff0c 简单的说 xff0c vector是一个能够存放任意类型的动态数组 能够增加和压缩数据 一般使用push back 和pop back 函数将数据存放进容器末尾 如下例程 xff1a i
  • Gazebo启动不开

    问题 xff1a 按照书上的指引 xff0c 启动gazebo仿真软件 当然记得运行roscore rosrun gazebo ros gazebo 结果我在这个页面等了三分钟一点儿动静也没有 查阅资料 xff0c 说明这是因为model库

随机推荐