【已解决】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

Zigbee 子设备开发


Post Reply
john@lu
Posts: 23

芯科平台EFR32MG21A020没有任务处理时,会自动进入休眠,如何设置为消息唤醒或禁止其进入休眠?

iot_man
Posts: 60

Re: TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

tal_cpu_force_wakeup 这个函数会强行唤醒
系统是唤醒有:

  1. gpio中断唤醒
  2. zigbee poll定时唤醒
  3. tal_sw_timer_start 软件定时器唤醒
zeso
Posts: 132

Re: TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

你好:
TuyaOS提供了两个接口:
tal_cpu_allow_sleeptal_cpu_force_wakeup,用于控制设备允许休眠或者强制唤醒。

BTW.
对于低功耗设备,考虑到设备电池寿命,如果连续唤醒时间超过2min,系统定义为设备异常,并默认执行软复位操作,当然,开发者可重写虚函数tal_abnormal_wakeup_callback自定义是否重启(根据返回值)。

我的栈溢不出。

john@lu
Posts: 23

Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

tal_cpu_force_wakeup是在什么地方调用?是在初始化时,还是在定时器中?

zeso
Posts: 132

Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

可以理解为这个接口是SDK在进入休眠之前加的一个开关。tuya_init_last之前SDK内部会关闭或者开启,因此应用代码需要在tuya_init_last或者之后调用都可以。

我的栈溢不出。

john@lu
Posts: 23

Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

你好,这个好像不起作用,现在是我已经在 tuya_init_last 中添加了 tal_cpu_force_wakeup ,也已经禁止了重启,但现在的现像是只要上电后2秒钟内无动作就会进入休眠,需要用遥控器发码后(外部事件触发),才会继续上一次或几次的操作

zeso
Posts: 132

Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

你好,请尝试下打开打印,使用tal_cpu_sleep_callback_register接口注册进入低功耗和退出低功耗回调函数,在回调函数中加打印信息排查确认下是否进入休眠状态。

我的栈溢不出。

john@lu
Posts: 23

Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?

好的,问题解决了,谢谢支持!

Post Reply