亲爱的对话团队,
当未使用OTP时,是否有可能在每次重新启动时设置新的自定义或随机BD地址?该方法,减数这里,这涉及修改addr_type.和addr.成员user_gapm_conf.结构,不起作用。BD地址始终从CFG_NVDS_TAG_BD_ADDRESS定义设置。
此外,你能澄清这个角色吗?nvds_get_func()(案件nvds_tag_bd_address.)来自nvds.c?
感谢你并致以真诚的问候!
嗨moguilevski,
谢谢你在线的帖子。如果我理解正确;您想在设备启动时与不同的DB地址进行广告。如果我是一个错误,请纠正我。您可以使用随机静态BD地址,因此您应该将user_cfg_address_mode宏在user_config.h标题文件中更改为app_cfg_addr_static。
谢谢,PM_DIALOG.
你好pm_dialog,
感谢您的答复。随机静态BD地址工作正常。但是,Wenn我读取了来自NVDS的BD添加剂,它仍然是CFG_NVDS_TAG_BD_ADDRESS定义的公共地址。
如果两种类型的地址都应该存储在设备存储器中?那么存储随机静态地址在哪里?
我们几乎具有相同的案例 - 通过UART在开机后通过UART接收公共BD地址,需要以编程方式设置,覆盖CFG_NVDS_TAG_BD_ADDRESS定义。
使用以下操作不起作用(public_address变量是6字节缓冲区,接收的公共bd地址):
/ *在Arch_System.c :: System_Init()中,使用OTP_HDR_GET_BD_ADDRESS()从OTP位置OTP_HDR_BDADDR_ADDR *读取BD地址并将其复制到DEV_BDADDR变量。如果OTP未编程,则* dev_bdaddr将是blank_otp_bdaddr(da14531)或co_null_bdaddr(da1458x)。变量* dev_bdaddr,然后仅用于nvds.c :: nvds_get_func时,标记为nvds_tag_bd_address。* *在nvds.c :: nvds_get_func(tag = nvds_tag_bd_address)中,检查dev_bdaddr的值,如果*不是空/ null,则将返回其值。否则,将使用用户配置值* nvds_data_storage.bd_address,它静态分配给cfg_nvds_tag_bd_address *(在da1458x_config_advanced.h中定义)。从ROM代码调用此函数。* / extern struct bd_addr dev_bdaddr;/ *
尽管事实上,在读它之后
struct bd_addr resp_addr;/ *读取设置地址* / lld_util_get_bd_address(&resp_addr);
实际上设置了新地址(resp_addr.addr == public_address),但是当广告开始时,DA14585使用旧地址进行广告。
基础Cyibin的评论,上面的工作,但我怀疑只有在user_app_init()中设置。如何随时更改地址 - 随时更改地址?
编辑:对于任何人想知道,我刚刚发现了工作方式。用于设置公共地址,以下内容
/ *实际设置当前BD地址* / lld_util_set_bd_address(&dev_bdaddr,0);
必须替换
/ *还通过链接层管理器* / llm_util_set_public_addr(&dev_bdaddr)立即使用此地址;llm_util_apply_bd_addr(0);/ * <0 =公共地址* /
read-back保持不变
/ *直接从链路层驱动程序* / lld_util_get_bd_address(&resp_addr)读取返回设置地址;
你好Bojanpotocnik,
非常感谢您的贡献。
嗨bojanpotocnik,
感谢您的意见和您的指示。
嗨moguilevski,
谢谢你在线的帖子。如果我理解正确;您想在设备启动时与不同的DB地址进行广告。如果我是一个错误,请纠正我。您可以使用随机静态BD地址,因此您应该将user_cfg_address_mode宏在user_config.h标题文件中更改为app_cfg_addr_static。
谢谢,PM_DIALOG.
你好pm_dialog,
感谢您的答复。随机静态BD地址工作正常。但是,Wenn我读取了来自NVDS的BD添加剂,它仍然是CFG_NVDS_TAG_BD_ADDRESS定义的公共地址。
如果两种类型的地址都应该存储在设备存储器中?那么存储随机静态地址在哪里?
亲爱的对话团队,
我们几乎具有相同的案例 - 通过UART在开机后通过UART接收公共BD地址,需要以编程方式设置,覆盖CFG_NVDS_TAG_BD_ADDRESS定义。
使用以下操作不起作用(public_address变量是6字节缓冲区,接收的公共bd地址):
尽管事实上,在读它之后
实际上设置了新地址(resp_addr.addr == public_address),但是当广告开始时,DA14585使用旧地址进行广告。
基础Cyibin的评论,上面的工作,但我怀疑只有在user_app_init()中设置。如何随时更改地址 - 随时更改地址?
编辑:对于任何人想知道,我刚刚发现了工作方式。用于设置公共地址,以下内容
必须替换
read-back保持不变
你好Bojanpotocnik,
非常感谢您的贡献。
嗨bojanpotocnik,
感谢您的意见和您的指示。
谢谢,PM_DIALOG.