SkylarkOS 低功耗使用指南

优质
小牛编辑
135浏览
2023-12-01

低功耗是本方案的一个特色。低功耗情况下,ARM域断电,CK域进入休眠模式,仅仅麦克风继续拾音,DSP待机状态。一但检测到激活词,将立刻恢复ARM域,进入正常工作模式。

支持低功耗下休眠唤醒,有:

  • 激活词唤醒
  • wifi唤醒
  • RTC定时唤醒
  • 按键中断唤醒

快速体验

目前skylark app默认10秒内,无任何操作的情况下,自动进入低功耗模式。
进入低功耗,可以通过串口打印,出现如下打印信息确认:

低功耗情况下,串口将关闭,adb也自动断开。
喊唤醒词后可以立刻激活,进行语音交互。

低功耗调试命令

也可以自己手动输入命令进入低功耗

在shell下输入:

echo mem > /sys/power/state

回车后将进入低功耗

配置相关

make menuconfig

低功耗服务介绍

在middleware/power_manager目录下,有对应服务的源代码和一个测试例子
服务程序为:power_manager,在系统启动后自动后台执行,监听消息来判断是否进入低功耗
相关API接口的使用,可以参考对应目录下的README.md和pm_test.c

skylark app低功耗流程简要说明

加载低功耗模块操作参考:skylark/app/iotjs_app_sdk/hw/hw.js
应用上有开启和关闭低功耗的控制,在iotjs_app_sdk/config/hw.json

true代表开启

false代表关闭

以图灵方案为例:
在Turing.js里,有个定时器setInterval(),在没有任何操作的情况下,默认10秒自动进入低功耗

时间可以在config.json里配置,单位秒

lowpower应用处理在:app/iotjs_app_sdk/user/user.js

DealSolutionUserMessage()

wifi唤醒验证

使用8723dswifi芯片来验证低功耗唤醒
先确认驱动是否支持wifi唤醒功能

进middleware/hal/wifi/rtl8723ds/driver/Makefile, 把 CONFIG_WAKEUP_TYPE = 0x5 改成 0x7

一种办法是重新编译整个方案,重新烧录文件系统

另外一种办法是方案已经编译出来了,只需要重新编译驱动重新编译驱动:
make package/hal/clean
make package/hal/compile

在 openwrt/build_dir/target-arm_cortex-a7+neon_glibc-2.22_eabi/hal/wifi/rtl8723ds/driver 下找到驱动 8723ds.ko

把驱动通过adb push 放到开发板的/lib/modules/4.4.25下

wifi唤醒测试方法:
假设pc电脑的ip地址为192.168.1.10,开发板的ip地址为192.168.1.11,在开发板进入低功耗的时候,操作pc进行ping操作:ping 192.168.1.11,可以发现开发板会被网络数据唤醒

可以在开发板写个socket client端,pc实现个socket server端,开发板连接上pc。等开发板进入低功耗后,server端主动发送TCP/IP数据,就可以把开发板唤醒并接收到对应的网络数据