当前位置:  技术问答>linux和unix

如何在urb回调函数中访问共享资源?

    来源: 互联网  发布时间:2016-09-17

    本文导语:  驱动open时,提交一定数量的in urb,然后在回调函数中将接收来的数据放到一条队列; 同时read操作也将访问这条队列,由于urb回调函数中不能做任何延时操作(中断上下文?),用自旋锁也不行,这个互斥要怎么做...

驱动open时,提交一定数量的in urb,然后在回调函数中将接收来的数据放到一条队列;
同时read操作也将访问这条队列,由于urb回调函数中不能做任何延时操作(中断上下文?),用自旋锁也不行,这个互斥要怎么做?

|
哦,就是中断响应的上半部和下半部的问题。
在回调函数中将要接收数据的相关参数保存下来,然后退出回调函数(这是上半部分)。退出后立即启动相关的处理函数,将数据从缓存中写到你定义的队列中(这是下半部分)。由于下半部分已经退出了回调函数,所以可以使用内核中提供的各种互斥方法(包括自旋锁)

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • usb_submit_urb函数的问题
  • 哪位知道URB中ASAP是什么意思?
  • urb传输过程出错,初学,不知问题在哪,请教!
  • no URB for end 0


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3