在我的linux系统里自己加载了三个驱动,每驱动单独运行都是正常的,三驱动放在一起,重复启动几下就出现如下问题:
三个驱动我都加了循环定时器,时间是都是20mS,我试验了几个问题,有比较大的疑问:
1、我把三个定时器的时间改为,一个循环15ms,一个循环20ms,一个循环25ms,重复启动程序一个星期,没有发现如下的问题!
2、我在一个驱动程序中,增加4个定时器,那么一启动就出问题!
那么高手能告诉我是什麽问题!
Unable to handle kernel NULL pointer dereference at virtual address 00000004
pgd = c3b0c000
[00000004] *pgd=33a63031, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1]
last sysfs file: /sys/devices/virtual/vc/vcs3/dev
Modules linked in: mini2440_RobotLeds mini2440_TogSwitch mini2440_6x5keyboard
CPU: 0 Not tainted (2.6.32.2-FriendlyARM #90)
PC is at run_timer_softirq+0x174/0x228
LR is at run_timer_softirq+0x20/0x228
pc : [<c008de64>] lr : [<c008dd10>] psr: 80000093
sp : c3a5fef8 ip : c3a5fef8 fp : c3a5ff3c
r10: c03542cc r9 : c03544cc r8 : c3a5e000
r7 : c03184c0 r6 : bf0003ac r5 : c3a5ff08 r4 : c0353ac0
r3 : bf000d94 r2 : c3a5ff08 r1 : 00000000 r0 : 00000000
Flags: Nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
Control: c000717f Table: 33b0c000 DAC: 00000015
Process xtControlor (pid: 408, stack limit = 0xc3a5e270)
Stack: (0xc3a5fef8 to 0xc3a60000)
fee0: c3a5ff1c c03548cc
ff00: c03546cc c0353ac0 bf000d94 bf00d318 c3a5ff34 00000004 00000101 c0353920
ff20: c3a5e000 c0317488 c0353920 00000100 c3a5ff7c c3a5ff40 c0088f00 c008dd00
ff40: c0319a74 0000001e 00000001 0000000a 000a0a69 c03248a0 0000001e 00000000
ff60: 000a3550 000a0a69 c3a5e000 bee760a0 c3a5ff8c c3a5ff80 c0088fdc c0088e74
ff80: c3a5ffac c3a5ff90 c006a048 c0088fa4 ffffffff f4000000 00004000 000a3550
ffa0: 00000000 c3a5ffb0 c006acc0 c006a010 000a0a69 000a4372 00000062 00000000
ffc0: 000a912c 000000bd 000a9130 000a3550 000a0a69 40bc011c bee760a0 fff7011c
ffe0: 00000062 bee76028 40b1201c 40e5b18c 20000010 ffffffff 303e3031 303e3431
Backtrace:
[<c008dcf0>] (run_timer_softirq+0x0/0x228) from [<c0088f00>] (__do_softirq+0x9c/
0x130)
[<c0088e64>] (__do_softirq+0x0/0x130) from [<c0088fdc>] (irq_exit+0x48/0x50)
[<c0088f94>] (irq_exit+0x0/0x50) from [<c006a048>] (asm_do_IRQ+0x48/0x8c)
[<c006a000>] (asm_do_IRQ+0x0/0x8c) from [<c006acc0>] (__irq_usr+0x40/0xc0)
Exception stack(0xc3a5ffb0 to 0xc3a5fff8)
ffa0: 000a0a69 000a4372 00000062 00000000
ffc0: 000a912c 000000bd 000a9130 000a3550 000a0a69 40bc011c bee760a0 fff7011c
ffe0: 00000062 bee76028 40b1201c 40e5b18c 20000010 ffffffff
r7:000a3550 r6:00004000 r5:f4000000 r4:ffffffff
Code: e50b4038 e8930006 e593600c e5930010 (e5812004)
---[ end trace 7a34a35a7332033f ]---
Kernel panic - not syncing: Fatal exception in interrupt
Backtrace:
[<c006f1cc>] (dump_backtrace+0x0/0x10c) from [<c025ceb8>] (dump_stack+0x18/0x1c)
r7:c008de64 r6:c3a5fd8c r5:c008de64 r4:c0332ff0
[<c025cea0>] (dump_stack+0x0/0x1c) from [<c025cf08>] (panic+0x4c/0x114)
[<c025cebc>] (panic+0x0/0x114) from [<c006f4cc>] (die+0x1f4/0x23c)
r3:00000100 r2:c03175d0 r1:c03175f0 r0:c02d4f14
[<c006f2d8>] (die+0x0/0x23c) from [<c0071914>] (__do_kernel_fault+0x6c/0x7c)
[<c00718a8>] (__do_kernel_fault+0x0/0x7c) from [<c0071a60>] (do_page_fault+0x13c
/0x1e0)
r7:00000817 r6:00000004 r5:00000004 r4:c38ab780
[<c0071924>] (do_page_fault+0x0/0x1e0) from [<c006a284>] (do_DataAbort+0x3c/0xa4
)
[<c006a248>] (do_DataAbort+0x0/0xa4) from [<c006aa80>] (__dabt_svc+0x40/0x60)
Exception stack(0xc3a5feb0 to 0xc3a5fef8)
fea0: 00000000 00000000 c3a5ff08 bf000d94
fec0: c0353ac0 c3a5ff08 bf0003ac c03184c0 c3a5e000 c03544cc c03542cc c3a5ff3c
fee0: c3a5fef8 c3a5fef8 c008dd10 c008de64 80000093 ffffffff
r7:c03184c0 r6:bf0003ac r5:c3a5fee4 r4:ffffffff
[<c008dcf0>] (run_timer_softirq+0x0/0x228) from [<c0088f00>] (__do_softirq+0x9c/
0x130)
[<c0088e64>] (__do_softirq+0x0/0x130) from [<c0088fdc>] (irq_exit+0x48/0x50)
[<c0088f94>] (irq_exit+0x0/0x50) from [<c006a048>] (asm_do_IRQ+0x48/0x8c)
[<c006a000>] (asm_do_IRQ+0x0/0x8c) from [<c006acc0>] (__irq_usr+0x40/0xc0)
Exception stack(0xc3a5ffb0 to 0xc3a5fff8)
ffa0: 000a0a69 000a4372 00000062 00000000
ffc0: 000a912c 000000bd 000a9130 000a3550 000a0a69 40bc011c bee760a0 fff7011c
ffe0: 00000062 bee76028 40b1201c 40e5b18c 20000010 ffffffff
r7:000a3550 r6:00004000 r5:f4000000 r4:ffffffff