我正在将app / PCI驱动程序从vxWorks移植到Linux,如果可能,我希望保持相同的架构。当前驱动程序有2个任务(线程),它们使用消息队列相互通信。是否有内核线程之间的通信机制?消息队列用于传递缓冲区地址和大小信息,因此任务可以使用DMA来移动大量数据。
答案 0 :(得分:2)
听起来workqueue
接口可能就是您所追求的 - 或者对于重量较轻的东西,kfifo
与rwsem
信号量相结合。
答案 1 :(得分:1)
我强烈建议不要在Linux上保留VxWorks架构。内核线程扩散不受欢迎,您的代码永远不会进入官方内核树。即使您不关心这一点,您是否100%确定要以非标准方式开发驱动程序?如果你只是摆脱这两项任务,事情就会简单得多。顺便说一句,为什么到目前为止你需要PCI驱动程序的任务呢?