读书人

Unable to handle kernel paging 有关

发布时间: 2012-12-21 12:03:49 作者: rapoo

Unable to handle kernel paging 问题求助
在板子上刚刚加载驱动不到5秒就出现下面这中情况,请求高手解忧……
Unable to handle kernel paging request at virtual address e3c26018
pgd = c3d4c000
[e3c26018] *pgd=00000000
Internal error: Oops: 805 [#2]
Modules linked in: his_led hiether libphy
CPU: 0 Tainted: G D (2.6.24-rt1-hi3515v100 #1)
PC is at free_block+0xfc/0x174
LR is at 0x200200
pc : [<c0078f3c>] lr : [<00200200>] psr: 00000093
sp : c3c21ef0 ip : ffffffe0 fp : c3c21f24
r10: c3c083e0 r9 : 00000016 r8 : c3c0af20
r7 : c3c26000 r6 : c3c2601c r5 : 00000019 r4 : 07ffffff
r3 : 00000000 r2 : 08000000 r1 : c03474c0 r0 : 07ffffff
Flags: nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 0005317f Table: c3d4c000 DAC: 00000017
Process events/0 (pid: 4, stack limit = 0xc3c20258)
Stack: (0xc3c21ef0 to 0xc3c22000)
1ee0: 00000000 00000018 c3c09c10 c3c09c00
1f00: c3c09c10 00000018 00000000 c02be524 c02be530 c029793c c3c21f40 c3c21f28
1f20: c0079050 c0078e50 c3c0af20 c3c083e0 00000000 c3c21f74 c3c21f44 c007a634
1f40: c0078fc4 00000000 c004dc64 c3c01a00 c3c20000 c007a5ac c3c21fa8 c3c01a08
1f60: 00000000 00000000 c3c21f90 c3c21f78 c00458f8 c007a5bc c3c173a0 c3c21fb8
1f80: c3c01a00 c3c21fdc c3c21f94 c0045a10 c0045860 00000000 c3c173a0 c0049d48
1fa0: c3c21fb4 c3c21fb4 00000000 c3c173a0 c0049d48 c3c21fb4 c3c21fb4 c004599c
1fc0: fffffffc 00000000 00000000 00000000 c3c21ff4 c3c21fe0 c0049838 c00459ac
1fe0: 00000000 00000000 00000000 c3c21ff8 c0037d64 c00497e0 00000000 00000000
Backtrace:
[<c0078e40>] (free_block+0x0/0x174) from [<c0079050>] (drain_array+0x9c/0xd0)
[<c0078fb4>] (drain_array+0x0/0xd0) from [<c007a634>] (cache_reap+0x88/0x148)
r6:00000000 r5:c3c083e0 r4:c3c0af20
[<c007a5ac>] (cache_reap+0x0/0x148) from [<c00458f8>] (run_workqueue+0xa8/0x14c)
[<c0045850>] (run_workqueue+0x0/0x14c) from [<c0045a10>] (worker_thread+0x74/0xd0)
r6:c3c01a00 r5:c3c21fb8 r4:c3c173a0
[<c004599c>] (worker_thread+0x0/0xd0) from [<c0049838>] (kthread+0x68/0x94)
r8:00000000 r7:00000000 r6:00000000 r5:fffffffc r4:c004599c
[<c00497d0>] (kthread+0x0/0x94) from [<c0037d64>] (do_exit+0x0/0x790)
r5:00000000 r4:00000000
Code: e587e004 e59a2014 e084329c e1a00004 (e7865100)
---[ end trace 9c3e20c417336a74 ]---
------最佳解决方案--------------------


我问了导师他说是
[<c0078e40>] (free_block+0x0/0x174) from [<c0079050>] (drain_array+0x9c/0xd0)
这个函数里面有空指针,要你在这个函数里面狂家打印语句,检查以下那里出现了空指针
[其他解释]
PC is at free_block+0xfc/0x174
从板子的Backtrace来看,你有没有用到中断的底半部,具体就是workqueue的方式?可以检查一下
[其他解释]
可能是ddr不稳定造成的,检查一下。
[其他解释]
这种一般是由于内核中访问非法地址引起的。。。

比如访问某个虚拟地址,但是这个虚拟地址却在页表里面找不到对应映射,就出现无法处理你这个虚拟地址访问请求。

一般解决方法是:检查多有访问的虚拟地址是否在之前正确映射。
[其他解释]

引用:
我问了导师他说是
[<c0078e40>] (free_block+0x0/0x174) from [<c0079050>] (drain_array+0x9c/0xd0)
这个函数里面有空指针,要你在这个函数里面狂家打印语句,检查以下那里出现了空指针

+++
[其他解释]
搞不懂,硬件检查也事,希望大家多给点观点……
[其他解释]
上面代码都是海思的源码,在他们的demo板上没事,与demo板一样的原理图和IC器件的一块板子就有问题了,应该程序不会有错吧。
[其他解释]
ko文件都是海思提供的,在他们的demo板上怎么运行都没问题呀,我公司做的主板和他们提供的原理图和IC都一样,应该代码不会有问题的吧……,只有多做几块板子看看了!
[其他解释]
问题解决了吗?分享一下。。。
[其他解释]
没有解决,等其余的板子做出来,好对比,我手里一块板子不好处理,应该是硬件问题!
[其他解释]
经过验证,是内核的问题,但不知道内核具体哪里出了问题

读书人网 >驱动开发

热点推荐