oops异常定位方法

关于如下异常信息:

[   21.813421] Unable to handle kernel NULL pointer dereference at virtual address 00000004
[   21.822652] pgd = ee0e4000
[   21.825669] [00000004] *pgd=77b83831
[   21.829645] Internal error: Oops: 17 [#1] SMP ARM
[   21.832425] Modules linked in: nand(O)
[   21.832425] CPU: 0    Tainted: G           O  (3.4.39 #102)
[   21.832425] PC is at sunxi_pcm_hw_params+0xe4/0x1d8
[   21.832425] LR is at sunxi_pcm_hw_params+0x68/0x1d8
[   21.832425] pc : [<c0357678>]    lr : [<c03575fc>]    psr: 60000153
[   21.832425] sp : ec345dc0  ip : 00000000  fp : ec345e0c
[   21.832425] r10: c069a578  r9 : ef19f080  r8 : ef1a5300
[   21.832425] r7 : 00000000  r6 : 00000000  r5 : ee064800  r4 : ee8d8800
[   21.832425] r3 : 00000002  r2 : 00000000  r1 : fffffffc  r0 : 00000000
[   21.832425] Flags: nZCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment user
[   21.832425] Control: 10c5387d  Table: 6e0e406a  DAC: 00000015
[   21.832425]
[   21.832425] PC: 0xc03575f8:
[   21.832425] 75f8  ebffea73 e2506000 0a000004 e1a0000a e59f1150 e1a02006 ebfbd54f ea00004c
[   21.832425] 7618  e5943030 e3530000 1a00001b e5953024 e3530000 1a000004 e5953028 e3530000
[   21.832425] 7638  13a02001 0a00000a ea000000 e1a02006 e0853102 e5933024 e2631000 e0013003
[   21.832425] 7658  e16f3f13 e263301f e0833282 e3530002 0a000000 e3a03004 e50b3038 e50b303c
[   21.832425] 7678  e5973004 e50b3040 e3a03008 e50b3030 e50b3034 e3a03707 ea000008 e3a03002
[   21.832425] 7698  e50b303c e50b3038 e5973004 e50b3044 e3a03008 e50b3030 e50b3034 e3a0301c
[   21.832425] 76b8  e50b3028 e1a00008 e5983000 e3a01003 e24b2048 e5933060 e12fff33 e2507000
[   21.832425] 76d8  aa000005 e1a0000a e59f107c e1a02007 e1a06007 ebfbd518 ea000015 e5943030
[   21.832425]
[   21.832425] LR: 0xc035757c:
[   21.832425] 757c  e12fff3c ea000000 ebfc0c9b e24bd010 e89da810 c0661308 e1a0c00d e92dddf0
[   21.832425] 759c  e24cb004 e24dd028 e92d4000 e8bd4000 e5906008 e1a04000 e1a05001 e5963068
[   21.832425] 75bc  e593a008 ebffe9fb e5942030 e1a08000 e5963070 e59f1180 e3520000 e59f017c
[   21.832425] 75dc  e3a02091 0593702c 15937030 eb038c5e e1a00004 e1a01005 e24b2048 ebffea73
[   21.832425] 75fc  e2506000 0a000004 e1a0000a e59f1150 e1a02006 ebfbd54f ea00004c e5943030
[   21.832425] 761c  e3530000 1a00001b e5953024 e3530000 1a000004 e5953028 e3530000 13a02001
[   21.832425] 763c  0a00000a ea000000 e1a02006 e0853102 e5933024 e2631000 e0013003 e16f3f13
[   21.832425] 765c  e263301f e0833282 e3530002 0a000000 e3a03004 e50b3038 e50b303c e5973004
[   21.832425]
[   21.832425] SP: 0xec345d40:
[   21.832425] 5d40  c0039c54 c0039440 b9c1b51c 00000002 00000000 00000005 c0357678 60000153
[   21.832425] 5d60  ffffffff ec345dac ec345e0c ec345d78 c000f918 c000a168 00000000 fffffffc
[   21.832425] 5d80  00000000 00000002 ee8d8800 ee064800 00000000 00000000 ef1a5300 ef19f080
[   21.832425] 5da0  c069a578 ec345e0c 00000000 ec345dc0 c03575fc c0357678 60000153 ffffffff
[   21.832425] 5dc0  ef19f080 00000001 ec345dec ec345dd8 00000002 00000002 c03559fc ec345df4
[   21.832425] 5de0  ec345e0c ec345e00 00000000 eeb77cc0 eeb77b40 ee064800 ee8d8800 ef1a2ed0
[   21.832425] 5e00  ec345e44 ec345e10 c0350d10 c03575a0 ec344000 ef1a2edc ec345e44 ec29a000
[   21.832425] 5e20  ee064800 ee8d8800 00000000 ee8d88d0 ec344000 00000000 ec345e6c ec345e48
[   21.832425]
[   21.832425] FP: 0xec345d8c:
[   21.832425] 5d8c  ee064800 00000000 00000000 ef1a5300 ef19f080 c069a578 ec345e0c 00000000
[   21.832425] 5dac  ec345dc0 c03575fc c0357678 60000153 ffffffff ef19f080 00000001 ec345dec
[   21.832425] 5dcc  ec345dd8 00000002 00000002 c03559fc ec345df4 ec345e0c ec345e00 00000000
[   21.832425] 5dec  eeb77cc0 eeb77b40 ee064800 ee8d8800 ef1a2ed0 ec345e44 ec345e10 c0350d10
[   21.832425] 5e0c  c03575a0 ec344000 ef1a2edc ec345e44 ec29a000 ee064800 ee8d8800 00000000
[   21.832425] 5e2c  ee8d88d0 ec344000 00000000 ec345e6c ec345e48 c033da4c c0350bec c25c4111
[   21.832425] 5e4c  ee8d8800 ee064800 eea8eda0 beb487fc c000ffe8 ec345ec4 ec345e70 c033eec0
[   21.832425] 5e6c  c033d93c ee05b5c0 ee0e4000 00000028 ec36c580 ec345ec4 c01dd0ac ec345eb4
[   21.832425]
[   21.832425] R4: 0xee8d8780:
[   21.832425] 8780  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 87a0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 87c0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 87e0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 8800  ee8d8a00 ee8d8aa8 ef1a2ed0 00000000 64627573 63697665 30232065 00000000
[   21.832425] 8820  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 8840  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 8860  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425]
[   21.832425] R5: 0xee064780:
[   21.832425] 4780  5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a
[   21.832425] 47a0  5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a
[   21.832425] 47c0  5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a
[   21.832425] 47e0  5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a a55a5a5a
[   21.832425] 4800  00000000 00000008 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 4820  00000000 00000004 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 4840  00000000 00000001 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 4860  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425]
[   21.832425] R8: 0xef1a5280:
[   21.832425] 5280  c021dd88 00000000 ef1a5288 ef1a5288 ef1a5290 ef1a5290 ef1a5298 ef1a5298
[   21.832425] 52a0  00000000 ef1a52a4 ef1a52a4 00000000 00000000 00000000 00000000 00000000
[   21.832425] 52c0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 52e0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] 5300  ef1a53c0 00000001 00000001 00000000 ef1cd800 ef1a5254 ef1a53c8 c064395c
[   21.832425] 5320  00000001 00000000 00000000 00000000 00000000 00000000 c021d448 ef1a5300
[   21.832425] 5340  c021dd88 00000000 ef1a5348 ef1a5348 ef1a5350 ef1a5350 ef1a5358 ef1a5358
[   21.832425] 5360  00000000 ef1a5364 ef1a5364 00000000 00000000 00000000 00000000 00000000
[   21.832425]
[   21.832425] R9: 0xef19f000:
[   21.832425] f000  ef19b040 ef10e000 00000080 ef19f080 0000000e 0000000e ffff0000 fffffffd
[   21.832425] f020  fffffffd fffffffd fffffffd fffffffd fffffffd fffffffd fffffffd fffffffd
[   21.832425] f040  fffffffd fffffffe fffffffd fffffffd fffffffd ffffffff ffffffff ffffffff
[   21.832425] f060  ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
[   21.832425] f080  eeb7c840 00000000 c069a578 c069a4c8 00000001 00000000 ef19f098 ef19f098
[   21.832425] f0a0  00000000 00000002 c069af28 ef19f1ac ef1a26ec c069aff8 c069aff8 00000000
[   21.832425] f0c0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425] f0e0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   21.832425]
[   21.832425] R10: 0xc069a4f8:
[   21.832425] a4f8  00000000 c069a6f0 00000000 00000000 00000000 00000000 00000000 c0617224
[   21.832425] a518  00000000 00000000 00000000 00000000 c05615b7 c06770f0 00000000 00000000
[   21.832425] a538  00000000 00000000 c0250bac 00000000 00000000 00000000 00000000 00000000
[   21.832425] a558  00000000 eeb779c0 00000000 00000000 ffffffff 00000000 c05615b7 00000000
[   21.832425] a578  c0677130 eeb77a40 eeb7c280 c069a83c c069a1cc c0677138 ef0b8f40 c0676f98
[   21.832425] a598  eeb7b398 00000003 00000007 00000000 00000000 00000001 00000000 c069a5b4
[   21.832425] a5b8  c069a5b4 00000000 c06770f0 c069a528 00000000 00000000 00000000 00000000
[   21.832425] a5d8  c069a890 c069a220 7fffffff 00000000 c069a5e8 c069a5e8 00000000 00000000
[   21.832425] Process tinyplay (pid: 132, stack limit = 0xec3442f8)
[   21.832425] Stack: (0xec345dc0 to 0xec346000)
[   21.832425] 5dc0: ef19f080 00000001 ec345dec ec345dd8 00000002 00000002 c03559fc ec345df4
[   21.832425] 5de0: ec345e0c ec345e00 00000000 eeb77cc0 eeb77b40 ee064800 ee8d8800 ef1a2ed0
[   21.832425] 5e00: ec345e44 ec345e10 c0350d10 c03575a0 ec344000 ef1a2edc ec345e44 ec29a000
[   21.832425] 5e20: ee064800 ee8d8800 00000000 ee8d88d0 ec344000 00000000 ec345e6c ec345e48
[   21.832425] 5e40: c033da4c c0350bec c25c4111 ee8d8800 ee064800 eea8eda0 beb487fc c000ffe8
[   21.832425] 5e60: ec345ec4 ec345e70 c033eec0 c033d93c ee05b5c0 ee0e4000 00000028 ec36c580
[   21.832425] 5e80: ec345ec4 c01dd0ac ec345eb4 ec345e98 c01dd0ac c0442214 000000b4 ee8d8800
[   21.832425] 5ea0: beb487fc eea8eda0 00000004 c000ffe8 ec344000 00000000 ec345ef4 ec345ec8
[   21.832425] 5ec0: c03403a4 c033ec68 c01002d4 c00ffe40 00000041 ee05b5f8 ef124c30 beb487fc
[   21.832425] 5ee0: eea8eda0 00000004 ec345f04 ec345ef8 c0340400 c033ffa0 ec345f7c ec345f08
[   21.832425] 5f00: c0102854 c03403d4 ef004300 ef0304c0 ec288000 c00f16bc 60000013 eea8eda8
[   21.832425] 5f20: ec345f54 ec345f30 c00ee2b4 c00ed684 00000004 eea8eda0 ec288000 00000020
[   21.832425] 5f40: ef124c30 eea8eda8 ec345f94 ec345f58 c00f16bc c00ee26c eea8eda0 beb487fc
[   21.832425] 5f60: c25c4111 00000004 c000ffe8 ec344000 ec345fa4 ec345f80 c0102910 c01022f8
[   21.832425] 5f80: c000ffe8 00000000 beb4868c beb48bc8 0000bb80 00000036 00000000 ec345fa8
[   21.832425] 5fa0: c000fd80 c01028d4 beb4868c beb48bc8 00000004 c25c4111 beb487fc beb487fc
[   21.832425] 5fc0: beb4868c beb48bc8 0000bb80 00000036 00000000 00000000 b6f08000 00000000
[   21.832425] 5fe0: 00013bac beb48674 0000a4c9 b6e7d92c 00000010 00000004 2207f3c6 4307f3c6
[   21.832425] [<c0357678>] (sunxi_pcm_hw_params+0xe4/0x1d8) from [<c0350d10>] (soc_pcm_hw_params+0x130/0x1e8)
[   21.832425] [<c0350d10>] (soc_pcm_hw_params+0x130/0x1e8) from [<c033da4c>] (snd_pcm_hw_params+0x11c/0x398)
[   21.832425] [<c033da4c>] (snd_pcm_hw_params+0x11c/0x398) from [<c033eec0>] (snd_pcm_common_ioctl1+0x264/0xee4)
[   21.832425] [<c033eec0>] (snd_pcm_common_ioctl1+0x264/0xee4) from [<c03403a4>] (snd_pcm_playback_ioctl1+0x410/0x434)
[   21.832425] [<c03403a4>] (snd_pcm_playback_ioctl1+0x410/0x434) from [<c0340400>] (snd_pcm_playback_ioctl+0x38/0x44)
[   21.832425] [<c0340400>] (snd_pcm_playback_ioctl+0x38/0x44) from [<c0102854>] (do_vfs_ioctl+0x568/0x5dc)
[   21.832425] [<c0102854>] (do_vfs_ioctl+0x568/0x5dc) from [<c0102910>] (sys_ioctl+0x48/0x6c)
[   21.832425] [<c0102910>] (sys_ioctl+0x48/0x6c) from [<c000fd80>] (ret_fast_syscall+0x0/0x30)
[   21.832425] Code: 0a000000 e3a03004 e50b3038 e50b303c (e5973004)
[   22.868628] ---[ end trace 356d2c988a0faf18 ]---

