SkylarkOS 低功耗使用指南
低功耗是本方案的一个特色。低功耗情况下,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数据,就可以把开发板唤醒并接收到对应的网络数据