主题 : 内核异常 哪位高手能帮忙分析分析原因 复制链接 | 浏览器收藏 | 打印
我自横刀向天笑 哈哈哈
级别: 新手上路
UID: 52407
精华: 0
发帖: 20
金钱: 105 两
威望: 21 点
综合积分: 40 分
注册时间: 2011-07-18
最后登录: 2012-04-23
楼主  发表于: 2012-03-08 22:02

 内核异常 哪位高手能帮忙分析分析原因

写了个按键驱动,刚开始还好的 没什么问题 但是按着按着 就出现了下面的异常 不知道是什么原因 希望懂的能指点一下 感激不尽

Unable to handle kernel paging request at virtual address 5cd90f94
pgd = c0004000
[5cd90f94] *pgd=00000000
Internal error: Oops: 5 [#1]
last sysfs file: /sys/devices/virtual/misc/button/dev
Modules linked in: button
CPU: 0    Not tainted  (2.6.32.2-FriendlyARM #2)
PC is at s3c2410_gpio_getpin+0x18/0x2c
LR is at buttons_interrupt+0x54/0x9c [button]
pc : [<c0036fd0>]    lr : [<bf000128>]    psr: 60000013
sp : c04bfe90  ip : c04bfea0  fp : c04bfe9c
r10: 3001fce4  r9 : 41129200  r8 : 3001fd18
r7 : 00000039  r6 : bf0002dc  r5 : 00000006  r4 : bf000340
r3 : 5cd90f90  r2 : 0000000b  r1 : 0000efff  r0 : c3b21f30
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: c000717f  Table: 33ac4000  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc04be270)
Stack: (0xc04bfe90 to 0xc04c0000)
fe80:                                     c04bfebc c04bfea0 bf000128 c0036fc8
fea0: c3add480 00000000 00000000 00000039 c04bfedc c04bfec0 c006d500 bf0000e4
fec0: c04c834c c3add480 00000039 c0522f8c c04bfefc c04bfee0 c006f000 c006d4b0
fee0: 00000039 00000000 00000001 c04c2448 c04bff1c c04bff00 c0036d24 c006ef68
ff00: 00000015 c04d432c 00000000 c04c2448 c04bff3c c04bff20 c002c044 c0036c98
ff20: ffffffff f4000000 00000020 c04c2448 c04bff94 c04bff40 c002cb04 c002c010
ff40: f4100000 00000032 f4100000 60000013 c04be000 c04ff844 c04c2450 c04c2448
ff60: 3001fd18 41129200 3001fce4 c04bff94 c04bff98 c04bff88 c002e64c c002e064
ff80: 60000013 ffffffff c04bffb4 c04bff98 c002e64c c002dfe4 c052300c c04ff5e0
ffa0: c0021000 c04c2448 c04bffc4 c04bffb8 c038f0f0 c002e5e4 c04bfff4 c04bffc8
ffc0: c00089a8 c038f0a4 c00084f4 00000000 00000000 c0021ca0 00000000 c0007175
ffe0: c04ff8f0 c0021c9c 00000000 c04bfff8 30008034 c00087ac 00000000 00000000
Backtrace:
[<c0036fb8>] (s3c2410_gpio_getpin+0x0/0x2c) from [<bf000128>] (buttons_interrupt+0x54/0x9c [button])
[<bf0000d4>] (buttons_interrupt+0x0/0x9c [button]) from [<c006d500>] (handle_IRQ_event+0x60/0x130)
r7:00000039 r6:00000000 r5:00000000 r4:c3add480
[<c006d4a0>] (handle_IRQ_event+0x0/0x130) from [<c006f000>] (handle_edge_irq+0xa8/0x16c)
r7:c0522f8c r6:00000039 r5:c3add480 r4:c04c834c
[<c006ef58>] (handle_edge_irq+0x0/0x16c) from [<c0036d24>] (s3c_irq_demux_extint8+0x9c/0xa8)
r7:c04c2448 r6:00000001 r5:00000000 r4:00000039
[<c0036c88>] (s3c_irq_demux_extint8+0x0/0xa8) from [<c002c044>] (asm_do_IRQ+0x44/0x8c)
r7:c04c2448 r6:00000000 r5:c04d432c r4:00000015
[<c002c000>] (asm_do_IRQ+0x0/0x8c) from [<c002cb04>] (__irq_svc+0x24/0xa0)
Exception stack(0xc04bff40 to 0xc04bff88)
ff40: f4100000 00000032 f4100000 60000013 c04be000 c04ff844 c04c2450 c04c2448
ff60: 3001fd18 41129200 3001fce4 c04bff94 c04bff98 c04bff88 c002e64c c002e064
ff80: 60000013 ffffffff
r7:c04c2448 r6:00000020 r5:f4000000 r4:ffffffff
[<c002dfd4>] (default_idle+0x0/0x9c) from [<c002e64c>] (cpu_idle+0x78/0xb0)
[<c002e5d4>] (cpu_idle+0x0/0xb0) from [<c038f0f0>] (rest_init+0x5c/0x70)
r7:c04c2448 r6:c0021000 r5:c04ff5e0 r4:c052300c
[<c038f094>] (rest_init+0x0/0x70) from [<c00089a8>] (start_kernel+0x20c/0x27c)
[<c000879c>] (start_kernel+0x0/0x27c) from [<30008034>] (0x30008034)
Code: e24cb004 e3c0301f e1a030a3 e28334fb (e5931004)
---[ end trace 548e98276f480cfc ]---
Kernel panic - not syncing: Fatal exception in interrupt
Backtrace:
[<c0031270>] (dump_backtrace+0x0/0x10c) from [<c03918a8>] (dump_stack+0x18/0x1c)
r7:c0036fd0 r6:c04ffe50 r5:c04bfc87 r4:c0036fd0
[<c0391890>] (dump_stack+0x0/0x1c) from [<c03918f8>] (panic+0x4c/0x134)
[<c03918ac>] (panic+0x0/0x134) from [<c0031580>] (die+0x204/0x240)
r3:00010000 r2:c04c5638 r1:000111d2 r0:c0450360
[<c003137c>] (die+0x0/0x240) from [<c0033934>] (__do_kernel_fault+0x6c/0x7c)
[<c00338c8>] (__do_kernel_fault+0x0/0x7c) from [<c0033a8c>] (do_page_fault+0x148/0x200)
r7:c04c17c0 r6:5cd90f94 r5:00000000 r4:c04c2618
[<c0033944>] (do_page_fault+0x0/0x200) from [<c0033c64>] (do_translation_fault+0x78/0x80)
[<c0033bec>] (do_translation_fault+0x0/0x80) from [<c002c28c>] (do_DataAbort+0x40/0xa4)
r7:c04c2668 r6:00000005 r5:c04bfe7c r4:c04c2618
[<c002c24c>] (do_DataAbort+0x0/0xa4) from [<c002cac0>] (__dabt_svc+0x40/0x60)
Exception stack(0xc04bfe48 to 0xc04bfe90)
fe40:                   c3b21f30 0000efff 0000000b 5cd90f90 bf000340 00000006
fe60: bf0002dc 00000039 3001fd18 41129200 3001fce4 c04bfe9c c04bfea0 c04bfe90
fe80: bf000128 c0036fd0 60000013 ffffffff
[<c0036fb8>] (s3c2410_gpio_getpin+0x0/0x2c) from [<bf000128>] (buttons_interrupt+0x54/0x9c [button])
[<bf0000d4>] (buttons_interrupt+0x0/0x9c [button]) from [<c006d500>] (handle_IRQ_event+0x60/0x130)
r7:00000039 r6:00000000 r5:00000000 r4:c3add480
[<c006d4a0>] (handle_IRQ_event+0x0/0x130) from [<c006f000>] (handle_edge_irq+0xa8/0x16c)
r7:c0522f8c r6:00000039 r5:c3add480 r4:c04c834c
[<c006ef58>] (handle_edge_irq+0x0/0x16c) from [<c0036d24>] (s3c_irq_demux_extint8+0x9c/0xa8)
r7:c04c2448 r6:00000001 r5:00000000 r4:00000039
[<c0036c88>] (s3c_irq_demux_extint8+0x0/0xa8) from [<c002c044>] (asm_do_IRQ+0x44/0x8c)
r7:c04c2448 r6:00000000 r5:c04d432c r4:00000015
[<c002c000>] (asm_do_IRQ+0x0/0x8c) from [<c002cb04>] (__irq_svc+0x24/0xa0)
Exception stack(0xc04bff40 to 0xc04bff88)
ff40: f4100000 00000032 f4100000 60000013 c04be000 c04ff844 c04c2450 c04c2448
ff60: 3001fd18 41129200 3001fce4 c04bff94 c04bff98 c04bff88 c002e64c c002e064
ff80: 60000013 ffffffff
r7:c04c2448 r6:00000020 r5:f4000000 r4:ffffffff
[<c002dfd4>] (default_idle+0x0/0x9c) from [<c002e64c>] (cpu_idle+0x78/0xb0)
[<c002e5d4>] (cpu_idle+0x0/0xb0) from [<c038f0f0>] (rest_init+0x5c/0x70)
r7:c04c2448 r6:c0021000 r5:c04ff5e0 r4:c052300c
[<c038f094>] (rest_init+0x0/0x70) from [<c00089a8>] (start_kernel+0x20c/0x27c)
[<c000879c>] (start_kernel+0x0/0x27c) from [<30008034>] (0x30008034)
我自横刀向天笑 哈哈哈
级别: 新手上路
UID: 52407
精华: 0
发帖: 20
金钱: 105 两
威望: 21 点
综合积分: 40 分
注册时间: 2011-07-18
最后登录: 2012-04-23
1楼  发表于: 2012-03-09 20:49
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2012-03-10 11:58
内核已经说的很清楚了

[<c0036fb8>] (s3c2410_gpio_getpin+0x0/0x2c) from [<bf000128>] (buttons_interrupt+0x54/0x9c [button])
[<bf0000d4>] (buttons_interrupt+0x0/0x9c [button]) from [<c006d500>] (handle_IRQ_event+0x60/0x130)
r7:00000039 r6:00000000 r5:00000000 r4:c3add480


buttons_interrupt里调用s3c2410_gpio_getpin的地方crash了。遇到这种问题,首先检查s3c2410_gpio_getpin()的参数是否正确。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."