异常定位方法:

1.addr2line

根据PC指针c0357678, arm-none-linux-gnueabi-addr2line

arm-none-linux-gnueabi-addr2line arm-none-linux-gnueabi-addr2line -e vmlinux c0357678
??:0
/home/huangxin/workspace/sunxi-dev/lichee/linux-3.4/sound/soc/sunxi/daudio0/sunxi-daudiodma0.c:179

可以定位到异常信息在sunxi-daudiodma0.c的179行。

2.通过gdb定位;

~/workspace/sunxi-dev/lichee/linux-3.4$ arm-none-linux-gnueabi-gdb vmlinux
GNU gdb (Sourcery G++ Lite 2010.09-50) 7.2.50.20100908-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi".
For bug reporting instructions, please see:
<https://support.codesourcery.com/GNUToolchain/>...
Reading symbols from /home/huangxin/workspace/sunxi-dev/lichee/linux-3.4/vmlinux...done.
(gdb) b*c0357678
No symbol "c0357678" in current context.
(gdb) b*0xc0357678
Breakpoint 1 at 0xc0357678: file sound/soc/sunxi/daudio0/sunxi-daudiodma0.c, line 179.

3.根据内核符号表和反汇编信息定位

 arm-none-linux-gnueabi-nm vmlinux | grep sunxi_pcm_hw_params
