linux驱动问题,请大家进来看看
大家好,我是是基于2410+linux2.4.18来进行驱动编写的,我在用阻塞I/O时出现了一个系统错误,请大家指点一下<br />代码:<br /> DEBUG_K("del_timer");<br /> del_timer(&key_timer);<br /> wake_up_interruptible(&(KEY_BUF.wq));<br />上面时我的代码里的关键一段,在目标板上运行程序时<br />一显示完,<br />del_timer<br />后就出现下面的错误啦:<br />Unable to handle kernel NULL pointer dereference at virtual address 00000000<br />pgd = c0004000<br />*pgd = 00000000, *pmd = 00000000<br />Internal error: Oops: 0<br />CPU: 0<br />pc : [<c002026c>] lr : [<c3fff420>] Not tainted<br />sp : c016fe90 ip : 00000000 fp : c016feb4<br />r10: 00000003 r9 : c016ff64 r8 : a0000013<br />r7 : c4ae0ec8 r6 : 00000093 r5 : 00000001 r4 : c4ae0ec4<br />r3 : 00000000 r2 : 00000001 r1 : c016e000 r0 : ffffff9d<br />Flags: Nzcv IRQs off FIQs on Mode SVC_32 Segment kernel<br />Control: C000317F Table: 33D50000 DAC: 0000001D<br />Process swapper (pid: 0, stackpage=c016f000)<br />这是为何呢?如果我将wake_up屏蔽掉的化,程序能继续运行!请大家指点一下,谢谢!<br /> <br />
参数传递的问题
r2 : 00000001 r1 : c016e000 r0 : ffffff9d<br />看到了吧 你查下 R2 R1 R0 分别代表什么东西就对了 正确应该是<br />r2:0x30000100 r1:0xc1 r0:0x0.
这与传内核参数,有什么关系。<br /><br />真搞不懂,
页:
[1]