首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Unable to handle kernel NULL pointer dereference at virtual address 00000000解决思路

2012-06-06 
Unable to handle kernel NULL pointer dereference at virtual address 00000000自己用arm-linux-gcc-3.4

Unable to handle kernel NULL pointer dereference at virtual address 00000000
自己用arm-linux-gcc-3.4.1交叉工具链编译的内核和文件系统下载到pxa270开发板上 结果出现如下错误 该如何解决
Please press Enter to activate this console. kernel BUG at arch/arm/mm/consiste!
Unable to handle kernel NULL pointer dereference at virtual address 00000000  
pgd = c0004000  
[00000000] *pgd=00000000  
Internal error: Oops: 817 [#1]  
Modules linked in:  
CPU: 0 Not tainted (2.6.22.10 #154)  
PC is at __bug+0x20/0x2c  
LR is at 0xc0271e94  
pc : [<c0024b94>] lr : [<c0271e94>] psr: 60000013  
sp : c03a7d08 ip : c0271e94 fp : c03a7d14  
r10: 00800080 r9 : 01480000 r8 : 00000000  
r7 : c027ea58 r6 : 01480000 r5 : 000fa000 r4 : 00000002  
r3 : 00000000 r2 : 00000001 r1 : 00000001 r0 : 0000002f  
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment kernel  
Control: 0000397f Table: a3ffc000 DAC: 00000017  
Process pdflush (pid: 55, stack limit = 0xc03a6260)  
Stack: (0xc03a7d08 to 0xc03a8000)  
7d00: c03a7d24 c03a7d18 c0026578 c0024b80 c03a7d34 c03a7d28  
7d20: c016b20c c00264f8 c03a7db0 c03a7d38 c016790c c016b1f8 c03a7d44 00000004  
7d40: c3dff778 c03a7d60 c03a7d54 c0089768 c0089704 00010001 00800080 00800080  
7d60: 00000000 c03d5ce0 c0032b98 00000000 00000000 00000000 c03d5ce0 c0032b98  
7d80: 00000000 00000000 00000004 00000002 c027ea58 01480000 00000000 c0169988  
7da0: c3dff778 c03a7e14 c03a7db4 c0169c08 c016784c 00040000 000fa000 00000003  
7dc0: 00040000 c0279509 c03613c0 c03a7df0 c03a7ddc c008d0b8 c00fe000 fffffffe  
7de0: 00d000d0 00200020 00500050 00040000 01480000 00000000 00000000 01480000  
7e00: c0169988 00000000 c03a7e5c c03a7e18 c0166134 c0169994 00000000 c3cb5ec0  
7e20: c3cb5ec0 c3dff778 c3dff740 c027ea58 c0169988 c3c82860 c3c82860 c3ca7a00  
7e40: 00000000 c3ca7ab8 00000000 00000000 c03a7e7c c03a7e60 c016a110 c0165f5c  
7e60: 00040000 00000000 c3cbedc0 c3c82860 c03a7e94 c03a7e80 c01616e8 c016a0ec  
7e80: c3c82860 c3cd2ed4 c03a7f10 c03a7e98 c00e3e20 c01616a0 c007fd18 c007e2b0  
7ea0: c3ca7ac0 c3ca7af4 00000000 fffffff4 c03a7ed4 c03a7ec0 c007fd48 c007fc9c  
7ec0: c02843a8 c03a7ee8 c03a7f5c 0000000a c03a7f50 ffffffff 00000002 c03a7f5c  
7ee0: c03a7f69 00000000 c3ca7a00 00000000 c02759dc c0275688 c03a7f50 00000000  
7f00: 00000000 c03a7f28 c03a7f14 c00e4e0c c00e38e0 c3ca7c00 c3ca7c3c c03a7f44  
7f20: c03a7f2c c0078f48 c00e4de0 c03a7fb0 c02756c8 c0272a74 c03a7f9c c03a7f48  
7f40: c005e328 c0078ed4 c0042afc 00000000 00000000 00000000 c03a7f48 00000000  
7f60: 00000000 00000000 00000000 00000000 00000000 00000025 00000000 c03a7fb0  
7f80: c02756c8 c03a7fa4 c03a6000 c0272a74 c03a7fdc c03a7fa0 c005f33c c005e2d8  
7fa0: 00000001 c03d5ce0 c005e2cc 00000000 c03a7fb0 c03a7fb0 ffff8b07 fffffffc  
7fc0: c005f20c 00000000 00000000 00000000 c03a7ff4 c03a7fe0 c004964c c005f218  
7fe0: 00000000 00000000 00000000 c03a7ff8 c0038700 c0049604 00000000 733e333c  
Backtrace:  


[<c0024b74>] (__bug+0x0/0x2c) from [<c0026578>] (consistent_sync+0x8c/0x94)  
[<c00264ec>] (consistent_sync+0x0/0x94) from [<c016b20c>] (xsbase270_map_inval_)
[<c016b1ec>] (xsbase270_map_inval_cache+0x0/0x24) from [<c016790c>] (inval_cach)
[<c0167840>] (inval_cache_and_wait_for_operation+0x0/0x310) from [<c0169c08>] ()
[<c0169988>] (do_erase_oneblock+0x0/0x758) from [<c0166134>] (cfi_varsize_frob+)
[<c0165f50>] (cfi_varsize_frob+0x0/0x274) from [<c016a110>] (cfi_intelext_erase)
[<c016a0e0>] (cfi_intelext_erase_varsize+0x0/0x60) from [<c01616e8>] (part_eras)
 r5:c3c82860 r4:c3cbedc0  
[<c0161694>] (part_erase+0x0/0x84) from [<c00e3e20>] (jffs2_erase_pending_block)
 r5:c3cd2ed4 r4:c3c82860  
[<c00e38d4>] (jffs2_erase_pending_blocks+0x0/0x674) from [<c00e4e0c>] (jffs2_wr)
[<c00e4dd4>] (jffs2_write_super+0x0/0x48) from [<c0078f48>] (sync_supers+0x80/0)
 r5:c3ca7c3c r4:c3ca7c00  
[<c0078ec8>] (sync_supers+0x0/0xb0) from [<c005e328>] (wb_kupdate+0x5c/0x140)  
 r6:c0272a74 r5:c02756c8 r4:c03a7fb0  
[<c005e2cc>] (wb_kupdate+0x0/0x140) from [<c005f33c>] (pdflush+0x130/0x1fc)  
 r8:c0272a74 r7:c03a6000 r6:c03a7fa4 r5:c02756c8 r4:c03a7fb0  
[<c005f20c>] (pdflush+0x0/0x1fc) from [<c004964c>] (kthread+0x54/0x7c)  
 r8:00000000 r7:00000000 r6:00000000 r5:c005f20c r4:fffffffc  
[<c00495f8>] (kthread+0x0/0x7c) from [<c0038700>] (do_exit+0x0/0x740)  
 r5:00000000 r4:00000000  
Code: e1a01000 e59f000c eb0048d4 e3a03000 (e5833000)  
WARNING: at kernel/exit.c:869 do_exit()  
[<c0024de4>] (dump_stack+0x0/0x14) from [<c0038744>] (do_exit+0x44/0x740)  
[<c0038700>] (do_exit+0x0/0x740) from [<c0024fec>] (die+0x1ac/0x1e4)  
[<c0024e40>] (die+0x0/0x1e4) from [<c00266e8>] (__do_kernel_fault+0x6c/0x80)  
[<c002667c>] (__do_kernel_fault+0x0/0x80) from [<c0026a10>] (do_page_fault+0x1f)
 r7:00000000 r6:00000817 r5:c03d5ce0 r4:ffffffff  
[<c002681c>] (do_page_fault+0x0/0x20c) from [<c00201e8>] (do_DataAbort+0x3c/0xa)
[<c00201ac>] (do_DataAbort+0x0/0xa0) from [<c0020a00>] (__dabt_svc+0x40/0x60)  
Exception stack(0xc03a7cc0 to 0xc03a7d08)  
7cc0: 0000002f 00000001 00000001 00000000 00000002 000fa000 01480000 c027ea58  
7ce0: 00000000 01480000 00800080 c03a7d14 c0271e94 c03a7d08 c0271e94 c0024b94  
7d00: 60000013 ffffffff  
 r8:00000000 r7:c027ea58 r6:01480000 r5:c03a7cf4 r4:ffffffff  
[<c0024b74>] (__bug+0x0/0x2c) from [<c0026578>] (consistent_sync+0x8c/0x94)  
[<c00264ec>] (consistent_sync+0x0/0x94) from [<c016b20c>] (xsbase270_map_inval_)
[<c016b1ec>] (xsbase270_map_inval_cache+0x0/0x24) from [<c016790c>] (inval_cach)
[<c0167840>] (inval_cache_and_wait_for_operation+0x0/0x310) from [<c0169c08>] ()
[<c0169988>] (do_erase_oneblock+0x0/0x758) from [<c0166134>] (cfi_varsize_frob+)
[<c0165f50>] (cfi_varsize_frob+0x0/0x274) from [<c016a110>] (cfi_intelext_erase)
[<c016a0e0>] (cfi_intelext_erase_varsize+0x0/0x60) from [<c01616e8>] (part_eras)


 r5:c3c82860 r4:c3cbedc0  
[<c0161694>] (part_erase+0x0/0x84) from [<c00e3e20>] (jffs2_erase_pending_block)
 r5:c3cd2ed4 r4:c3c82860  
[<c00e38d4>] (jffs2_erase_pending_blocks+0x0/0x674) from [<c00e4e0c>] (jffs2_wr)
[<c00e4dd4>] (jffs2_write_super+0x0/0x48) from [<c0078f48>] (sync_supers+0x80/0)
 r5:c3ca7c3c r4:c3ca7c00  
[<c0078ec8>] (sync_supers+0x0/0xb0) from [<c005e328>] (wb_kupdate+0x5c/0x140)  
 r6:c0272a74 r5:c02756c8 r4:c03a7fb0  
[<c005e2cc>] (wb_kupdate+0x0/0x140) from [<c005f33c>] (pdflush+0x130/0x1fc)  
 r8:c0272a74 r7:c03a6000 r6:c03a7fa4 r5:c02756c8 r4:c03a7fb0  
[<c005f20c>] (pdflush+0x0/0x1fc) from [<c004964c>] (kthread+0x54/0x7c)  
 r8:00000000 r7:00000000 r6:00000000 r5:c005f20c r4:fffffffc  
[<c00495f8>] (kthread+0x0/0x7c) from [<c0038700>] (do_exit+0x0/0x740)  
 r5:00000000 r4:00000000

[解决办法]
PC is at __bug+0x20/0x2c <-- 这类似于应用程序中的assert,现在跑的东西不满 足这个断言,内核就报错。 应该是驱动造成的。

可以从上面打出来的backtrace来跟踪,为什么 BUG_ON断言触发了。

------------
[<c0024b74>] (__bug+0x0/0x2c) from [<c0026578>] (consistent_sync+0x8c/0x94)
[<c00264ec>] (consistent_sync+0x0/0x94) from [<c016b20c>] (xsbase270_map_inval_)
[<c016b1ec>] (xsbase270_map_inval_cache+0x0/0x24) from [<c016790c>] (inval_cach)
[<c0167840>] (inval_cache_and_wait_for_operation+0x0/0x310) from [<c0169c08>] ()
[<c0169988>] (do_erase_oneblock+0x0/0x758) from [<c0166134>] (cfi_varsize_frob+)
[<c0165f50>] (cfi_varsize_frob+0x0/0x274) from [<c016a110>] (cfi_intelext_erase)
[<c016a0e0>] (cfi_intelext_erase_varsize+0x0/0x60) from [<c01616e8>] (part_eras)
 r5:c3c82860 r4:c3cbedc0
[<c0161694>] (part_erase+0x0/0x84) from [<c00e3e20>] (jffs2_erase_pending_block)
 r5:c3cd2ed4 r4:c3c82860
[<c00e38d4>] (jffs2_erase_pending_blocks+0x0/0x674) from [<c00e4e0c>] (jffs2_wr)
[<c00e4dd4>] (jffs2_write_super+0x0/0x48) from [<c0078f48>] (sync_supers+0x80/0)
 r5:c3ca7c3c r4:c3ca7c00
[<c0078ec8>] (sync_supers+0x0/0xb0) from [<c005e328>] (wb_kupdate+0x5c/0x140)
 r6:c0272a74 r5:c02756c8 r4:c03a7fb0
[<c005e2cc>] (wb_kupdate+0x0/0x140) from [<c005f33c>] (pdflush+0x130/0x1fc)
 r8:c0272a74 r7:c03a6000 r6:c03a7fa4 r5:c02756c8 r4:c03a7fb0
[<c005f20c>] (pdflush+0x0/0x1fc) from [<c004964c>] (kthread+0x54/0x7c)
 r8:00000000 r7:00000000 r6:00000000 r5:c005f20c r4:fffffffc
[<c00495f8>] (kthread+0x0/0x7c) from [<c0038700>] (do_exit+0x0/0x740)
 r5:00000000 r4:00000000
---------------
[解决办法]
log 已经很能说明问题了,
你的 jffs2 文件系统有问题。

热点排行