芯科平台EFR32MG21A020没有任务处理时,会自动进入休眠,如何设置为消息唤醒或禁止其进入休眠?
【已解决】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
Re: TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
tal_cpu_force_wakeup 这个函数会强行唤醒
系统是唤醒有:
- gpio中断唤醒
- zigbee poll定时唤醒
- tal_sw_timer_start 软件定时器唤醒
Re: TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
你好:
TuyaOS提供了两个接口:
tal_cpu_allow_sleep
和tal_cpu_force_wakeup
,用于控制设备允许休眠或者强制唤醒。
BTW.
对于低功耗设备,考虑到设备电池寿命,如果连续唤醒时间超过2min,系统定义为设备异常,并默认执行软复位操作,当然,开发者可重写虚函数tal_abnormal_wakeup_callback
自定义是否重启(根据返回值)。
我的栈溢不出。
Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
tal_cpu_force_wakeup是在什么地方调用?是在初始化时,还是在定时器中?
Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
可以理解为这个接口是SDK在进入休眠之前加的一个开关。tuya_init_last之前SDK内部会关闭或者开启,因此应用代码需要在tuya_init_last或者之后调用都可以。
我的栈溢不出。
Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
你好,这个好像不起作用,现在是我已经在 tuya_init_last 中添加了 tal_cpu_force_wakeup ,也已经禁止了重启,但现在的现像是只要上电后2秒钟内无动作就会进入休眠,需要用遥控器发码后(外部事件触发),才会继续上一次或几次的操作
Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
你好,请尝试下打开打印,使用tal_cpu_sleep_callback_register
接口注册进入低功耗和退出低功耗回调函数,在回调函数中加打印信息排查确认下是否进入休眠状态。
我的栈溢不出。
Re: 【求助】TuyaOS芯科平台EFR32MG21A020如何解决自动休眠问题?
好的,问题解决了,谢谢支持!