我们目前有一个带有微控制器的定制板,通过双端口柱塞与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.0或Windows XP Embedded是否很简单。 (链接到Microsoft文档)。
谢谢!
答案 0 :(得分:3)
MmMapIoSpace
实际上只应该由驱动程序首先使用,所以早期的CE版本只是让你在应用程序中使用它有点混乱。我创建了一个简单的流接口驱动程序,使用MmMapIoSpace
与RAM连接,然后使用ReadFile
或DeviceIoControl
从您的应用程序调用该驱动程序。
Windows CE中的流接口驱动程序非常简单明了。它只是一个定义了一些特定入口点的DLL,然后是注册表项,告诉device.exe加载它。 MSDN有很多例子,但是如果你想要更容易,那么a wizard on Codeplex也可以为你生成文件。