Sigmastar Uart_debugsop手册

REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 04/15/2024

    问题1. Uart收不到数据或者收到的数据不符合预期

    图1-1 rx接收异常问题排查思维导图

    流程 方法 出口条件 下一步 需要供给SWRD的资料 相关可参考FAQ
    A 数据接收情况,可使用串口工具进行调试 出口条件1:
    1.完全接受不到数据
    出口条件2:
    1.可以接受到数据,但是内容错误
    出口条件3:
    1.正常接收数据
    出口条件1:
    >B
    出口条件2:
    >C
    出口条件3:
    ==>流程结束
    B 确认使用的pin对应的gpio index,通过sys下的gpio节点控制gpio拉高拉低 出口条件1:
    1.rx pin无法正常拉高拉低
    出口条件2:
    1.rx pin可以正常拉高拉低
    出口条件1:
    >检查测量点到芯片对应pin是否导通或是否有电路钳制
    出口条件2:
    >D
    C 抓取接收端的波形分析 出口条件1:
    1.信号异常
    出口条件2:
    1.信号正常
    出口条件1:
    >通路上是否有其他设备干扰或电容
    出口条件2:
    >E
    D 检查padmux / digmux设定 出口条件1:
    1.设定异常
    出口条件2:
    1.设定正常
    出口条件1:
    >纠正后回到A
    出口条件2:
    >F
    E 检查uart配置是否与设备匹配,通过stty & cat进行测试 出口条件1:
    1.波特率设置错误,或停止位校验位设定错误
    出口条件2:
    通过stty & cat进行测试,结果仍旧错误
    出口条件1:
    >纠正后回到A
    出口条件2:
    >流程结束
    出口条件2:
    1.协助SWRD搭建环境
    F 检查数据发送前后,uart中断次数变化 出口条件1:
    1.无变化
    出口条件2:
    1.中断次数增加
    出口条件1:
    >G
    出口条件2:
    >E
    G 抓取接收端的波形分析 出口条件1:
    1.信号异常或无信号
    出口条件2:
    1.信号正常
    出口条件1:
    >检查rx通路
    出口条件2:
    >H
    H 使用riu_r或tv-tool抓取寄存器,抓起的bank:0x1009 0x101e 0x1038 0x103c,后台运行程序时进行抓取因为程序关闭时,uart驱动会清除硬件相关设定 出口条件1:
    1.抓取寄存器状态
    出口条件1:
    ==>流程结束
    出口条件1:
    1.提供寄存器状态


    问题2. Uart无法发送数据

    图1-2 tx发送异常问题排查思维导图

    流程 方法 出口条件 下一步 需要供给SWRD的资料 **相关可参考FAQ **
    A 数据发送情况,可使用串口工具进行调试 出口条件1:
    1.串口工具完全接收不到数据
    出口条件2:
    1.串口工具可以接收到数据,但是内容错误
    出口条件3:
    1.正常接收数据
    出口条件1:
    >B
    出口条件2:
    >C
    出口条件3:
    ==>流程结束
    B 确认使用的pin对应的gpio index,通过sys下的gpio节点控制gpio拉高拉低 出口条件1:
    1.tx pin无法正常拉高拉低
    出口条件2:
    1.tx pin可以正常拉高拉低
    出口条件1:
    >检查测量点到芯片对应pin是否导通或是否有电路钳制
    出口条件2:
    >D
    C 抓取波形分析 出口条件1:
    1.信号异常
    出口条件2:
    1.信号正常
    出口条件1:
    >通路上是否有其他设备干扰或电容
    出口条件2:
    >E
    D 检查padmux / digmux设定 出口条件1:
    1.设定异常
    出口条件2:
    1.设定正常
    出口条件1:
    >纠正后回到A
    出口条件2:
    >F
    E 检查uart配置是否与设备匹配,通过stty & echo进行测试 出口条件1:
    1.波特率设置错误,或停止位校验位设定错误
    出口条件2:
    通过stty & echo进行测试,结果仍旧错误
    出口条件1:
    >纠正后回到A
    出口条件2:
    >流程结束
    出口条件2:
    1.协助SWRD搭建环境
    F 抓取波形分析 出口条件1:
    1.无信号
    出口条件2:
    1.信号异常
    出口条件3:
    1.信号正常
    出口条件1:
    >G
    出口条件2:
    >通路上是否有其他设备干扰或电容
    出口条件3:
    ==>E
    G 使用riu_r或tv-tool抓取寄存器,抓起的bank:0x101e 0x1038 0x103c,后台运行程序时进行抓取因为程序关闭时,uart驱动会清除硬件相关设定 出口条件1:
    1.抓取寄存器状态
    出口条件1:
    ==>流程结束
    出口条件1:
    1.提供寄存器状态


    问题3. 调试串口卡死

    图1-3 调试串口卡死问题排查思维导图

    流程 方法 出口条件 下一步 需要供给SWRD的资料 **相关可参考FAQ **
    A 在串口工具上敲命令,观察现象 出口条件1:
    1.观察到回显,但是命令行出不来
    出口条件2:
    1.观察不到回显
    出口条件1:
    >B
    出口条件2:
    >C
    B 确认是否由于本地修改导致,或做了某个步骤导致的,由于可以观察到回显,rx与tx均正常,有可能是死锁了,或程序执行陷入循环中 出口条件1:
    1.确认到由于代码修改引入的问题
    出口条件2:
    1:确认由于执行了某个步骤引入的问题(包括开关某些功能,dailybuild检测出的问题,版本更新引发的问题)
    出口条件1:
    >自行确认
    出口条件2:
    >请相关owner进场排查
    C 如果有telnet,尝试连接telnet 出口条件1:
    1.没有telnet或无法连接
    出口条件2:
    1.可以正常连接
    出口条件1:
    >D
    出口条件2:
    >E
    D 测试tv-tool能否抓取寄存器,读取bank 0x1004,前半部分值应该是固定的,后半部每次读取到的内容会一直变化 出口条件1:
    1.无法正常抓取寄存器
    出口条件2:
    1.可以正常抓取寄存器
    出口条件1:
    >F
    出口条件2:
    >G
    E 通过telnet观察uart0的中断次数,cat /proc/interrupts,在调试串口工具输入,再次通过telnet观察uart0的中断次数,通过riu_r工具读取寄存器,需要读取的bank:0x3F 0x1009 0x101e 0x1038 0x103c 0x1107 出口条件1:
    1.中断次数变化情况
    2.获取到寄存器状态
    出口条件1:
    ==>流程结束
    出口条件1:
    1.保留现场环境
    2.反馈中断是否有变化
    3.提供寄存器状态
    F 排查硬件,测量power,一般寄存器无法读取的原因是对应区块的供电停止了,不排除其他缘故 出口条件1:
    1.检测到由于power异常导致的
    出口条件2:
    1.不是由于power导致的
    出口条件1:
    >流程结束
    出口条件2:
    >流程结束
    出口条件2:
    1.保留现场环境
    G 按照以下步骤读取寄存器:
    1.bank: 0x101e offset:0x57 写0xF
    2.读取bank:0x3F 0x1009 0x101e 0x1038 0x103c 0x1107
    出口条件1:
    1.获取到寄存器状态
    出口条件1:
    ==>流程结束
    出口条件1:
    1.保留现场环境
    2.提供寄存器状态