2012-03-02 102 views
1

我使用Delphi開發實時控制軟件,在過去的幾年中,我已經完成了一些工作,在微軟的VirtualPC下運行較舊的Windows安裝,並且它對於「純軟件」開發很有效(即沒有或有限訪問外部世界)。這些工具似乎能夠與網絡連接一起工作,但我必須維護通過並行端口(通過設備驅動程序)執行I/O的軟件。我們也使用USB I/O。在過去,我喜歡微軟的虛擬工具,因爲安裝一個新的操作系統需要時間,然後(在我的情況下)安裝Delphi和一些庫和組件來提供開發支持。在這種情況下,我不會因爲缺乏對低級I/O端口的訪問而感到困擾。在寄存器級別共享硬件端口(COM,LPT等)的最合適的虛擬機軟件是什麼?

我想要開發我的遊戲,並且我很樂意爲一款優秀的虛擬化工具付費,如果我可以通過它訪問外部世界,即我希望能夠配置它以允許訪問我的機器的並行端口和COM端口,就像它本身運行一樣。此訪問必須能夠以註冊條件公開並行端口,例如,以'看'地址$ 03f8處的端口並支持這些寄存器的I/O操作(通過適當的內核訪問)作爲我的Windows 7 64位安裝是可以做到的。

我看到有一些虛擬化解決方案在那裏,但現在它是相當困難acertain各的能力,在如此低的水平。有沒有人有這方面的經驗或知識?

+2

Windows不是真正的實時操作系統。在你的情況下,這可能就足夠了,但對於關鍵的實時任務,有更好的選擇。參見[rtos-32](http://www.on-time.com/rtos-32.htm)。 Delphi支持編譯器,並且也有虛擬化的可能性。雖然不便宜。 – 2012-03-02 10:11:16

+0

雖然它並非真正用於虛擬機內部,但「網絡COM端口共享」軟件程序也適用於此目的。在你的情況下,VMWare Workstation是可以接受的,但是當我需要讓兩臺獨立的PC通過網絡訪問一個共享的COM端口時,我購買了可以進行網絡共享的Virtual Com Port軟件。 http://www.advancedvirtualcomport.com/ – 2012-03-03 21:25:36

回答

5

VMware產品將最適合於此。您可以添加虛擬串行和並行端口,並將它們轉發到主機上的物理端口,甚至轉發到文件或命名管道。

您還可以連接任何連接到主機的USB設備。

這適用於VMware Workstation,但甚至可能與自由VMware player工作過。

+0

感謝克里斯 - 這種映射到物理端口是在寄存器級呢? - 不只是'LPT1'或'COM3'? – 2012-03-02 09:06:17

+0

您可以從虛擬機上的操作系統內使用低級訪問(例如通過地址)訪問端口。當你添加虛擬端口時,到物理主機的映射就完成了。 'COM3'。但是,對於在VM中運行的應用程序,這應該是透明的。 – Chris 2012-03-02 09:12:10

+1

我使用了一個並行端口,(LPT1),JTAG擺動器。我使用安裝在XP VM上的Rowley Crossworks開發環境(實際上是一箇舊的Dell Optiplex的完整克隆)。虛擬機在Vista 64主機上的VMware工作站上運行。並口調試仍然正常工作! – 2012-03-02 10:26:21