调试NXP一款NFC,功能通了,但是做BBAT无法测试,经过一段时间调试,主要遇到以下问题
1).适配平台流程,open/read/close,平台原本自带的是三星的NFC,是通过调用so库实现的BBAT,但是调试时NXP无法提供so库,所以换成了直接操作驱动实现
2).直接open设备节点/dev/xxx即可,注意添加权限,否则无法open成功
3).读写指令不成功,看log发现是I2C通信失败,最后发现是因为没有下载固件导致
4).NXP NFC 在读写指令时,需要先使用ioctl下载固件,否则会导致I2C通信失败,调用ioctl时也需要注意,平台BBAT部分是32bit应用,而驱动是64bit,调用ioctl会报错返回error not a typewriter,此问题出现主要是架构不匹配导致,查看NFC的驱动只有unlock_ioctl,需要在驱动中实现compat_ioctl,为了能在不同架构上通信,驱动实现时最好采用u32/u64这种无视架构的类型定义变量,防止出现异常