嗨,支持团队:
我正在基于SDK3.0.8, sample128测试我的代码。
当我使用基本DVK时,它适用于Ext睡眠模式和没有ext_sleep_mode的情况。对于ext_sleep模式,基本的DVK停止调试。
当我将它刻入我的板(EEPROM)时,代码在未激活的ext_sleep_mode下工作得很好。如果我设置“#define CFG_EXT_SLEEP”并将它短打到我的板(EEPROM)中,当它被重置时,我可以接收到广告,然后没有广告。再次重置后,广告再次出现,然后丢失。因此,ext_sleep_mode停止了广告。请问如何修理,哪里有问题?
谢谢,
设备:
嗨,亚历克斯·罗
请检查你之前的帖子http://support.dialog-semiconductor.com/advertising-problem
也因为你提供一些额外的信息,我能理解它当克尔代码下载在你的董事会,我怀疑,它需要一些时间,直到设备分为睡眠所以在这段时间里,似乎你的设备是广告一旦设备分为延长睡眠无法广告,你能用智能代码片段检查一下吗?我还能想到的是,你能检查是否出于某种原因,调试器在da模块中是启用的,并防止da进入睡眠?
由于MT_dialog
嗨太,
这种情况与关于广告的另一个问题不同,ext_sleep_mode没有问题。没有广告发生非常偶然,可以通过重置来修复。
这个问题是ext_sleep_mode,它不能工作在我的板与EEPROM(广告在启动,然后第二秒它停止)。对于基本的DVK,它在停止调试器会话后的ext_sleep_mode下工作得很好。
我猜想原因来自调试器,但是尝试设置DEVELOPMENT_DEBUG =0(从OPT启动,原来是1 for jtag),问题仍然存在。那么,这个问题真的是由于DA芯片上的调试器还在启用造成的吗?
搜索项目中的调试器,并在BLE_SLP_Handler(void)中调用SetBits16(SYS_CTRL_REG, DEBUGGER_ENABLE, 0)。我认为这个问题可能不是由调试器引起的。也请建议如何禁用调试器。
同样的代码,我把它下载到基本的DVK,并离开“停止调试会话”,它工作得很好。这意味着代码工作,而不是ext_sleep_mode问题影响广告。
同样的代码,我下载HEX到我的板(在EEPROM),我可以看到广告后启动,然后关闭。我再次重置,它重复了同样的事情。我使用了SDK3.0.6与ext_sleep_mode类似的代码,它工作得很好(也使用了EEPROM)。
请建议,我是否需要对ext_sleep_mode进行一些设置或更改?或者调试器问题,我真的不能禁用它?
期待您的建议!
亚历克斯
嗨,亚历克斯·罗
我认为这两篇文章关注的是相同的事件,关于调试器SetBits16(SYS_CTRL_REG, DEBUGGER_ENABLE,0)足以禁用它,而且由于使用开发工具包时不会发生事件,所以应该没问题。事实上,你可以在重置后发布广告,这意味着你的设备可以正常启动,并在你准备睡觉时挂起。你能检查你的设备是否因为任何原因进入Hardfault或NMI处理程序(尝试在其中一个处理程序中设置GPIO)吗?你用看门狗吗?唯一会阻止da运行的东西应该是调试器(我们可以排除它),以及是否存在Hardfault或NMI
由于MT_dialog
嗨太,
通过正确设置32K时钟,这个问题得到了解决。
谢谢,
亚历克斯