大家好,我是是基于2410+linux2.4.18来进行驱动编写的,我在用阻塞I/O时出现了一个系统错误,请大家指点一下 代码: DEBUG_K("del_timer
"); del_timer(&key_timer); wake_up_interruptible(&(KEY_BUF.wq)); 上面时我的代码里的关键一段,在目标板上运行程序时 一显示完, del_timer 后就出现下面的错误啦: Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 *pgd = 00000000, *pmd = 00000000 Internal error: Oops: 0 CPU: 0 pc : [<c002026c>] lr : [<c3fff420>] Not tainted sp : c016fe90 ip : 00000000 fp : c016feb4 r10: 00000003 r9 : c016ff64 r8 : a0000013 r7 : c4ae0ec8 r6 : 00000093 r5 : 00000001 r4 : c4ae0ec4 r3 : 00000000 r2 : 00000001 r1 : c016e000 r0 : ffffff9d Flags: Nzcv IRQs off FIQs on Mode SVC_32 Segment kernel Control: C000317F Table: 33D50000 DAC: 0000001D Process swapper (pid: 0, stackpage=c016f000) 这是为何呢?如果我将wake_up屏蔽掉的化,程序能继续运行!请大家指点一下,谢谢!
|