android nfc tag3 调试日记

android nfc tag3 调试日记

又到了每天最愉快的调试android nfc模块的时候。nfcpy中有一段示例代码:listen.py
大致是模拟nfc tag3卡片。里面对pmm(设备号),idm(tag编号)进行设置然后发包。

查阅tag3 spec,发现:

ndef detection:

step1:
nfc forum device sends a polling command with system code 12fc,
ndef-enabled type 3 tag respond to the polling command by sending a polling response
include ing IDm and Pmm

我们得出结论:对pmm和idm进行解析的部分很可能是NDEF detection的部分,我们如何找到对应的源码呢?
直接在源码中搜索pmm,找到一处:RW_T3tDetectNDef。于是我们就找到了T3tDetectNDef。

继续研究,该函数是如何被调用的呢?

放到gdb中调试:对其下断点,打印函数调用如下:

RW_T3tDetectNDef
nfa_rw_detect_ndef
nfa_rw_handle_op_req
nfa_rw_handle_event
nfa_sys_event
nfc_task
gki_task_entry

很好,我们发现函数调用栈跨越了多个模块,自地向上下断点验证:

发现将nfc发射器放到手机附近时没有在gki_task_entry处断下,说明在在上方必定有一处循环:果然在nfc_task处
while(true)循环。今天的调试任务到此为止,开始分析源码,美滋滋。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容