84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
本人在 Linux 内核下设计过几个字符设备,从 “怎么用” 的这个角度来讲,略懂一些。但是有一次,我被问到 “从应用程序系统调用开始,是怎么到达你的驱动函数的”?我瞬间语塞,不知道怎么回答。
于是我把这个问题转到 SegmentFault 吧,询问有无大牛能够回答,或者能够告诉我上哪里找答案、要看学习那些资料以了解这一点呢?
谢谢~~
人生最曼妙的风景,竟是内心的淡定与从容!
如果你要讲原理,这里可以讲很多,我这里只讲一下你从代码上查找的方法,1,在你设备注册上加打印。2,在你的open函数中加打印,3, 在你的调用read函数中加打印,如果在这三个过程中,没有打印输出,则可能是没有执行到,但要排除一种可能,就是系统的打印条件比较高,你的输出优先级比较低,这个可以修改
echo 8 > /proc/sys/kernel/printk
这样就可以知道你的调用了。原理就是上面的三个步骤。
如果你要讲原理,这里可以讲很多,我这里只讲一下你从代码上查找的方法,
1,在你设备注册上加打印。
2,在你的open函数中加打印,
3, 在你的调用read函数中加打印,
如果在这三个过程中,没有打印输出,则可能是没有执行到,但要排除一种可能,就是系统的打印条件比较高,你的输出优先级比较低,这个可以修改
这样就可以知道你的调用了。
原理就是上面的三个步骤。