本文主要是介绍MT6762平台NXP NFC代码移植要点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 找到官网,获取源码包
NXP NFC移植源码
https://github.com/NXPNFCProject
固件
https://github.com/NXP/nfc-NXPNFCC_FW/tags
2 主要介绍源码移植
打开https://github.com/NXPNFCProject
下载对于源码包放到工程对于目录
nfcandroid_nfc_hidlimpl-master -->hardware/nxp/nfc目录下
nfcandroid_secureelement-master -->hardware/nxp/secure_element目录下
NFC_NCIHAL_libnfc-nci-master-->system/nfc目录下
NXPNFC_Reference-master-->vendor/nxp目录下
NFC_NCIHAL_base-master-->frameworks/base目录下,这个目录的代码移植完毕,需要删除对于obj(或用make clean)再重新编译.
i2c节点驱动代码
NXPNFC_I2CDriver-master-->kernel-4.9/drivers/misc/mediatek/nfc/
修改对应的makeFile,添加编译进去
3 其它注意点
DWS,配置i2c速率,Ven,DWL,IRQ等GPIO的读中断.
dts配置.配置i2c地址,速率,Ven,DWL,IRQ等GPIO 的dts
如果使用外部系统提供的CLK,需要接CLR_REQ脚,CLR_REQ时钟请求脚,由NXP固件控制,当需要外部时钟时(读NFC标签才需要),CLK_REQ拉高,不接时,用NFC参考电路模块使用的时钟.
DWL是需要升级固件时的控制脚.有些NFC模块一定要拉低才能正常工作,否则认为进入升级状态.
移植完毕后,开机完成就有NFC设备初始化,通过打印LOG确定i2c是否初始化成功,固件是否初始化成功.
4 LOG 分析
I2C总线通信成功LOG
03-21 09:39:52.101 399 1691 D NxpTml : PN54X - Tml Reader Thread Started................
03-21 09:39:52.101 399 1692 D NxpTml : PN54X - Tml Writer Thread Started................
03-21 09:39:52.101 399 1692 D NxpTml : PN54X - Tml Writer Thread Running................
03-21 09:39:52.101 399 1694 D NxpHal : thread started
03-21 09:39:52.101 399 1691 D NxpTml : PN54X - Read requested.....
03-21 09:39:52.101 399 399 D : sem_timedwait() succeeded
03-21 09:39:52.101 399 1691 D NxpTml : PN54X - Invoking I2C Read.....
03-21 09:39:52.102 399 1692 D NxpTml : PN54X - Write requested.....
03-21 09:39:52.102 399 1692 D NxpTml : PN54X - Invoking I2C Write.....
03-21 09:39:52.102 399 1692 D NxpTml : PN54X - Invoking I2C Write.....
03-21 09:39:52.102 399 1692 D NxpNciX : len = 4 => 20000100
03-21 09:39:52.102 399 1692 D NxpTml : PN54X - I2C Write successful.....
03-21 09:39:52.102 399 1692 D NxpTml : PN54X - Posting Fresh Write message.....
03-21 09:39:52.102 399 1692 D NxpTml : PN54X - Tml Writer Thread
....
....
....
03-21 09:39:52.107 399 1691 D NxpTml : PN54X - Read requested.....
03-21 09:39:52.107 399 1691 D NxpTml : PN54X - Invoking I2C Read.....
03-21 09:39:52.108 399 1692 D NxpTml : PN54X - Write requested.....
03-21 09:39:52.108 399 1692 D NxpTml : PN54X - Invoking I2C Write.....
03-21 09:39:52.108 399 1692 D NxpTml : PN54X - Invoking I2C Write.....
03-21 09:39:52.108 399 1692 D NxpNciX : len = 5 => 2001020000
03-21 09:39:52.108 399 1692 D NxpTml : PN54X - I2C Write successful.....
03-21 09:39:52.108 399 1692 D NxpTml : PN54X - Posting Fresh Write message.....
03-21 09:39:52.108 399 1692 D NxpTml : PN54X - Tml Writer Thread Running................
03-21 09:39:52.108 399 1694 D NxpHal : write successful status = 0x0
03-21 09:39:52.108 399 399 D NxpHal : Response timer started
03-21 09:39:52.108 399 399 D NxpHal : Waiting after ext cmd sent
03-21 09:39:52.109 399 1691 D NxpTml : PN54X - I2C Read successful.....len = 39
03-21 09:39:52.109 1627 1627 V MediaProvider: test album art path: /storage/emulated/0/Android/data/com.android.providers.media/albumthumbs
03-21 09:39:52.109 399 1691 D NxpTml : PN54X - Posting read message.....
这篇关于MT6762平台NXP NFC代码移植要点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!