【问题标题】:How can can I port MmMapIoSpace from Windows CE 5.0 to 6.0 or XP Embedded?如何将 MmMapIoSpace 从 Windows CE 5.0 移植到 6.0 或 XP Embedded?
【发布时间】:2013-03-26 14:15:38
【问题描述】:

我们目前有一个带有微控制器的定制板,它通过双端口 RAM 与 PC/104 windows CE 5.0 板通信。目前我们使用MmMapIoSpace 来映射windows CE 中的双端口内存,这样我们就可以直接对其进行读写。我们希望加入 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 文档的链接)。

谢谢!

【问题讨论】:

    标签: memory-management windows-ce


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!这正是我需要的那种反馈。如果我有代表支持你,我会的。(编辑:现在我愿意)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    相关资源
    最近更新 更多