문제

VXWorks에서 Linux로 앱/PCI 드라이버를 포팅하고 있으며 가능하면 동일한 아키텍처를 유지하고 싶습니다. 현재 드라이버에는 메시지 큐를 사용하여 서로 통신하는 2 개의 작업 (스레드)이 있습니다. 커널 스레드간에 통신 할 메커니즘이 있습니까? 메시지 대기열은 버퍼 주소와 크기 정보를 전달하는 데 사용되므로 작업이 DMA를 사용하여 대량의 데이터를 이동할 수 있습니다.

도움이 되었습니까?

해결책

VXWorks 아키텍처를 Linux에 유지하는 것에 대해 강력히 조언합니다. 커널 스레드 확산은 눈살을 찌푸리며 코드는 공식 커널 트리로 만들지 않습니다. 당신이 그것에 관심이 없더라도, 당신은 비표준에서 운전자를 개발하고 싶다고 100% 확신합니까? 이 두 작업을 제거하면 상황이 훨씬 간단 할 것입니다. BTW, 왜 지구상에서 PCI 드라이버를 위해 작업이 필요한 이유는 무엇입니까?

다른 팁

그것은처럼 들린다 workqueue 인터페이스는 당신이 후에 또는 더 가벼운 웨이트를 위해 kfifo a rwsem 신호기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top