指纹识别调试记录

来源:互联网 发布:阿里数据研究院 编辑:程序博客网 时间:2024/06/07 05:03

指纹识别调试记录

文档是之前写的,因为当时按压式指纹识别都没有量产,原厂代码仍在调试阶段,拿到的是不完善版本。

  1. 配置GPIO. 涉及到6个GPIO: spi_cs , clk,mo ,mi, rst, INT. 飞线浪费了很多时间。还有一个是这个芯片有2个电源,1.8V和3.3V,DATASHEET上原理图上是要接上3.3V的。实际拿到的模组是不能接的,接了无法采集到图像。FAE的说法是模组背面有个电阻,没焊接的话就不用接3.3。这个是在FAE来了之后,我们一起量过电压之后才解决,他们之前并没有说这个问题。
  2. 确认内核已启用SPI 驱动。6592平台默认是打开的。可以在 sys/devices/platform下看到。
  3. 注册spi 设备,在 mt_devs.c 中。

  4. 将驱动文件复制到 kernel/driver/input/下,更改 kconfig makefile. 在project 文件夹下kernel config 文件中将刚改的config项设置为Y

  5. 重新编译后就会进入probe. 之后就应该测量各个信号是否正常,硬件有无问题。

驱动流程分析,比较简单:Open_device  ioctl  poll –> read

问题点:
1. GPIO 初始化和中断移植。因MTK 不支持标准LINUX 内核GPIO操作方式,需要自己移植带代码。
2. Spi 无法读到数据:
因数据量比较大,FAE说必须用DMA。直接初始化DMA,无法读取到数据。LOG显示 tx dma should be 4byte alignment. MTK SPI DMA只支持4B 对其方式,而操作寄存器都是3B ,(R/W+ADD+DATA), 采取的解决方法是先配置SPI 为FIFO MODE,在读取image时切换为DMA,操作完后切回来。
3. Apk 无法打开。因为是测试版本,没有源码。KERNEL LOG 显示PROBE完成,ADB 下设备文件和SYS下文件都正常。抓取MAIN LOG发现在load jni库时会check license file。有LOG显示license 过期。将系统时间改为当前时间,居然启动了。这个问题连FAE也不知道,费了一番周折。

0 0
原创粉丝点击