亮屏后第一时间划不动触控屏,第二次才ok

问题背景:

              问题基于TDDI屏, 这个是不带flash的, 每次开机和亮灭屏都是需要对tp的固件进行重新download. 另外,唤醒流程中,当lcd的通知连过来通知tp进行resume时候, 主体的tp resume动作是另外起一个线程进行调度出去的.

分析问题:

           综上器件情况, 当底层驱动resume完成后, 上层绘图完成后,背光亮起时,如果这时tp resume还未完成,就存在标题问题: 亮屏后第一时间划不动触控屏,第二次才ok.

修改方案:

             问题大致是一个异步的优化过程,尽量去提升tp 被调度出去的resume的花费时间(当然如果不做调度处理也可以,如果不建议整体亮屏时间慢的话).接下来一个关键点,如何做到优化代码运行时间. 这样问题就变成一个如何让代码高效运行的修改了.

             查看整个tp resume 代码,其中包括resume后固件升级, 会发现这家tp厂商为了等待一些不确定的硬件状态,大量使用while语句,导致即使提高tp resume线程的优先级,都不能解决这个问题.

所以最后的修改方案就是降while的开销改为sleep 或者for 的语句开销, 这样整体代码运行后时间就大大减少.

总结: C 语言运行在设备上是需要转化汇编语言和机器语言的,所以可能产用while语句的开销对于汇编语言来说是非常巨大.要使代码高效运行,尽量少用while 语句, 哪怕用do while 替换可能开销会小一些.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值