当前位置: 技术问答>linux和unix
底层硬件驱动如何调用应用层的回调函数,求指点!
来源: 互联网 发布时间:2016-12-21
本文导语: 各位高手,有一个问题实在不知道怎么处理比较合适,求高手指点。 我在arm上做了一个驱动,驱动的任务是把底层控制信道的数据和语音数据分别传到应用层,然后再由应用层将数据通过网络发送出去。使用的是linux 2...
各位高手,有一个问题实在不知道怎么处理比较合适,求高手指点。
我在arm上做了一个驱动,驱动的任务是把底层控制信道的数据和语音数据分别传到应用层,然后再由应用层将数据通过网络发送出去。使用的是linux 2.6的内核。
这个时候我想使用一个专门的线程对驱动进行轮询,若发现有数据上来后则调用我自己写的回调函数来处理。但是这样感觉轮询效率比较低,也不是个办法,因此想使用中断的方式,不过linux下如何使用中断来通知上层应用程序呢?
望高人指点一二,谢谢了啊。
|
我觉得是这样的:轮询方式并不是效率低,而是白白消耗CPU。如果ARM的板子就是为了这个事情处理的,我觉得轮询是可以接受的。
如果考虑尽量少消耗CPU,可以有两个方案:
1、是在驱动里面加一个消息。上层采用阻塞调用的方式去读消息,有消息了再轮询。
2、用软中断。参考:http://blog.csdn.net/sagacity789/article/details/6430199
如果考虑尽量少消耗CPU,可以有两个方案:
1、是在驱动里面加一个消息。上层采用阻塞调用的方式去读消息,有消息了再轮询。
2、用软中断。参考:http://blog.csdn.net/sagacity789/article/details/6430199