在许多sensor的调试过程中总是会遇到各种GPIO被占用的情况,特别是以下几种情况:UART 只能发或收,GPIO 配置了pinctl output但是gpio依旧为输入。

1、判断GPIO口状态

不管是不是被ADSP占用导致工作异常,首先我们需要查看一下GPIO的状态,查看方法如下

cat /sys/kernel/debug/gpio

部分日志:
GPIOs 0-141, platform/1000000.pinctrl, 1000000.pinctrl:
gpio0 : in 0 2mA pull down
gpio1 : in 0 2mA pull down
gpio2 : out 0 2mA pull down
gpio3 : in 0 2mA pull down
gpio4 : out 2 2mA no pull
gpio5 : out 2 2mA no pull
gpio6 : in 0 2mA no pull
gpio7 : in 0 2mA no pull
gpio8 : in 0 2mA pull down
gpio9 : in 0 2mA pull down
gpio10 : in 0 2mA no pull
gpio11 : in 0 2mA no pull
gpio12 : in 2 2mA no pull
gpio13 : in 2 2mA no pull
gpio14 : out 3 2mA pull up
gpio15 : out 3 2mA pull up
gpio16 : in 2 2mA no pull
gpio17 : in 2 2mA no pull
gpio18 : in 0 2mA pull down
gpio19 : in 0 2mA pull down
gpio20 : in 2 2mA no pull

此时我们就可以通过 80-P2472-1B_C_MSM8953_GPIO_Configuration_Spreadsheet.xlsm此类GPIO 配置文档去查看相关GPIO与外设引脚的对应关系。

2、查看是否与ADSP冲突

既然查看到某个GPIO状态配置异常,接下来就应该考虑是否是ADSP 冲突引起,可以通过以下方法删除Sensor配置文件释放所有端口测试冲突是否存在。

adb root
adb remount
adb shell rm /mnt/vendor/persist/sensors/sns.reg (qcm2150 此项必须先执行,否则push进去的conf文件不生效)
adb shell rm /persist/sensors/sns.reg (msm8953 此项必须先执行,否则push进去的conf文件不生效)
adb shell rm /vendor/etc/sensors/sensor_def_qcomdev.conf
adb sync
adb reboot

执行以上操作后如果问题消失了,那么必然是ADSP冲突导致。

3、配置ADSP文件

在上面进一步验证成功后修改工程下的 /vendor/etc/sensors/sensor_def_qcomdev.conf 或者直接将开发板根文件系统中的/vendor/etc/sensors/sensor_def_qcomdev.conf 用adb pull下来修改。

#序号  #引脚号  #属性值  #注释

#SPI GPIO active and inactive
6330 1 0x00010001 # version
6331 0x0014 0x00010001 # gpio num
6332 1 0x00010001 # active func sel
6333 1 0x00010001 # active dir
6334 0 0x00010001 # active pull
6335 3 0x00010001 # active drive
6336 0 0x00010001 # inactive func sel
6337 0 0x00010001 # inactive dir
6338 2 0x00010001 # inactive pull
6339 0 0x00010001 # inactive drive #############################################
# 修改方法:将需要释放的引脚号改成0xFFFF,然后将属性值改成0x00020002
切勿直接删除或者注释掉这一行,因为如果没有新的值,即便是整包刷机都不会覆盖原有的属性。这些参数是和sensor校准参数放在同一个分区,不会因为刷机删除。

4、刷入测试

两种方法:整编代码然后整包刷入;通过adb push 配置文件

将sensor_def_qcomdev.conf push 到板子进行测试
adb shell rm /mnt/vendor/persist/sensors/sns.reg (2150 此项必须先执行,否则push进去的conf文件不生效)
adb shell rm /persist/sensors/sns.reg (8953 此项必须先执行,否则push进去的conf文件不生效)
adb shell rm /vendor/etc/sensors/sensor_def_qcomdev.conf
adb push sensor_def_qcomdev.conf /vendor/etc/sensors/sensor_def_qcomdev.conf
adb shell chmod 644 /vendor/etc/sensors/sensor_def_qcomdev.conf
adb shell sync
adb reboot

