我可以在启动期间更改BD地址,例如,我在custom_nvds_get_func()中添加一些代码来从外部FLASH加载BD地址。但是我以后不能改了。有没有办法更改屋宇署地址每当需要后启动?
Hi There,请看下面的帖子,我相信它涵盖了你的问题。
http://support.dialog-semiconductor.com/bd-address-external-memory
BR JE_Dialog
恐怕你误解了我的问题。我已经看了帖子,我想动态更改BD地址,但是帖子中的解决方案只能更改BD地址一次。
我整天都被这个问题困扰着,你能帮帮我吗?
有什么建议吗?
你好summer20100514,
也许这份文件有用?
要使用描述的方法,您需要通过绑定获得IRK。
你能详细描述一下你的问题吗?
谢谢,但是我已经添加了代码来实现您指出的文档中讨论的功能,这是一个可解析的私有地址解决方案。它的工作原理。但我的问题是,我可以随时配置BD地址,如使用一个应用程序来配置它。或者我不需要这样做,因为屋宇署的地址已经在不时更改??也许我没说清楚。
在核心定义4.1卷3 p. 384中说:
设备可以选择在每个电源循环后将其静态地址初始化为一个新值。在设备通电循环之前,设备初始化后不得改变其静态地址值。
我觉得你不需要自己改地址
嗨summer20100514,
您可以更改BD地址,但要使其生效,您必须重置无线电。每当你更改你的bd地址时,请使用GAPM_RESET消息重置你的无线电。
的问候!PY
我测试了GAPM_RESET命令,BD地址改变了,但是仍然有一些东西让我困惑。我在custom_nvds_get_func()中添加了以下代码For (uint8_t I = 0;我< 6;我+ +){但[我]= reload_bd_addr[我];}reload_bd_addr [0] + = 1;
For (uint8_t I = 0;我< 6;我+ +){但[我]= reload_bd_addr[我];}reload_bd_addr [0] + = 1;
在我的服务的函数gattc_write_cmd_ind_handler()中//重置底层。struct gapm_reset_cmd* cmd = KE_MSG_ALLOC(gapm_reset_cmd, TASK_GAPM, TASK_APP,gapm_reset_cmd);cmd - >操作= GAPM_RESET;ke_msg_send (cmd);
//重置底层。struct gapm_reset_cmd* cmd = KE_MSG_ALLOC(gapm_reset_cmd, TASK_GAPM, TASK_APP,gapm_reset_cmd);cmd - >操作= GAPM_RESET;ke_msg_send (cmd);
结果
我的问题
1.检查是否运行此代码两次。2.您还需要重新启动您的配置文件服务后重置。
我猜函数custom_nvds_get_func()是由堆栈调用的,所以我不知道它是否被调用了两次。
支持团队能帮我回答一下吗?
你好,夏天,
可以通过注释掉CFG_EXT_SLEEP和CFG_DEEP_SLEEP来关闭da14580_config.h中的睡眠模式。然后使用调试和断点来跟踪程序。
Hi There,请看下面的帖子,我相信它涵盖了你的问题。
http://support.dialog-semiconductor.com/bd-address-external-memory
BR JE_Dialog
恐怕你误解了我的问题。我已经看了帖子,我想动态更改BD地址,但是帖子中的解决方案只能更改BD地址一次。
我整天都被这个问题困扰着,你能帮帮我吗?
有什么建议吗?
你好summer20100514,
也许这份文件有用?
要使用描述的方法,您需要通过绑定获得IRK。
你能详细描述一下你的问题吗?
谢谢,但是我已经添加了代码来实现您指出的文档中讨论的功能,这是一个可解析的私有地址解决方案。它的工作原理。但我的问题是,我可以随时配置BD地址,如使用一个应用程序来配置它。或者我不需要这样做,因为屋宇署的地址已经在不时更改??也许我没说清楚。
你好summer20100514,
在核心定义4.1卷3 p. 384中说:
我觉得你不需要自己改地址
嗨summer20100514,
您可以更改BD地址,但要使其生效,您必须重置无线电。每当你更改你的bd地址时,请使用GAPM_RESET消息重置你的无线电。
的问候!
PY
我测试了GAPM_RESET命令,BD地址改变了,但是仍然有一些东西让我困惑。我在custom_nvds_get_func()中添加了以下代码
For (uint8_t I = 0;我< 6;我+ +)
{
但[我]= reload_bd_addr[我];
}
reload_bd_addr [0] + = 1;
在我的服务的函数gattc_write_cmd_ind_handler()中
//重置底层。
struct gapm_reset_cmd* cmd = KE_MSG_ALLOC(gapm_reset_cmd, TASK_GAPM, TASK_APP,
gapm_reset_cmd);
cmd - >操作= GAPM_RESET;
ke_msg_send (cmd);
结果
我的问题
嗨summer20100514,
1.检查是否运行此代码两次。
2.您还需要重新启动您的配置文件服务后重置。
的问候!
PY
我猜函数custom_nvds_get_func()是由堆栈调用的,所以我不知道它是否被调用了两次。
支持团队能帮我回答一下吗?
你好,夏天,
可以通过注释掉CFG_EXT_SLEEP和CFG_DEEP_SLEEP来关闭da14580_config.h中的睡眠模式。然后使用调试和断点来跟踪程序。
的问候!
PY