休眠状态下UART通讯服务异常

有项目要求手机接收到串口TX数据指令点亮或关闭屏幕.
接收串口指令关闭屏幕没有问题,而在黑屏休眠状态下接收TX指令有问题,屏幕无法点亮,有时需要循环发送多次TX指令才有响应。
连接USB调试的时候,手机黑屏状态下可以正常接收串口的TX端指令,屏幕可以正常亮。(USB调试时CPU不休眠)

接收TX指令后的亮屏和灭屏方法:
PowerManager pm = (PowerManager) sContext.getSystemService(Context.POWER_SERVICE);
pm.wakeUp(SystemClock.uptimeMillis());//亮屏

pm.goToSleep(SystemClock.uptimeMillis());//灭屏  


而后与MTK沟通之后得知Uart唤醒目前不支持,建议外部唤醒用EINT pin。

涉及电路修改,一筹莫展之际突然来了想法,实现黑屏不进休眠状态就可以了啊!
于是修改kernel/kernel/power/autosleep.c 在try_to_suspend 函数开始的时候直接return,测试后成功。


附:开机动画完之后UARTlog停止输出
UART LOG:
ADB Shell:adb shell setprop persist.uartconsole.enable 1
1. 在超级终端窗口按下键盘的任何一个按键就可以让UART log继续吐。此种方式需要UART的TX和RX都要连接好。
2. 通过修改proc参数的方式: adb shell echo 1 > /proc/mtprintk

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值