c0357594 t sunxi_pcm_hw_params
~/workspace/sunxi-dev/lichee/linux-3.4$

根据PC指针信息:[   21.832425] PC is at sunxi_pcm_hw_params+0xe4/0x1d8。0xe4是出错的偏移位置;0x1d8是函数sunxi_pcm_hw_params的大小

可以将生成的vmlinux全部转成汇编语言,查看出错函数位置:arm-none-linux-gnueabi-objdump -S vmlinux >test.dump

然后根据函数地址和偏移位置找到出错位置即可c0357594+0xe4=c0357678.也可以直接查看PC指针(c0357678)位置;


如果不想生成的文件过大,那么也可以指定起始地址和结束地址生成汇编debug信息。

arm-none-linux-gnueabi-objdump -S vmlinux -z --start-address=0xc0357594 --stop-address=0xc0357678 > a.out

然后根据a.out查看分析即可。


vmlinux:     file format elf32-littlearm


Disassembly of section .text:

c0357594 <sunxi_pcm_hw_params>:
}
#endif

static int sunxi_pcm_hw_params(struct snd_pcm_substream *substream,
 struct snd_pcm_hw_params *params)
{
c0357594: e1a0c00d  mov ip, sp
c0357598: e92dddf0  push {r4, r5, r6, r7, r8, sl, fp, ip, lr, pc}
c035759c: e24cb004  sub fp, ip, #4
c03575a0: e24dd028  sub sp, sp, #40 ; 0x28
c03575a4: e92d4000  push {lr}
c03575a8: ebf2e236  bl c000fe88 <__gnu_mcount_nc>
 struct sunxi_dma_params *dmap;
 struct snd_soc_pcm_runtime *rtd = substream->private_data;
c03575ac: e5906008  ldr r6, [r0, #8]
}
#endif

static int sunxi_pcm_hw_params(struct snd_pcm_substream *substream,
 struct snd_pcm_hw_params *params)
{
c03575b0: e1a04000  mov r4, r0
c03575b4: e1a05001  mov r5, r1
 struct sunxi_dma_params *dmap;
 struct snd_soc_pcm_runtime *rtd = substream->private_data;
#ifdef AR200_AUDIO
 struct tdm_runtime_data *prtd = substream->runtime->private_data;
#else
 struct device *dev = rtd->platform->dev;
c03575b8: e5963068  ldr r3, [r6, #104] ; 0x68
c03575bc: e593a008  ldr sl, [r3, #8]
 struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream);
c03575c0: ebffe9fb  bl c0351db4 <snd_dmaengine_pcm_get_chan>
};

static inline void *snd_soc_dai_get_dma_data(const struct snd_soc_dai *dai,
          const struct snd_pcm_substream *ss)
{
 return (ss->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
c03575c4: e5942030  ldr r2, [r4, #48] ; 0x30
c03575c8: e1a08000  mov r8, r0
 struct dma_slave_config slave_config;
 int ret;
#endif
 dmap = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
c03575cc: e5963070  ldr r3, [r6, #112] ; 0x70
pr_info("%s,l:%d\n", __func__, __LINE__);
c03575d0: e59f1180  ldr r1, [pc, #384] ; c0357758 <sunxi_pcm_hw_params+0x1c4>
c03575d4: e3520000  cmp r2, #0
c03575d8: e59f017c  ldr r0, [pc, #380] ; c035775c <sunxi_pcm_hw_params+0x1c8>
c03575dc: e3a02091  mov r2, #145 ; 0x91
c03575e0: 0593702c  ldreq r7, [r3, #44] ; 0x2c
c03575e4: 15937030  ldrne r7, [r3, #48] ; 0x30
c03575e8: eb038c5e  bl c043a768 <printk>
#ifndef AR200_AUDIO
 ret = snd_hwparams_to_dma_slave_config(substream, params, &slave_config);
c03575ec: e1a00004  mov r0, r4
c03575f0: e1a01005  mov r1, r5
c03575f4: e24b2048  sub r2, fp, #72 ; 0x48
c03575f8: ebffea73  bl c0351fcc <snd_hwparams_to_dma_slave_config>
 if (ret) {
c03575fc: e2506000  subs r6, r0, #0
c0357600: 0a000004  beq c0357618 <sunxi_pcm_hw_params+0x84>
  dev_err(dev, "hw params config failed with err %d\n", ret);
c0357604: e1a0000a  mov r0, sl
c0357608: e59f1150  ldr r1, [pc, #336] ; c0357760 <sunxi_pcm_hw_params+0x1cc>
c035760c: e1a02006  mov r2, r6
c0357610: ebfbd54f  bl c024cb54 <dev_err>
  return ret;
c0357614: ea00004c  b c035774c <sunxi_pcm_hw_params+0x1b8>
 }
#endif

 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
c0357618: e5943030  ldr r3, [r4, #48] ; 0x30
c035761c: e3530000  cmp r3, #0
c0357620: 1a00001b  bne c0357694 <sunxi_pcm_hw_params+0x100>

static inline unsigned int snd_mask_min(const struct snd_mask *mask)
{
 int i;
 for (i = 0; i < SNDRV_MASK_SIZE; i++) {
  if (mask->bits[i])
c0357624: e5953024  ldr r3, [r5, #36] ; 0x24
c0357628: e3530000  cmp r3, #0
c035762c: 1a000004  bne c0357644 <sunxi_pcm_hw_params+0xb0>
c0357630: e5953028  ldr r3, [r5, #40] ; 0x28
c0357634: e3530000  cmp r3, #0
}

static inline unsigned int snd_mask_min(const struct snd_mask *mask)
{
 int i;
 for (i = 0; i < SNDRV_MASK_SIZE; i++) {
c0357638: 13a02001  movne r2, #1
  if (mask->bits[i])
c035763c: 0a00000a  beq c035766c <sunxi_pcm_hw_params+0xd8>
c0357640: ea000000  b c0357648 <sunxi_pcm_hw_params+0xb4>
c0357644: e1a02006  mov r2, r6
   return ffs(mask->bits[i]) - 1 + (i << 5);
c0357648: e0853102  add r3, r5, r2, lsl #2
c035764c: e5933024  ldr r3, [r3, #36] ; 0x24
c0357650: e2631000  rsb r1, r3, #0
c0357654: e0013003  and r3, r1, r3
 int ret;

 if (__builtin_constant_p(x))
        return constant_fls(x);

 asm("clz\t%0, %1" : "=r" (ret) : "r" (x));
c0357658: e16f3f13  clz r3, r3
c035765c: e263301f  rsb r3, r3, #31
c0357660: e0833282  add r3, r3, r2, lsl #5
  prtd->play_done_cb.arg = substream;
  arisc_audio_cb_register(prtd->mode, prtd->play_done_cb.handler, prtd->play_done_cb.arg);
  substream->dma_buffer.addr = AUDIO_SRAM_BASE_PALY;
  substream->dma_buffer.area = (unsigned char *)0xf8117000;
#else
  if (SNDRV_PCM_FORMAT_S16_LE == params_format(params)) {
c0357664: e3530002  cmp r3, #2
c0357668: 0a000000  beq c0357670 <sunxi_pcm_hw_params+0xdc>
   slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
   slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
  } else {
   slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
c035766c: e3a03004  mov r3, #4
c0357670: e50b3038  str r3, [fp, #-56] ; 0xffffffc8
   slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
c0357674: e50b303c  str r3, [fp, #-60] ; 0xffffffc4
  }
  slave_config.dst_addr = dmap->dma_addr;
c0357678: e5973004  ldr r3, [r7, #4]

c035767c: e50b3040  str r3, [fp, #-64] ; 0xffffffc0
  #if defined CONFIG_ARCH_SUN8IW6
  slave_config.dst_maxburst = 8;
c0357680: e3a03008  mov r3, #8
c0357684: e50b3030  str r3, [fp, #-48] ; 0xffffffd0
  slave_config.src_maxburst = 8;
c0357688: e50b3034  str r3, [fp, #-52] ; 0xffffffcc
  #if defined CONFIG_ARCH_SUN9IW1
  slave_config.slave_id = sunxi_slave_id(DRQDST_R_DAUDIO_1_TX, DRQSRC_SDRAM);
  #elif defined CONFIG_ARCH_SUN8IW8 || defined CONFIG_ARCH_SUN8IW7
  slave_config.slave_id = sunxi_slave_id(DRQDST_DAUDIO_0_TX, DRQSRC_SDRAM);
  #else
  slave_config.slave_id = sunxi_slave_id(DRQDST_TDM_TX, DRQSRC_SDRAM);
c035768c: e3a03707  mov r3, #1835008 ; 0x1c0000

这些都是比较明显的oops信息。方法供参考。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值