一 指纹调试思路,总纲

二 硬件原理图

三 如何确认是否移植好finger驱动?

a)probe函数调试的初始化是否成功,打印信息确认

b)查看设备节点是否生成

/dev/sunwave_fp

c)SPI通信是否成功,

1)确认 pin脚初始化是否正确,是否被占用,cs,clk,rst,miso,mosi,eint等,android8.1对应的gpio路径:

cat  /sys/bus/platform/drivers/mediatek-pinctrl/10005000.pinctrl/mt_gpio

2)检查平台的spi通道是否和硬件spi pin脚保持一致,spi-padmacro = <0>;

spi0: spi@1100a000 {
        compatible = "mediatek,mt6763-spi";
        cell-index = <0>;
        spi-padmacro = <0>;
        dma_addrmask = <36>;
        reg = <0 0x1100a000 0 0x1000>;
        interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_LOW>;
        clocks = <&infracfg_ao INFRACFG_AO_SPI0_CG>;
        clock-names = "main";
        clock-frequency = <109000000>;
        clock-div = <1>;
        };
  spi-padmacro设定参考平台的table

code 匹配,spi初始化要确保调用成功,如下

static struct spi_board_info spi_board_devs[] __initdata = {
    [0] = {
        .modalias = "sunwave-fp",
        .bus_num = 0,
        .chip_select = 0,
        .mode = SPI_MODE_0,
    },
};
3) 首先读取ic的chip id,与ic厂沟通,需要读取哪些id 寄存器,在probe加入对应的打印信息,如果能够正常读取到, 说明 DTS 配置及 SPI通迅是正常的(中断 PIN 暂时不能确定)。其次,也可以将miso mosi短接,测试SPI自发自收通信是否成功,

SPI自发自收平台测试如下,

Control virtual spi device which register on platform to send message with slave device.

adb shell

cd /sys/bus/spi/drivers/test_spi/spix.1------x confirm by you Pin design.For example:Use SPI1_CLK_B pin(MT6797),it is spi1.1.

echo -w com_mod=1 > spi------------config dma mode(0----fifi mode,1----dma mode)

echo -w len=8  > spi_msg-------send 8byte data,default date is 0x12345678.If use -w cmd,len value must multiple of four,for example:8,It will circulation send 0x12345678。

If pin miso and mosi is disconnect or connect but send fail,you will find next log.

If send success,you won't found.Then you can test hardware signal use oscilloscope.

通信失败的参考log如下,

当然,也可以自己写一些spi通信测试的小程序,后续整理后会持续更新。

若读取异常可以判断此时 SPI 不通,可以按照如下步骤去排查:
          1. 确认模组的供电是否正常;
          2. 检查 SPI 的电平时序是否正常:
          3. 檢測miso mosi是否接反,可以用邏輯分析儀確認;
          4. 确认指纹单模组是否正常;

d)确认finger interrupt中断是否注册成功

cat proc/interrupts

中断设备节点绑定

finger_irq_node = of_find_compatible_node(NULL, NULL, "mediatek,fingerprint-eint");// "mediatek,sunwave_fp"
 
ctl_dev->irq_num = irq_of_parse_and_map(finger_irq_node, 0);

如果没有 1)软件排查,查看irq注册函数,绑定的设备名是否成功等

2)硬件排查,用示波器等实测是否有模组硬件中断

四 so库合成与验证

1)Android M/N 系统重启 fingerprintd 进程,Android O 以上 系统重启 android.hardware.biometrics.fingerprint@2.1-service 进程,可以在平台code里面直接关闭selinux权限(比手动验证更保险),也可以手动关闭setenforce 0,然后参考文档把so库push到对应的路径,验证指纹是否能正常启动,正常录取指纹。

2)手动验证ok,那接下来的就是so库的移植,以及selinux权限的问题。

