1

我们目前有一个带有微控制器的定制板,它通过双端口内存与 PC/104 windows CE 5.0 板通信。目前我们使用MmMapIoSpace映射 windows CE 中的双端口 ram,以便我们可以直接对其进行读写。我们希望加入 Windows CE 6.0 甚至 Windows XP 嵌入式的现代时代。我们的一个大问题是,根据微软的文档,Windows CE 6.0 和 Windows XP Embedded 中的 MmMapIoSpace 现在是在用户空间程序中无法访问的驱动程序级功能,而这正是我们一直在使用它的方式。

在我们出去购买大量硬件和可能的平台构建器副本之前,我们一直在试图弄清楚它是否真的是一个问题,如果是,我们能做些什么。我们都没有编写 Windows 驱动程序的经验,所以这似乎是一项艰巨的任务,但是我们实际上会编写一个驱动程序来处理这个功能。

将 MmMapIoSpace 从Windows CE 5.0移植到Windows CE 6.0Windows XP Embedded是否简单。(指向 Microsoft 文档的链接)。

谢谢!

4

1 回答 1

3

MmMapIoSpace确实应该首先由驱动程序使用,因此早期的 CE 版本让您从应用程序中使用它只是有点混杂。我会创建一个简单的流接口驱动程序,它使用 与 RAM 连接MmMapIoSpace,然后使用ReadFile或从您的应用程序调用该驱动程序DeviceIoControl

Windows CE 中的流接口驱动程序非常简单明了。它只是一个定义了一些特定入口点的 DLL,然后是注册表项来告诉 device.exe 加载它。MSDN 有很多示例,但如果您想要更简单,Codeplex 上有一个向导也可以为您生成文件。

于 2013-03-26T15:43:17.230 回答