错误分析

来源:互联网 发布:c语言3右移移运算4 编辑:程序博客网 时间:2024/05/22 09:12

在调试USB摄像机时候,经常出现USB重复拔插,然后就无图,或者无法识别USB设备的情况;

但是每次上电都是有图像的,

也找不到其他的办法解决,就有了一个很笨拙的办法;

在拔掉USB的时候,我就把相应的应用程序以及USB驱动卸载掉,然后再重新初始化,

于是我写了这样一个脚本来测试,

在执行了这个脚本后,前几次图像出来都是正常的,没有什么问题,但是在大约3-5次之后,还是没有图像了,然后再执行一次这个脚本,就会出现如下的错误,


脚本内容如下:

#!/bin/sh
#cd /drivers


killall webcam
sleep 1
rmmod webcam dwc_otg

cd /drivers

/bin/sh drivers.sh > /dev/null 2>&1

/bin/run-parts -a start /etc/rcS.d #> /dev/null 2>&1

/usr/bin/webcam > /dev/null &

killall crond
~

再连接USB ,无图,打印信息如下:

~ # webcam_unbind       0001 0000 0100 debug by miles 
webcam_suspend  0001 0000 0100 debug by miles 
USB RESET
USB RESET
g_webcam gadget: high speed config #1: Video
g_webcam gadget: uvc_function_set_alt(0, 0)
g_webcam gadget: uvc_function_set_alt(1, 0)
USB RESET
USB RESET
USB RESET
USB RESET
USB RESET




如果我再执行一次这个脚本,则就出现了堆栈错误:

~ # 

~ # /etc/myDebugRecoverFile



 uvc_video_enable ++<4>WARN::ep_dequeue:421: bad argument


WARN::ep_dequeue:421: bad argument


        webcam_cleanup 0001 0000 0100 debug by miles 
g_webcam gadget: uvc_function_unbind
webcam_unbind   0001 0000 0100 debug by miles 
Unable to handle kernel paging request at virtual address 565e2ad1
pgd = c31e0000
[565e2ad1] *pgd=00000000
Internal error: Oops: 1 [#1] PREEMPT
Modules linked in: ircut webcam(-) Godshand vpl_tmrc dwc_otg vpl_wdt buff_mgr vma_h4ee vma_jebe vma_ire vma_ibpe vma_dce vpl_dmac vpl_edmc vpl_mmc irrc AutoExposure vpl_vic NULLSensor IICCtrl gpio_i2c [last unloaded: ircut]
CPU: 0    Not tainted  (2.6.28.9-Mozart-8G #151)
PC is at kfree+0x48/0x15c
LR is at composite_unbind+0xdc/0x12c [webcam]
pc : [<c0082174>]    lr : [<bf26d3f4>]    psr: 00000093
sp : c3ba9ea0  ip : c3ba9ec8  fp : c3ba9ec4
r10: c3885304  r9 : 00200200  r8 : a0000013
r7 : ffa08000  r6 : c38852e0  r5 : c3885304  r4 : bf27039c
r3 : 0003fa08  r2 : c03b5000  r1 : c41cc1e5  r0 : 565e2ad1
Flags: nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 0005317f  Table: 031e0000  DAC: 00000015
Process rmmod (pid: 3606, stack limit = 0xc3ba8268)
Stack: (0xc3ba9ea0 to 0xc3baa000)
9ea0: bf26a464 bf27039c c3885304 c38852e0 c3b8c808 bf2703c4 c3ba9ef4 c3ba9ec8 
9ec0: bf26d3f4 c008213c 00000880 bf270498 bf25d8e8 00000880 c0370958 c3ba9f34 
9ee0: c3ba8000 00000003 c3ba9f0c c3ba9ef8 bf22e584 bf26d328 00000000 bf270560 
9f00: c3ba9f1c c3ba9f10 bf26c7ec bf22e504 c3ba9f2c c3ba9f20 bf26d86c bf26c7d8 
9f20: c3ba9fa4 c3ba9f30 c005c650 bf26d860 c002e2d4 63626577 40006d61 c3ba9f7c 
9f40: 4000d000 00000000 c3ba9fb0 00000000 c3ba9f6c ffffffff bead0eb8 00000000 
9f60: 00000880 0007cb58 0000005f 00000003 bf270560 00000880 c3ba9f7c 00000000 
9f80: ffffffff bead0eb4 00000210 0007c804 00000081 c0029044 00000000 c3ba9fa8 
9fa0: c0028ec0 c005c460 bead0eb4 00000210 0007cb58 00000880 00000000 00000003 
9fc0: bead0eb4 00000210 0007c804 00000081 0007cb58 0000005f 00000003 00000000 
9fe0: bead0de0 bead0dd0 000157ac 4004e790 20000010 0007cb58 00000000 00000000 
Backtrace: 
[<c008212c>] (kfree+0x0/0x15c) from [<bf26d3f4>] (composite_unbind+0xdc/0x12c [webcam])
 r8:bf2703c4 r7:c3b8c808 r6:c38852e0 r5:c3885304 r4:bf27039c
[<bf26d318>] (composite_unbind+0x0/0x12c [webcam]) from [<bf22e584>] (usb_gadget_unregister_driver+0x90/0xd8 [dwc_otg])
[<bf22e4f4>] (usb_gadget_unregister_driver+0x0/0xd8 [dwc_otg]) from [<bf26c7ec>] (usb_composite_unregister+0x24/0x30 [webcam])
 r5:bf270560 r4:00000000
[<bf26c7c8>] (usb_composite_unregister+0x0/0x30 [webcam]) from [<bf26d86c>] (webcam_cleanup+0x1c/0x28 [webcam])
[<bf26d850>] (webcam_cleanup+0x0/0x28 [webcam]) from [<c005c650>] (sys_delete_module+0x200/0x278)
[<c005c450>] (sys_delete_module+0x0/0x278) from [<c0028ec0>] (ret_fast_syscall+0x0/0x2c)
 r8:c0029044 r7:00000081 r6:0007c804 r5:00000210 r4:bead0eb4
Code: e7921283 e0820283 e3110901 1590000c (e5903000) 
---[ end trace c8fdcf3a3a0aa7f6 ]---

Segmentation fault




错误:

Unable to handle kernel paging request at virtual address 565e2ad1

堆栈被破坏,

Internal error: Oops: 1 [#1] PREEMPT   oops消息指出了出错的代码



0 0