跳过主要内容

在调试和独立模式之间的不同行为

1周前

在调试和独立模式之间的不同行为

发布的aprocha4685点 6个回答
0的问题

亲爱的所有,

我使用带有DA14531的PRO-MB开发工具包。到目前为止,我一直在用调试器测试我的代码,它在扩展睡眠模式下工作得很好,从GPIO或RTC唤醒以BLE发布。

当我在没有调试器的情况下运行我的代码(SPI Flash中的代码),我只得到第一个广告,然后它停止广告,而其他任务正常运行(从外部GPIO唤醒,I2C通信)。

您能澄清使用调试器和不使用调试器运行时的行为预期差异吗?在其他事情中,没有在保存的RAM中声明的变量可以在调试器模式中保存吗?

谢谢

1周前

PM_Dialog

嗨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通信)。

这有点奇怪,因为您提到了其他任务正在正确运行。你能检查一下你的应用程序代码是否停止了广告吗?

我假设这是一个自定义代码,所以请分享更多关于您正在尝试做的细节。

请确保你的变量被保存在记忆中。否则,它们会在睡眠中丢失。

例如:

uint8_t my_var __SECTION_ZERO(“retention_mem_area0”);/ / @RETENTION记忆

谢谢,PM_Dialog

1周前

PM_Dialog

嗨aprocha46,

刚刚删除了我之前的评论-我想把它贴在这个论坛门票上://www.xmece.com/support-posts/different-behavior-d..。

我为造成的混乱道歉。我们可以在这个论坛上继续讨论这个问题。

谢谢,PM_Dialog

1周前

aprocha46 85点

你好,

是的,实际上它运行良好,当我按Ctrl-F5 + F5:运行从系统ram与调试器附加

你说调试器防止设备休眠:那么为什么我得到(断点)回调.app_going_to_sleep ().app_resume_from_sleep ()然后呢?

看起来它将与调试器附加睡觉,但不是真的?我不明白,你能解释一下吗?

谢谢

1周前

PM_Dialog

嗨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天前

aprocha46 85点

你好,

我一直在忙其他的话题,现在回到你这里。

我在使用Keil环境。

你的意思是我进入调试模式来加载应用程序,然后离开调试模式,此时开始时没有调试器?很好,我不知道这个功能。

然后,是的,在这种情况下,我可以看到我得到相同的行为,当板与Flash中的代码是独立的。

我得到GPIO唤醒和处理(串行通信),但只有在一个模式下,我开始广告500ms周期永远。

这是否与某个未保存的变量有关,或者与BLE计时器有关?

谢谢

2天前

PM_Dialog

嗨aprocha46,

因为您可以在没有附加调试器的情况下复制此操作,所以问题可能出现在DA14531将要休眠或从休眠中醒来的时候。请记住,芯片在间隔(广告或连接)之间处于睡眠状态。所以,你能分享一下第一个广告的功率图吗?您还可以使用SmartSnippets工具箱中的Power Profiler。

谢谢,PM_Dialog