我可以在启动过程中更改BD地址,例如,我在custom_nvds_get_func()中添加一些代码来从外部FLASH加载BD地址。但是以后我不能改变它。有办法更改BD地址吗每当需要后启动?
你好,请看下面的帖子,我相信它涵盖了你的问题。
http://support.dialog-semiconductor.com/bd-address-external-memory
BR JE_Dialog
恐怕你误解了我的问题。我已经看了帖子,我想动态更改BD地址,但是帖子中的解决方案只能更改一次BD地址。
我一整天都被这个问题给堵着了,你能帮帮我吗?
有什么建议吗?
你好summer20100514,
也许这个文档有帮助?
要使用上述方法,您需要通过键合获得IRK。
你能详细描述一下你的问题吗?
谢谢,但是我已经添加了代码来实现您所指出的文档中所讨论的功能,这是一个可解析的私有地址解决方案。它的工作原理。但我的问题是,我可以随时配置BD地址,比如使用一个应用程序来配置它。或者我不需要这样做,因为BD地址已经在不断的变化了??也许我没说清楚。
在384页的核心定义4.1中,它说:
设备可以选择在每次电源周期后将其静态地址初始化为一个新值。在设备电源循环之前,设备初始化后不能改变其静态地址值。
我不认为你需要自己更改地址
嗨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()是由stack调用的,所以我不知道它是否被调用了两次。
支持团队能回答这个问题吗?
你好,夏天,
您可以通过注释掉CFG_EXT_SLEEP和CFG_DEEP_SLEEP来关闭da14580_config.h中的睡眠模式。然后使用调试和断点来跟踪您的程序。
你好,请看下面的帖子,我相信它涵盖了你的问题。
http://support.dialog-semiconductor.com/bd-address-external-memory
BR JE_Dialog
恐怕你误解了我的问题。我已经看了帖子,我想动态更改BD地址,但是帖子中的解决方案只能更改一次BD地址。
我一整天都被这个问题给堵着了,你能帮帮我吗?
有什么建议吗?
你好summer20100514,
也许这个文档有帮助?
要使用上述方法,您需要通过键合获得IRK。
你能详细描述一下你的问题吗?
谢谢,但是我已经添加了代码来实现您所指出的文档中所讨论的功能,这是一个可解析的私有地址解决方案。它的工作原理。但我的问题是,我可以随时配置BD地址,比如使用一个应用程序来配置它。或者我不需要这样做,因为BD地址已经在不断的变化了??也许我没说清楚。
你好summer20100514,
在384页的核心定义4.1中,它说:
我不认为你需要自己更改地址
嗨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()是由stack调用的,所以我不知道它是否被调用了两次。
支持团队能回答这个问题吗?
你好,夏天,
您可以通过注释掉CFG_EXT_SLEEP和CFG_DEEP_SLEEP来关闭da14580_config.h中的睡眠模式。然后使用调试和断点来跟踪您的程序。
的问候!
PY