首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Windows CE和Windows桌面的PCIe驱动程序

用于Windows CE和Windows桌面的PCIe驱动程序
EN

Stack Overflow用户
提问于 2011-09-16 20:35:44
回答 2查看 2.4K关注 0票数 31

我需要一个自定义的PCIe驱动程序开发的一点建议。驱动程序必须同时支持Windows CE 6.0和Windows桌面(准备好时支持xp、7和8)。

我们有很多开发Windows CE驱动程序的经验,但还没有开发Windows桌面驱动程序的经验。我非常肯定我们可以开发一个好的、可靠的Windows CE驱动程序,但我认为如果没有一些外部帮助,我们就不能为Windows桌面做同样的事情。我认为我们有两个选择:

1)使用现有的驱动框架,例如Jungo WinDriver,它允许我们一次开发驱动,并编译到多个平台。这也有一个好处,即大多数开发将在用户空间中进行,因此它应该会使开发过程变得更简单。

2)获得一些外部帮助来设置一个好的Windows桌面驱动程序,所有的管道工作都完成了,我们只需要添加与我们的主板通信的代码,并公开相关的IOControls。也许可以将尽可能多的代码转移到用户空间库中。

每种选择的优点和缺点是什么?你会推荐其他的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-23 03:44:16

正如刚才所要求的,在我提出原问题一年多后,我会尝试分享我的经验。我们决定使用Windriver,但到目前为止,我们只为Windows CE 6.0编写了一个驱动程序,因此我无法对跨平台支持发表评论。

在Windows CE 6.0上使用Windriver既有优点,也有缺点。这意味着我们所有的驱动程序代码现在都在库中,所以开发和调试变得更容易(与需要Platform Builder的标准驱动程序相比)。因此,从开发的角度来看,它是很好的。性能也很好。在开始学习Windriver API和如何使用它时,特别是在DMA和中断方面,有一些开销,但我认为这并不比学习原始的Windows CE 6.0 PCI API更糟糕。

我能想到的唯一真正的缺点是,与我们使用Windriver创建的库相比,“真正的”驱动程序更容易在多个进程之间共享。在我们的应用程序(具有一个进程的嵌入式系统)中,这并不是一个真正的问题,但是创建在主进程背后的硬件上运行的调试/开发实用程序就更难了。我们已经在其他平台上使用了这种方法进行测试/调试,但在这里做起来有点复杂。

总而言之,我认为我们做出了正确的选择,我很高兴我们有能力将我们的“驱动程序”移植到Windows桌面上(希望如此),当我们需要它的时候,只需很少的努力。

票数 2
EN

Stack Overflow用户

发布于 2012-10-13 07:16:43

在使用Windriver为Windows/Linux开发驱动程序之后,我想回答这个问题。

如果使用该驱动程序的应用程序也将由您编写,我更喜欢Windriver。既然您提到您正在开发一个自定义驱动程序,我假设您也将自己编写应用程序。在这种情况下,应用程序不需要在windows和windows CE之间做太多更改,因为大多数驱动程序函数将由Windriver本身生成。这就像调用标准库函数,而不是使用IOCTL等。

在过去,我使用windriver生成基本的驱动程序接口代码,并开发使用windriver生成的代码的应用程序(主要是诊断应用程序)。只要稍加修改,我们就可以在windows和linux之间使用驱动程序和应用程序了。我并不提倡使用Jungo,但它很容易使用。

因为这个问题是关于征求建议的,所以很难提供确切的答案,我只是分享我的反馈。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7444736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档