亲爱的Dialog
我注意到,蓝牙设备地址(BDADDR)同时存在于OTP NVDS和OTP报头中
在地址为0x40098的OTP NVDS中,在引导时将其复制到0x20000340+0x98的sysram中
在地址0x47FD4的OTP报头中
我的问题是:
为什么BDADDR存储在两个位置?
是否有一个地方否决了另一个?
蓝牙协议栈(ROM)使用哪个位置?
蓝牙协议栈(ROM)是否不直接读取BDADDR,而只是从用户应用程序发送的消息中获取BDADDR?
先谢谢你
致以最诚挚的问候,
齐亚诺
丹麦
设备:
你好,齐亚诺,
只是存储bd地址的另一个位置,代码使用OTP报头读取bd地址,如果为空,则转到NVDS并从那里填充bd地址。您可以查看symdef.txt文件来检查ROM代码的位置。ROM代码调用nvds\u get overided by The custom\u nvds\u get\u func in The nvds.c以获取BD地址。如果读取OTP并用OTP中的值填充dev\u bdaddr变量,并且该值不是零,那么将选择OTP bd地址,否则代码将调用nvds\u get\u func从nvds读取。
谢谢你的对话
谢谢对话。
这给了我非常有用的信息,和一个很好的理解。