低功耗状态死机
-
这些是我关于进入和唤醒低功耗状态的操作,有没有什么问题,现在偶尔会进入低功耗后就无法唤醒,蓝牙广播也没了,需要复位才能正常开机使用,这可能是哪里的问题,堆栈溢出导致的,还是低功耗唤醒源设置的有问题
-
FR8008GP
-
排查一下 ,感觉像是唤醒之后程序卡死了,蓝牙广播会自动唤醒的
-
唤醒后直接的外设重新初始化的操作在这个函数里面执行
-
@zhao 我把这个函数里面的打印打开,睡眠状态会一直打印w,这是正常的吗,死机的概率低 一直没有复现出来,而且死机后搜不到蓝牙
-
-
@yyzxx 是的因为只要蓝牙广播一次也会唤醒
-
@yyzxx 可以加个看门狗试一下
-
@zhao加了看门狗 但是喂狗在定时器中断里喂的,看门狗没复位 那就是定时器还在工作吧,如果定时器都在工作 蓝牙广播是不是应该也正常
-
@yyzxx 程序没卡死 , 看看哪里是不是把蓝牙广播关了
-
@zhao 广播没有手动关 因为是偶现的开不了机,正常情况下低功耗状态也有广播,有没有什么情况可能导致广播关了
-
@yyzxx 感觉低功耗的逻辑有点问题 ,感觉没理解没理解我们睡眠唤醒的机制 。
sleep_enable,不是立马进入睡眠状态。会检测有没有要执行的任务。没有才会睡眠,有任务要执行会自动唤醒,中断源触发 也是
睡眠的时候蓝牙是不广播的,芯片会周期性唤醒 (和蓝牙广播时间间隔有关),所以你在调sleep_enable的时候蓝牙是广播的,原理同上一条