Part Number:CC2652R
如上图的绿线上的数字。
看代码,它是在处理GAP_DEVICE_INIT_DONE_EVENT,从返回的结构体成员devAddr得到。它怎么不变呢?
下图中红线的Resoving list在哪儿被初始化的?在代码中还没有找到或梳理出流程。
zhiyong chen:
ID Addr是如何得到的?
Resolving list在simple_peripheral中在哪儿定义?自己在代码中没搜到它的使用。
,
YiKai Chen:
CC2652R的BLE Stack這部分是透過sysconf 去定义產生的
,
zhiyong chen:
我有2块CC26X2 LAUNCHPAD,写的同一个simple_peripheral 例程。。
上电后,2块板子输出的ID Addr是不一样的。能否展开说明一下?它属于Bond的一个最开始环节,理解不了,继续不下去啊。
,
YiKai Chen:
這部分可以參考 dev.ti.com/…/node
,
zhiyong chen:
目前理解到:
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),也不知怎么来的。
,
Susan Yang:
谢谢您的分享!
关于GAP_DeviceInit函数,您可以看一下下面的链接
https://software-dl.ti.com/simplelink/esd/simplelink_cc13x2_26x2_sdk/3.30.00.03/exports/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___g_a_p.html#gabd7c5f3cc85470854cf425e7e49b5ca5
zhiyong chen 说:每次上电,串口调试信息输出的ID Addr就是pRandomAddress中定义的6B。
您的理解是正确的
zhiyong chen 说:将 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.
,
zhiyong chen:
闲着又翻看了之前的帖子,发现可以人为写入芯片的BLE MAC。它或许就是Public addr吧。
e2echina.ti.com/…/cc2652-ble-mac
,
YiKai Chen:
如果還是覺的不清楚,可以參考一下 www.wowotech.net/…/ble_address_type.html
,
zhiyong chen:
嗯,看过了。
其实最后都是看Core 5.2.pdf,哈哈
,
YiKai Chen:
是的,讀core spec是最精確的