产品偶尔死机,重新上电、断电、也不能开机--死机致命问题分析与解决

时间:2024-03-28 14:31:42

[    9.513384] BUG: sleeping function called from invalid context at /mnt/data/ailiving/Workfolder/carl/aili/d/d-2/sc60/kernel/msm-3.18/kernel/workqueue.c:2644
[    9.513386] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper/0
[    9.513396] Preemption disabled at:[<ffffffc0000e7344>] cpu_startup_entry+0x33c/0x3a0
[    9.513397] 
[    9.513404] ------------[ cut here ]------------
[    9.513407] kernel BUG at /mnt/data/ailiving/Workfolder/carl/aili/d/d-2/sc60/kernel/msm-3.18/kernel/sched/core.c:10843!
[    9.513409] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
[    9.513412] Modules linked in:
[    9.513417] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W      3.18.31 #7
[    9.513419] Hardware name: Qualcomm Technologies, Inc. MSM8953 + PMI8950 MTP (DT)
[    9.513421] task: ffffffc00179c270 ti: ffffffc001788000 task.ti: ffffffc001788000
[    9.513425] PC is at __might_sleep+0x15c/0x16c
[    9.513428] LR is at __might_sleep+0x15c/0x16c
[    9.513430] pc : [<ffffffc0000c820c>] lr : [<ffffffc0000c820c>] pstate: 60000145
[    9.513431] sp : ffffffc00178b890
[    9.513434] x29: ffffffc00178b890 x28: 0000000000000000 
[    9.513437] x27: ffffffc00136d89d x26: ffffffc06a6c4d00 
[    9.513439] x25: 0000000000000000 x24: ffffffc0019a5146 
[    9.513442] x23: ffffffc001a5f000 x22: ffffffc066ac9f08 
[    9.513445] x21: ffffffc00178b9f0 x20: ffffffc066ac9f08 
[    9.513447] x19: 0000000000000000 x18: ffffffc06a283c40 
[    9.513450] x17: 0000000000000000 x16: 0000000000000000 
[    9.513453] x15: 000000000000b83e x14: 613378302f633333 
[    9.513455] x13: 78302b7972746e65 x12: 5f70757472617473 
[    9.513458] x11: 5f757063205d3e34 x10: 3433376530303030 
[    9.513461] x9 : 636666666666663c x8 : ffffffc001a79afc 
[    9.513463] x7 : 0000000000000000 x6 : ffffffc001a79afc 
[    9.513466] x5 : 0000000000000000 x4 : 0000000000000000 
[    9.513468] x3 : ffffffc001a626b8 x2 : cb88537fdc8cb01f 
[    9.513471] x1 : cb88537fdc8cb01f x0 : 0000000000000000 
[    9.513473] 
[    9.513473] PC: 0xffffffc0000c810c:
[    9.513480] 810c  14000041 f000cca3 b9404c64 9000ccc3 7100049f 540000a0 911f0065 b94008a5
[    9.513487] 812c  34000725 35000704 d000b624 911f0066 f940c085 f9401cc6 cb0600a5 f10190bf
[    9.513493] 814c  54000045 b5000606 911f0063 2a0203f3 2a0103e2 aa0003e1 f940c080 f9001c60
[    9.513500] 816c  d0009500 913d1c00 9436d54f 910003e0 9272c400 b9805001 f26af83f 1a9f07e1
[    9.513507] 818c  d53b4222 f9400804 d0009500 12190042 913e1800 b9449883 91192084 9436d542
[    9.513513] 81ac  d53b4220 910003e0 9272c401 b9405020 f9400821 120a7800 b9439821 0b010000
[    9.513520] 81cc  6b13001f 540001e0 d0009500 912b2800 9436d535 910003e0 9272c400 f9400800
[    9.513526] 81ec  f945fc01 d0009580 9136c000 aa0103e2 9436d52d b000a0c0 9124d400 9436d52a
[    9.513533] 820c  e7f001f2 f9400bf3 a8c27bfd d65f03c0 a9a97bfd 52800103 910003fd a90363f7
[    9.513539] 822c  f000ccb7 f9002bfb a9025bf5 aa0003f5 b0009558 f9406ae0 9104a2bb a9046bf9
[    9.513546] 824c  f900b7a0 2a0203fa 2a0103f9 aa1b03e2 52802001 9101a3a0 a90153f3 f9400ab3
[    9.513553] 826c  9000ccd4 9409df21 911f0280 2a1a03e1 912baf02 2a1a03e3 f900201f d0009500
[    9.513559] 828c  913f0400 9436d508 b94052a0 37000140 d0009500 12800013 913f4c00 9436d502
[    9.513566] 82ac  f94002a0 b4000f20 d0009500 913fa800 14000075 f0009500 f94086a2 91005800
[    9.513573] 82cc  9101a3a1 52800816 9436d4f7 1ad60f36 937d7ed6 f8766b60 1200173b 9adb2400
[    9.513579] 82ec  370000a0 f0009500 2a1903e1 9100a000 9436d4ed 91006260 f8766800 9adb2400
[    9.513581] 
[    9.513581] LR: 0xffffffc0000c810c:

1.了解硬件原理

产品偶尔死机,重新上电、断电、也不能开机--死机致命问题分析与解决

2.GDB 定位

产品偶尔死机,重新上电、断电、也不能开机--死机致命问题分析与解决

3.确定 硬件条件

在host模式,vbus悬空,USB_ID一定要为低。

4.死机后 usb_id 拉高拉低也不能开机

5.gdb定们不到函数

6.从log分析看,是进入了某种模式,但是这种波形不符合我们任何一种波形

7.使用示波器抓vbus波形,一连接示波器,抓波形,就开机

8.说明vbus有问题,考虑示波器的微弱灌电流,

9.同时发现在vbus上连接一条线,特别容易复现,用手逮住,更容易

10.果断加容性阻抗处理,问题解决