TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2652R: simple_peripheral例程中的ID addr是如何得到的?

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是最精確的

赞(0)
未经允许不得转载:TI中文支持网 » CC2652R: simple_peripheral例程中的ID addr是如何得到的?
分享到: 更多 (0)