我如何验证我的系统正在进入睡眠模式?是否有特定的回调,当去睡觉/醒来时被调用?
我的代码目前正在调用以下函数:
/* *在一个唤醒周期,等待XTAL32M晶体解决。* BLE, USB和UART块需要XTAL32M被启动和*运行正常工作。* / pm_set_wakeup_mode(真正的);/*设置所需的休眠模式。* / pm_sleep_mode_set (pm_mode_extended_sleep);/*设置唤醒方式。* / pm_set_sys_wakeup_mode (pm_sys_wakeup_mode_fast);
这就是我需要设置的一切,以确保我们在广告之间睡觉吗?
如果我是中心,我在扫描,我能期待什么样的睡眠时间?
我在另一篇文章中读到SmartSnippets工具箱不能正确读取uA中的睡眠周期值。如果我们想确认设备在长睡眠周期中的当前使用情况,您建议我们如何操作?
谢谢你!
约翰
设备:
嗨,约翰,
非常感谢你的问题。我们将直接在您的注册电子邮件地址联系您。
谢谢,PM_Dialog
你好
以下是DA1468x的答案
如果您想确保系统处于睡眠模式,可以使用JTAG探测并在WFI指令上使用断点。JTAG探测将帮助确定所有条件满足时进入睡眠的精确时刻(os、ble、外围设备适配器中没有等待任务……)。在这个精确的时刻,由于睡眠而关闭的所有资源都不可用(例如I2C寄存器组或关闭电源域中的任何寄存器组)。WFI的代码行位于由ARM提供的CMSIS文件中(sdk/bsp/include/cmsis_gcc.h)。这个中断应该允许您检查外围设备的电源供应和GPIO状态,以确保没有任何东西丢失,以维持最低限度的服务。
唤醒后,所有这些寄存器银行都通过唤醒程序恢复,因此您可以看到它们在关闭期间为零,并在唤醒后恢复到以前的状态。
系统使用定时器1来管理它的睡眠时间,所以你也可以从定时器1中断处理程序发送信号,例如GPIO和示波器或LED。
鲍勃
嗨,鲍勃,
非常感谢您的提示和您的回答。
问候,PM_Dialog