系统休眠时串口还在读写导致的黑屏问题(息屏后按power键无法唤醒显示屏)

在RTK定位设备中,当设备息屏进入休眠模式,串口读写可能因系统休眠导致异常,表现为显示屏无法唤醒或串口功能失效。分析认为是休眠后串口驱动出现问题。解决方案是在平台驱动的suspend函数中添加锁,阻止系统休眠,或在框架层修改代码。参考链接提供了一种禁止系统休眠的改法。
摘要由CSDN通过智能技术生成

问题描述:设备在进行rtk定位时,模块会通过串口同时进行读写操作。串口在读写时,如果息屏系统就会进入休眠,休眠的话CPU进入kill cpu状态。但是此时串口还在读写,这就导致出现一个意料外的问题,息屏只十几秒再按电源键的话显示屏将无法唤醒或者即便显示屏唤醒了,串口却出现无法读写的情况,只能重启设备串口才恢复正常。

分析:APP还在运行但是息屏后系统进入休眠流程。串口工作不正常了是系统休眠后导致串口驱动程序出现了问题。
暂不清楚按下power键为什么显示屏无法亮的原理

备注:应该是某个地方发生死锁了,不过当时并没有意识到这一点

解决方法:编写一个驱动,在platform_driver结构体里的suspend函数中(该函数在系统息屏后会被调用)判断GPS模块是否上电(已创建上电节点),如果上电了就加一把锁,让系统不休眠。
也可以在framework层修改相关代码,不过我没尝试过。如果有遇到类似问题的朋友可以去试试

禁止系统休眠改法可参考 https://blog.csdn.net/weixin_45023644/article/details/115406113

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值