1周前
在调试和独立模式之间的不同行为
发布的aprocha4685点 6个回答亲爱的所有,
我使用带有DA14531的PRO-MB开发工具包。到目前为止,我一直在用调试器测试我的代码,它在扩展睡眠模式下工作得很好,从GPIO或RTC唤醒以BLE发布。
当我在没有调试器的情况下运行我的代码(SPI Flash中的代码),我只得到第一个广告,然后它停止广告,而其他任务正常运行(从外部GPIO唤醒,I2C通信)。
您能澄清使用调试器和不使用调试器运行时的行为预期差异吗?在其他事情中,没有在保存的RAM中声明的变量可以在调试器模式中保存吗?
谢谢
1周前
嗨aprocha46,
刚刚删除了我之前的评论-我想把它贴在这个论坛门票上://www.xmece.com/support-posts/different-behavior-d..。
我为造成的混乱道歉。我们可以在这个论坛上继续讨论这个问题。
谢谢,PM_Dialog
1周前
你好,
是的,实际上它运行良好,当我按Ctrl-F5 + F5:运行从系统ram与调试器附加
你说调试器防止设备休眠:那么为什么我得到(断点)回调.app_going_to_sleep ()和.app_resume_from_sleep ()然后呢?
看起来它将与调试器附加睡觉,但不是真的?我不明白,你能解释一下吗?
谢谢
1周前
嗨aprocha46,
是的-当附加调试器时(Ctrl-F5 + F5),你可以逐步遍历代码,添加断点,获取所有的回调函数等等,但是系统并没有休眠。它似乎是在睡觉,但实际上它不是当调试器是附加的。
如果检查DA14531框图,您将看到设备包含SWD(JTAG)接口。当连接并通过cope时,该接口为ON。
请参阅所附的截图,您将看到,当附加JTAG时,功耗很高。
因此,我的建议是从System-RAM运行代码,而不附加调试器。双击启动/停止调试会话(Ctrl+F5)将下载FW到System-RAM。
如果DA14531在没有调试器的情况下从RAM启动,您能否复制您在最初文章中提到的行为?
谢谢,PM_Dialog
附件 | 大小 |
---|---|
SmartSnippetsToolbox.PNG | 150.64 KB |
5天前
你好,
我一直在忙其他的话题,现在回到你这里。
我在使用Keil环境。
你的意思是我进入调试模式来加载应用程序,然后离开调试模式,此时开始时没有调试器?很好,我不知道这个功能。
然后,是的,在这种情况下,我可以看到我得到相同的行为,当板与Flash中的代码是独立的。
我得到GPIO唤醒和处理(串行通信),但只有在一个模式下,我开始广告500ms周期永远。
这是否与某个未保存的变量有关,或者与BLE计时器有关?
谢谢
1周前
嗨aprocha46,
谢谢你的问题。请看下面我的反馈。
到目前为止,我一直在用调试器测试我的代码,它在扩展睡眠模式下工作得很好,从GPIO或RTC唤醒在BLE中发布。
1.您的意思是当DA14531从附加了调试器的System-RAM启动时一切正常吗?
点击Start/stop debug session(Ctrl+F5)和Run(F5)
在这种情况下,调试器阻止设备休眠。
2.或者当它从没有附加调试器的System-RAM引导时?
双击Start/stop debug session(Ctrl+F5)下载FW到RAM中。
在这种情况下,您能检查代码是否按照预期工作吗?
>>>当我在没有调试器的情况下运行我的代码(SPI Flash中的代码),我只得到第一个广告,然后它停止广告,而其他任务正常运行(从外部GPIO唤醒,I2C通信)。
这有点奇怪,因为您提到了其他任务正在正确运行。你能检查一下你的应用程序代码是否停止了广告吗?
我假设这是一个自定义代码,所以请分享更多关于您正在尝试做的细节。
请确保你的变量被保存在记忆中。否则,它们会在睡眠中丢失。
例如:
谢谢,PM_Dialog