本文主要介绍android7.1.1平台的移植流程,硬件是rockchip3399,其他平台可能会存在些差异。
一、驱动移植
1.驱动源码下载路径: https://github.com/NXPNFCProject/NXPNFC_I2CDriver/tree/master/pn6xT/pn54x-i2c
2.dts配置,gpio部分根据实际电路配置即可:
pn547: pn547@28 {
compatible = "nxp,pn547";
reg = <0x28>;
status = "okay";
clock-frequency = <400000>;
interrupt-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
firmware-gpios= <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
enable-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
};
3.config中加入CONFIG_NFC=y CONFIG_NFC_NXP_PN5XX=y
二、lib库更换
1.下载源码,clone后记得将版本切换至对应的系统平台,我这里是br_android_ncihalx_n
https://github.com/ NXPNFCProject/NFC_NCIHAL_libnfc-nci
2.将SDK中的库源码删除后用上述代码替代,源路径为external/libnfc-nci/
三、android NFC服务APP更换
1.下载源码,clone后记得将版本切换至对应的系统平台,我这里是br_android_ncihalx_n
https://github.com/NXPNFCProject/NFC_NCIHAL_Nfc
2.将SDK中的库源码删除后用上述代码替代,源路径为packages/apps/Nfc
四、更新补丁包
1.下载补丁包,补丁包中有更新脚本
https://github.com/NXPNFCLinux/nxpnfc_android_nougat
2.下载补丁需要的源码,clone后记得将版本切换至对应的系统平台,我这里是 br_android_ncihalx_n
https://github.com/NXPNFCProject/NFC_NCIHAL_base
3.根据脚本,配置源码目录。
3.1.在源码根目录新建文件夹NxpNfcAndroid,将上述1和2的内容拷贝到此文件夹中
3.2.配置脚本中源码根目录,我的是ANDROID_BUILD_TOP=/data/rk3399/Android7-1-Industry
4.执行脚本,install_NFC.sh PN7150
五、遇到的问题
1.编译报错,只能根据错误提示修改源码。
2.I2C不通,检测enable脚是否拉高,示波器量i2c data脚是否有信号输出,输出值是否对
3.设置界面NFC功能没显示,先检查配置文件/system/etc/permissions/platform.xml中是否有unavailable-feature name="android.hardware.nfc",如果有则需要删除再更新至系统中。如果还未能解决,就得根据日志信息查询报错源码处原因了。
4.其他问题也可以加我微信讨论交流哦