[嵌入式linux] linux驱动问题,请大家进来看看

[复制链接]
2874|2
 楼主| bl20020825 发表于 2007-6-8 16:35 | 显示全部楼层 |阅读模式
大家好,我是是基于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屏蔽掉的化,程序能继续运行!请大家指点一下,谢谢!
        
youcanh 发表于 2007-6-23 12:28 | 显示全部楼层

参数传递的问题

 r2 : 00000001  r1 : c016e000  r0 : ffffff9d
看到了吧 你查下 R2 R1 R0 分别代表什么东西就对了 正确应该是
r2:0x30000100 r1:0xc1 r0:0x0
whereis 发表于 2007-6-23 14:34 | 显示全部楼层

.

这与传内核参数,有什么关系。

真搞不懂,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

57

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部