
如上图的绿线上的数字。
看代码,它是在处理GAP_DEVICE_INIT_DONE_EVENT,从返回的结构体成员devAddr得到。它怎么不变呢?
下图中红线的Resoving list在哪儿被初始化的?在代码中还没有找到或梳理出流程。

This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如上图的绿线上的数字。
看代码,它是在处理GAP_DEVICE_INIT_DONE_EVENT,从返回的结构体成员devAddr得到。它怎么不变呢?
下图中红线的Resoving list在哪儿被初始化的?在代码中还没有找到或梳理出流程。

CC2652R的BLE Stack這部分是透過sysconf 去定义產生的
我有2块CC26X2 LAUNCHPAD,写的同一个simple_peripheral 例程。。
上电后,2块板子输出的ID Addr是不一样的。能否展开说明一下?它属于Bond的一个最开始环节,理解不了,继续不下去啊。
目前理解到:
1. GAP_DeviceInit(GAP_PROFILE_PERIPHERAL, selfEntity, addrMode, &pRandomAddress);
将 addrMode设置为ADDRMODE_RP_WITH_RANDOM_ID时,pRandomAddress指向已定义的6B数组,虽然pRandomAddress是数组名,但还是要&。
可以理解为:指定的ID Addr是随机地址,因为它可以人为指定。RP Addr是依随机地址生成的RPA。
每次上电,串口调试信息输出的ID Addr就是pRandomAddress中定义的6B。
2. 将 addrMode设置为ADDRMODE_RP_WITH_PUBLIC_ID时,pRandomAddress指向NULL。
每次上电,串口调试信息输出的ID Addr就是一个固定值(6B),也不知怎么来的。
谢谢您的分享!
关于GAP_DeviceInit函数,您可以看一下下面的链接

每次上电,串口调试信息输出的ID Addr就是pRandomAddress中定义的6B。
您的理解是正确的
将 addrMode设置为ADDRMODE_RP_WITH_PUBLIC_ID时,pRandomAddress指向NULL。
| pRandomAddr | Pointer to 6-byte Random Static Address of this device that will be copied to the stack. Valid only if addrMode is ADDRMODE_RANDOM or ADDRMODE_RP_WITH_RANDOM_ID and can not be NULL in these cases. Ignored for other address types. |
闲着又翻看了之前的帖子,发现可以人为写入芯片的BLE MAC。它或许就是Public addr吧。
如果還是覺的不清楚,可以參考一下 www.wowotech.net/.../ble_address_type.html