2013-03-26 106 views
1

我們目前擁有一塊帶有微控制器的定製板,通過雙端口RAM與PC/104 windows CE 5.0板交談。目前我們使用MmMapIoSpace在Windows CE中映射雙端口RAM,以便我們可以直接讀取和寫入它。我們正在尋找加入Windows CE 6.0甚至Windows XP嵌入式的現代時代。我們的一個重要問題是,根據微軟的文檔,Windows CE 6.0和Windows XP Embedded中的MmMapIoSpace現在是用戶空間程序無法訪問的驅動程序級功能,這是我們如何使用它的。如何將MmMapIoSpace從Windows CE 5.0移植到6.0或XP Embedded?

在我們外出購買大量硬件和可能的平臺構建器之前,我們一直在試圖弄清楚它是否會成爲問題,如果是的話我們可以做些什麼。我們都沒有經驗寫Windows驅動程序,所以看起來像一個大的事業,但是我們真的會寫一個驅動程序來處理這個功能。

將MmMapIoSpace從Windows CE 5.0移植到Windows CE 6.0還是Windows XP Embedded很簡單。 (鏈接到Microsoft文檔)。

謝謝!

回答

3

MmMapIoSpace真的應該只能被驅動程序使用,所以早期的CE版本在讓您從應用程序中使用它的時候會有點混雜。我會創建一個簡單的流接口驅動程序,使用MmMapIoSpace與RAM進行交互,然後使用ReadFileDeviceIoControl從您的應用程序調用該驅動程序。

Windows CE中的流接口驅動程序非常簡單直接。它只是一個定義了特定入口點的DLL,然後是註冊表項來告訴device.exe加載它。 MSDN有很多例子,但是如果你想要更簡單的話,還有a wizard on Codeplex也可以爲你生成這些文件。

+0

謝謝!這正是我需要的那種反饋。如果我有代表贊成你,我會的。(編輯:現在我做)。 – ApockofFork 2013-03-26 15:56:59

相關問題