1.底層文件系統(tǒng)驅動支持
根據(jù)指紋模塊調試文檔指紋模塊驅動的加載的第一步就是嵌入式系統(tǒng)對于usbfs的支持,即/proc/bus/usb文件夾的支持,我們現(xiàn)在使用的內核雖然在menuconfig中不支持usbfs,但是可以支持/proc/bus/usb文件夾,所以可以支持AS606指紋模塊,使用usbhost模式,調試窗口即可看到掛載信息。 此處要注意的是原廠demo中的PID和VID,這兩個參數(shù)必須正確,通過USB打開的VID為0453 PID為9005,如果通過UDISK打開的 VID為2109 PID為7638。
在SYDevice.cpp文件中定義了PID和VID。
2.原廠demo調試運行
在文件系統(tǒng)支持上卡了很長時間,底層文件系統(tǒng)支持加不上就會導致Open usb fail,設備就無法打開,但是AS606模塊給我們提供了三種打開方式,分別是USB,UDISK和COM,我們試用的內核雖然不支持usbfs文件系統(tǒng)導致usb設備無法打開,但是可以支持UDISK設備的,所以我們依舊可以使用USB接口去打開指紋模塊,將原廠提供的demo交叉編譯后拷貝到開發(fā)板直接運行就可打開UDISK設備,但是調試程序無法執(zhí)行,需要修改SYDevice.cpp文件里BulkSendPackage函數(shù)中的一個參數(shù),如下圖:
將圖中0x02注釋掉,改為0x01,此處修改終影響到了ioctl發(fā)送指令中的結構體里的結束位,由于0x02是AS602模塊的結束位,而我們使用的AS606模塊結束位為0x01,所以導致ioctl函數(shù)發(fā)送的cmd無效,無法正確執(zhí)行,所以無法實現(xiàn)設備的驅動,修改過后即可正常使用。
3.接口封裝
使用usb驅動指紋模塊大多數(shù)接口在API說明文檔中已經(jīng)有說明,只要按照自己的要求去使用相對應的函數(shù)接口即可,但是在設備初始化的時候需要注意的是設備有一個驗證密碼的過程,初始密碼為0,可自己修改,我們需要驗證一下密碼,密碼驗證正確后設備正常初始化,否則設備無法正常初始化。