板上CPU0错误跟踪方法 (以RT3070驱动错误-BUG为例)

本文档详细介绍了如何追踪和分析Loongson1B开发板上RT3070驱动错误,通过CPU0错误信息和反汇编文件定位到代码中的问题。在分析过程中,通过现场分析、代码跟踪,发现错误发生在`DoBulkIn`函数中,因结构体指针`pRxContext`被赋NULL导致。虽然无法重现相同错误,但提出了可能的原因和跟踪错误的方法。
摘要由CSDN通过智能技术生成

文档简介

Loongson1B开发板上驱动错误常见CPU0错误,而本文档的目的在于以禅道项目管理系统上RT3070驱动错误BUG为例,讲述利用反汇编文件,跟踪CPU0错误的出错位置,并解析可能原因。共享出来希望对大家能够有所帮助。

文档总体来说分为四个部分:

A. RT3070驱动错误BUG详情

B. 跟踪过程

C. 原因分析

D. 方法总结

1. RT3070驱动错误BUG详情

RT3070无线网卡分两种驱动,分别是STA模式和软AP模式,而Loongson1B板中使用的是STA模式。由于测试需要,使用网络性能测试工具iperf测试Usb-Wifi的稳定性,连续测试22小时的时候出现CPU0错误,现场有保留,BUG由邝华款提交到禅道项目管理系统,以下列出禅道上该BUG的详情:

BUG #177::rt3070驱动错误

重现步骤: 

[步骤]

使用iperf测试usb-wifi 约22小时,输出信息与错误见文件minicom.cap;调试文件见rt1.asm;使用的驱动模块为rt3070sta.ko;出错代码段见DoBulkln.c

RT3070驱动源码存储地址:\\192.168.1.48\share\测试项目\wifi

[结果]

出现CPU0错误

[期望]

2. BUG跟踪过程

2.1 BUG现场分析

首先我们查看现场的输出信息与错误LOG,查看文件minicom.cap:

------------------------------------------------------------

Client connecting to 192.168.50.101, TCP port 5001

TCP window size: 24.6 KByte (default)

------------------------------------------------------------

[  5] local 192.168.50.102 port 45158 connected with 192.168.50.101 port 5001

[ ID] Interval       Transfer     Bandwidth

[  5]  0.0- 1.0 sec  1.25 MBytes  10.5 Mbits/sec

[  5]  1.0- 2.0 sec  1.25 MBytes  10.5 Mbits/sec

[  5] 61578.0-61579.0 sec  1.25 MBytes  10.5 Mbits/sec

[  5] 61579.0-61580.0 sec  1.25 MBytes  10.5 Mbits/sec

CPU 0 Unable to handle kernel paging request at virtual address 0000000c, epc == c0a122a0, ra == c0a122a0

Oops[#1]:

Cpu 0

$ 0   : 00000000 1000bc00 00000004 0e9e8000

$ 4   : 00000000 00006000 00408000 ae9e8000

$ 8   : 00000000 8fc04800 8fbf8c80 ac4ce000

$12   : 52441080 00000614 37363534 00004a47

$16   : c00e3bb0 00000000 00000002 c00e7000

$20   : 8022e560 8022e9b0 80740000 00015650

$24   : 00000000 c0a121b8                  

$28   : 8e872000 8e873ac0 2aacd9b8 c0a122a0

Hi    : 000005e4

Lo    : 00000000

epc   : c0a122a0 DoBulkIn+0xe8/0x1b0 [rt3070sta]     Not tainted

ra    : c0a122a0 DoBulkIn+0xe8/0x1b0 [rt3070sta]

Status: 1000bc03    KERNEL EXL IE 

Cause : 10800008

BadVA : 0000000c

PrId  : 00004220

Modules linked in: rt3070sta

Process iperf (pid: 306, t

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值