指纹调试 mtk(MT6763)- android8.1相关推荐

  1. Android 指纹调试流程(高通、MTK均适用)

    前言:指纹调试我们只需要关注kernel.hal.ta就可以将其点亮,高通使用自己的tee环境,MTK则需要使用第三方tee OS,三方tee的集成调试一般会有厂家配合,主要是调试spi ta,在此就 ...

  2. MTK 开发调试方法

    mtk开发基本调试方法大概就三种模拟器方式,trac方式,串口方式 普通的界面修改,功能行基本都可以通过模拟器完成,但是遇到死机或者与l4c相关的问题是就需要打trac配合cather进行调试了:如果 ...

  3. mtk 调试方法总结

    mtk开发基本调试方法大概就三种模拟器方式,trac方式,串口方式 普通的界面修改,功能行基本都可以通过模拟器完成,但是遇到死机或者与l4c相关的问题是就需要打trac配合cather进行调试了:如果 ...

  4. 高通SM4350平台指纹移植流程

    本文总结了高通sm4350平台指纹移植流程,厂家一般会提供移植文档,本文档可作为补充: 准备工作: 1.把指纹模组扣到主板上的SPI连接器上 2.高通sm4350平台,Android R版本全代码,全 ...

  5. 高通sm4350平台指纹移植

    本文总结了高通sm4350平台指纹移植流程,厂家一般会提供移植文档,本文档可作为补充: 准备工作: 1.把指纹模组扣到主板上的SPI连接器上 2.高通sm4350平台,Android R版本全代码,全 ...

  6. 在Eclipse中导入编译MTK平台Android6.0源码的原生Gallery2应用

    源码下载地址 由于工作的需要,需要在Eclipse中调试MTK平台Android6.0的原生Gallery2应用, 网上已经有很多类似的技术文章了,步骤都差不多, 但是MTK在google原生的Gal ...

  7. MT6737芯片功能介绍+MT6737芯片资料分享

    MT6737芯片功能介绍+MT6737芯片资料分享 MT6737是什么呢? MT6737是联发科技极具成本效益的R.9 Cat-4 LTE解决方案,不但能将模块及内存成本降至最低,符合中低端市场需求, ...

  8. MogDB/openGauss 教程 浓缩版

    概述 MogDB是EnMotech openGauss DataBase Enterprise Edition的缩写,是云和恩墨基于openGauss开源数据库进行定制.推出的企业发行版.它将围绕高可 ...

  9. MTK6771 Android8.0 REE 指纹代码移植

    环境搭建 1,安装Ubuntu 16.04 LTS 版本,按照MT6771_Basic_V1.0.pdf 安装Android O 版本所需的基本编译工具. $ sudo apt-get install ...

  10. 32. mtk平台androidN cts步骤及调试日志

    新增1.判断前摄还是后摄failgrep "camera 0 | camera 1"后摄failed:camera 0 is opened前摄failed:camera 0 is ...

最新文章

  1. Android:problem opening wizard the selected wizard could not be started
  2. 有认知会推理!视觉大模型的未来不只靠表征
  3. 谜题81:烧焦到无法识别
  4. css画横线箭头_用CSS绘制三角形箭头
  5. P4590-[TJOI2018]游园会【dp套dp】
  6. 只引入部分elementui_腾讯动漫确定引入假面骑士亚极陀和甲斗王 四仔:是不是玩不起...
  7. (二)为COVID-19诊断准备深度学习环境
  8. in与exist , not in与not exist 的区别
  9. 编译原理完整学习笔记(二):高级程序设计语言
  10. 日语学习之——学习技巧
  11. Minecraft Forge 服务器开服教程
  12. gp数据库 创建数据库 创建表 分区
  13. ArcGIS裁剪栅格图像(图片)后,图…
  14. 关闭计算机的正确操作方法,电脑基础知识启动和关闭电脑的正确方法
  15. seo日常工作表_SEO日常工作内容主要有哪些
  16. VMware创建共享文件夹并实现文件传输(Windows主机,Ubuntu虚拟机)
  17. 网上搜索电子书的办法
  18. mysql characterencoding utf8mb4_Mysql UTF-8mb4字符集的问题
  19. 有限元分析的基本知识 (一份培训资料) (3)
  20. 30+ 个 DevOps 常用面试题

热门文章

  1. 和利时dcs系统服务器设置,和利时DCS系统组态流程
  2. H12-211数通HCNA题库解析(一)
  3. 大黑书《离散数学及其应用》之Dijkstra算法
  4. php连接sql数据库的方法,php连接数据库_php连接数据库的四种方法
  5. 【深度讲解】手把手教你python制作萝莉音智能对话语音机器人,附全部源码!速速学起来!!
  6. 关于anaconda下载包的位置的问题
  7. ASCII码十六进制转换表
  8. C语言:大小字母转换(ASCII码)
  9. C语言的中常用的函数
  10. Android接口测试工具Apizza,自定义API请求返回值,自定义请求相对路径