1.底层文件系统驱动支持
根据指纹模块调试文档指纹模块驱动的加载的第一步就是嵌入式系统对于usbfs的支持,即/proc/bus/usb文件夹的支持,我们现在使用的内核虽然在menuconfig中不支持usbfs,但是可以支持/proc/bus/usb文件夹,所以可以支持AS606指纹模块,使用usbhost模式,调试窗口即可看到挂载信息。 此处要注意的是原厂demo中的PID和VID,这两个参数必须正确,通过USB打开的VID为0453 PID为9005,如果通过UDISK打开的 VID为2109 PID为7638。
在SYDevice.cpp文件中定义了PID和VID。
2.原厂demo调试运行
在文件系统支持上卡了很长时间,底层文件系统支持加不上就会导致Open usb fail,设备就无法打开,但是AS606模块给我们提供了三种打开方式,分别是USB,UDISK和COM,我们试用的内核虽然不支持usbfs文件系统导致usb设备无法打开,但是可以支持UDISK设备的,所以我们依旧可以使用USB接口去打开指纹模块,将原厂提供的demo交叉编译后拷贝到开发板直接运行就可打开UDISK设备,但是调试程序无法执行,需要修改SYDevice.cpp文件里BulkSendPackage函数中的一个参数,如下图:
将图中0x02注释掉,改为0x01,此处修改终影响到了ioctl发送指令中的结构体里的结束位,由于0x02是AS602模块的结束位,而我们使用的AS606模块结束位为0x01,所以导致ioctl函数发送的cmd无效,无法正确执行,所以无法实现设备的驱动,修改过后即可正常使用。
3.接口封装
使用usb驱动指纹模块大多数接口在API说明文档中已经有说明,只要按照自己的要求去使用相对应的函数接口即可,但是在设备初始化的时候需要注意的是设备有一个验证密码的过程,初始密码为0,可自己修改,我们需要验证一下密码,密码验证正确后设备正常初始化,否则设备无法正常初始化。