NFC Controller
在《NFC技术简介》的最后介绍到NFC Stack通过HIDL技术获取到HAL Server,而该Server端通过HAL技术打开了NFC产商提供的so库。本篇就大概介绍下HAL这块是怎么和厂商NFC芯片交互的,一般厂商会提供对应芯片的一个so库,该so实现了HAL接口事先声明的函数,然后so库再和对应的芯片硬件模块交互。这里以NXP产商的NFC芯片为例介绍下产商so库的初始化过程,安卓源码采用的是Android-O版本的源码进行的分析。
相关代码路径:systemfchalimplpn54x,编译后生成nfc_nci_pn54x.default.so
初始化流程:
HAL Server通过HAL加载上述的so库,我们就从这里开启我们的奇妙旅程吧。基本时序图如下:
在上面的时序图中可以看到产商so库初始化主要是创建了三个线程ÿ