高通高速串口msm_serial_hs的BUG调试

来源:互联网 发布:c语言翻译成流程图 编辑:程序博客网 时间:2024/04/28 19:27

最近产品项目更新了硬件,突然串口出现一点问题。

问题描述:Android休眠再唤醒对串口进行数据读取,数据头一个字节被插入了0x00

    首先查看驱动读取出来的log是否正确。

    adb shell cat sys/kernel/debug/ipc_logging/msm_serial_hs/log 发现实际读取到的数据是正常的并没有被插入0x00

    然后在tty_io的tty_read加入打印printk 此时返回给用户空间的buf已经被插入了0x00字节。

    后来还是从硬件排查。发现两版本的硬件在Android休眠时RX脚的电压不一致。从而导致了串口驱动状态被status被设置成UARTDM_SR_RX_BREAK_BMSK

    这个异常如果没有在设置串口时设置IGNBRK表示位,则会在数据头字节插入0x00内容。


真相大白。

原创粉丝点击