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