我正在將應用程序/ PCI驅動程序從vxWorks移植到Linux,如果可能,我想保持相同的體系結構。當前驅動程序有2個使用消息隊列相互通信的任務(線程)。是否有內核線程之間進行通信的機制?消息隊列用於傳遞緩衝區地址和大小信息,以便任務可以使用DMA來移動大量數據。在Linux內核線程之間進行通信
回答
我強烈建議不要在Linux上保留VxWorks體系結構。內核線程的擴散令人不悅,你的代碼永遠不會把它變成正式的內核樹。即使你不關心這些,你是否100%肯定你想用非標準的方式開發驅動程序?如果你只是擺脫這兩項任務,情況會簡單得多。順便說一句,爲什麼地球上你需要PCI驅動程序的任務開始?
+1爲理智和常識。 – 2009-10-19 08:33:58
感謝您的反饋。這是另一個管理層提供幾乎不可能的任務,甚至更不可能的時間表。戰鬥勝利了,我們不再這樣做了。對任務的需求是基於原始架構的。驅動程序正在將大量的數據從PCI卡移出。數據被DMA'd循環緩衝區,然後一條消息被髮送到適當的任務來處理數據,以便下一個DMA可能發生。在vxWorks中,它使得它在Linux中沒有,但他們不想改變它。 – CVAUGHN 2009-11-01 11:18:27
現在,如果您絕對必須保持Linux上的某些單片架構以及使用http://femtolinux.com的VxWorks,那麼它允許以內核模式運行用戶應用程序,即以與VxWorks幾乎相同的方式 – Demiurg 2010-07-23 08:31:31
- 1. Linux內核模塊中的內核線程之間的通信
- 2. Windows核心進程之間的通信
- 3. 線程之間可以通過LINX通信進行通信嗎?
- 4. 進程與線程之間的通信
- 5. Linux內核之間的模塊間通信
- 6. 用戶進程,終端和內核之間的通信
- 7. boost asio在兩個線程之間進行通信C++
- 8. 在Java中的線程之間進行通信
- 9. 如何在Scala中的線程之間進行通信?
- 10. 如何在兩個線程之間進行通信
- 11. 如何在JavaScript中的線程之間進行通信?
- 12. 使用隊列在D中的線程之間進行通信
- 13. 線程之間的通信?
- 14. 線程之間的通信
- 15. 線程之間的通信
- 16. 在OpenCL 1.2內核之間傳遞變量/內核之間的通信
- 17. 內核和用戶應用程序之間進行通信的方法
- 18. 在Linux內核空間執行程序
- 19. 內核和shell之間的通信
- 20. 進程之間的通信
- 21. 如何在C#中進行進程間通信時進行進程間通信?
- 22. 進程之間的信號查詢Linux
- 23. 如何使內核線程通信?
- 24. linux - 內核線程搶佔
- 25. Linux內核線程問題
- 26. Linux內核可以與用戶空間進行通信的方式是什麼?
- 27. 的Linux用戶空間線程,內核線程,輕量級進程
- 28. linux和windows之間的串行通信
- 29. Linux程序之間的通信
- 30. Linux,應用程序之間的通信
要明確我的意思是app/PCI驅動程序,我會添加更多詳細信息。在vxWorks中編寫的原始程序在內核級別執行所有操作。因此,設備的PCI驅動程序以及對數據執行操作的代碼,打包和發送UDP都在同一個程序中。我試圖保持相同的體系結構,因爲應用程序將停留在vxWorks中,但由於資源和時間安排問題,我們需要移植到Linux以繼續測試。 – CVAUGHN 2009-09-18 13:42:50