高通Android工程释放ADSP侧GPIO给AP侧(HLOS)解决uart只能收或者发,gpio 无法配置成输入或者输出的更多相关文章

  1. 高通Android display架构分析

    目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...

  2. 高通Android display分析【转】

    本文转载自:http://blog.csdn.net/zhangchiytu/article/details/6777039 高通7系列硬件架构分析 如上图,高通7系列 Display的硬件部分主要由 ...

  3. 高通Android平台硬件调试之Camera篇

    之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了, ...

  4. 高通android开发摘要

    一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载. 将高通产权的代码放到:vendor/qcom/proprietary 1. 设置bms一些参 ...

  5. 高通Android camera运行流程【转】

    本文转载自:http://blog.csdn.net/unicornkylin/article/details/13293295 1.总体架构 Android Camera 框架从整体上看是一个 cl ...

  6. 高通android开发缩写

    1.TLMM MSM TLMM pinmux controller,Qualcomm MSM integrates a GPIO and Pin mux/config hardware, (TOP L ...

  7. 高通 android平台LCD驱动分析

    目前手机芯片厂家提供的源码里包含整个LCD驱动框架,一般厂家会定义一个xxx_fb.c的源文件,注册一个平台设备和平台驱动,在驱动的probe函数中来调用register_framebuffer(), ...

  8. 高通adsp架构下sensor

    一.高通sensor架构: linux驱动由浅入深系列:高通sensor架构实例分析之一(整体概览+AP侧代码分析) linux驱动由浅入深系列:高通sensor架构实例分析之二(adsp驱动代码结构 ...

  9. linux驱动由浅入深系列:高通sensor架构实例分析之三(adsp上报数据详解、校准流程详解)【转】

    本文转载自:https://blog.csdn.net/radianceblau/article/details/76180915 本系列导航: linux驱动由浅入深系列:高通sensor架构实例分 ...

  10. linux驱动由浅入深系列:高通sensor架构实例分析之二(驱动代码结构)【转】

    本文转载自:https://blog.csdn.net/radianceblau/article/details/73498303 本系列导航: linux驱动由浅入深系列:高通sensor架构实例分 ...

随机推荐

  1. 整理程序员面试中HR最常问的问题

    前言 不要慌,不要怕,要调适好自己的情绪,在介绍自己的基本情况时面无表情,说的头头是道,必要的时候包装下自己,不属于你的功能也能说是你的(难不成会去查?查也查不到).不过在面试前,建议可以找自己的朋友 ...

  2. Java面试题及答案整理汇总(2024最新版)

    前言 辞退了老板,准备找下家,又要开始面试了,不得不准备准备八股文,还是很有必要针对性的刷一些题,很多朋友的实战能力很强,但是理论比较薄弱,要多准备准备理论知识,攻克面试官.这是我在全网寻找稍微比较完 ...

  3. Issac_GYM重要过程记录

    1 下载相关文件 进入github中下载相关的文件 https://github.com/leggedrobotics/legged_gym 2 加载自己绘制的URTL文件 这个链接用来下载宇树的Go ...

  4. .NET 高性能异步套接字库,支持多协议、跨平台、高并发

    前言 .NET 生态中有哪些值得推荐的网络通信框架?今天,给大家推荐一个非常优秀的开源项目--NetCoreServer. NetCoreServer 是一款 .NET 开源.免费.快速且低延迟的异步 ...

  5. 禁止http请求自动跳转到https--解决网站使用了HSTS的问题

    前言 目前有些网站支持http和https两种协议访问,有些只支持一种协议访问.根据动态域名安全策略(HSTS),只要该域名在浏览器中访问过一次https,那么,谷歌浏览器会自动将http跳转到htt ...

  6. memcached 和 Grails,第 1 部分:安装和使用 memcached

    学习 memcached 命令并评估缓存性能 本文是系列文章的第 1 部分,主要介绍 memcached 和 Grails.作者 James Goodwill 将向您介绍开源解决方案 memcache ...

  7. AI让照片跳舞,人人都能是舞王!Swan下载介绍

    最近,兵马俑.马斯克以及各地网友跳科目三和网红舞的视频陆续在社交媒体和朋友圈刷屏,这些大约10秒左右的视频都不是真人出镜,均由大模型生成,这种低门槛的跳舞方式引发了网友的广泛体验,掀起了一波斗舞狂潮「 ...

  8. Net中手写 事件总线 发布订阅消息

    Net 手写 事件总线 发布订阅消息 前言 今晚打老虎 事件总线是对发布-订阅模式的一种实现.它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的.(项目的 ...

  9. Google Chrome谷歌浏览器离线/绿色版本安装与彻底卸载

    一.离线安装 1.下载官方最新安装包安装 直接下载链接 Windows 32 位最新稳定版: https://dl.google.com/tag/s/installdataindex/update2/ ...

  10. DA14531芯片固件逆向系列(1)-固件加载和逆向分析

    首发于先知论坛 https://xz.aliyun.com/t/9185 前言 本文介绍逆向DA14531芯片的固件,并介绍一些辅助自动化分析的脚本的实现.DA14531是Dialog公司研制的蓝牙芯 ...