- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要一些关于开发自定义 PCIe 驱动程序的建议。驱动程序必须同时支持 Windows CE 6.0 和 Windows 桌面(xp、7 和 8 就绪时)。
我们有很多为 Windows CE 开发驱动程序的经验,但没有为 Windows 桌面开发驱动程序的经验。我很确定我们可以开发一个好的、可靠的 Windows CE 驱动程序,但我认为如果没有一些外部帮助,我们将无法为 Windows 桌面做同样的事情。我认为我们有两个选择:
1) 使用现有的驱动框架,例如Jungo WinDriver,它允许我们一次开发驱动并编译到多个平台。这还有一个好处,就是大部分的开发都会在用户空间进行,所以它应该使开发过程更简单。
2) 获得一些外部帮助以设置良好的 Windows 桌面驱动程序,其中所有的管道都已完成,我们只需要添加与我们的板通信的代码并公开相关的 IOControls。也许将尽可能多的代码移动到用户空间库中。
每个选项的优点和缺点是什么?您会推荐其他方法吗?
最佳答案
根据刚才的要求,我将在提出原始问题一年多后尝试分享我的经验。我们决定使用 Windriver,但到目前为止我们只编写了 Windows CE 6.0 的驱动程序,因此我无法评论跨平台支持。
在 Windows CE 6.0 上使用 Windriver 既有优点也有缺点。这意味着我们所有的驱动程序代码现在都在库中,因此开发和调试更加容易(与需要 Platform Builder 的标准驱动程序相比)。所以从发展的角度来看,它一直很好。业绩也一直不错。在开始学习 Windriver API 以及如何使用它时会有一些开销,尤其是 DMA 和中断,但我认为这并不比学习原始的 Windows CE 6.0 PCI API 更糟糕。
我能想到的唯一真正的缺点是“真正的”驱动程序比我们使用 Windriver 创建的库更容易在多个进程之间共享。在我们的应用程序(具有一个进程的嵌入式系统)中,这并不是一个真正的问题,但是创建在主进程背后的硬件上运行的调试/开发实用程序更加困难。我们已使用该方法在其他平台上进行测试/调试,但在此处执行起来有点复杂。
总而言之,我认为我们做出了正确的选择,我很高兴我们能够在需要时(希望)以非常少的努力将我们的“驱动程序”移植到 Windows 桌面。
关于windows - 适用于 Windows CE 和 Windows 桌面的 PCIe 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7444736/
我正在编写一个支持多种设备的 Linux 设备驱动程序。我有一个 x8 PCIe 卡,上面有 4 个这样的设备。每个都通过一个 PCIe 交换机运行并获得 2 个 PCIe channel 。有没有办
有谁知道放在 PCIe 卡上的 COM,它有一些闪存、一些 RAM、JTAG 支持(或某种调试支持)、一些输入端口,如 USB,也许支持一些输出,如通过 VGA 或 LVDS,只是像这个板子:http
我是 PCIe 的新手,所以这可能是个愚蠢的问题。这似乎是询问有关 PCIe 接口(interface)的相当基本的信息,但我找不到答案,所以我猜我遗漏了一些使答案显而易见的信息。 我有一个系统,其中
为了实现NVMe SSD和其他PCIe设备之间的p2p通信,我想知道是否需要对Linux内核和NVMe驱动程序进行一些修改,或者其他什么?我应该做哪些修改?我已经搜索了几天,但是这方面的信息很少,我需
我一直在阅读令人恐惧的 PCIe 规范,但仍然无法对以下问题得到任何解决方案。 PCIe 是否允许将巨大(例如 16GB)64 位不可预取内存空间映射到 4GB 边界以上?或者它们仍然与 32 位时代
两个独立的设备(端点)可以在没有根复合体参与 PCIe 的情况下相互通信(根据 PCIe 规范是的,但是如何)? 在内存和 IO 事务的情况下,一个端点如何知道另一个端点的地址? 交换机如何在两个下游
对于另一个问题,我使用了与附件相同的情节。可以看到峰值带宽超过5.5GB/s。我正在使用来自代码示例的 NVidia 带宽测试程序来查找主机到设备之间的带宽,反之亦然。 该系统由两个插槽上的 12 个
过去几天开始,我尝试开发主机和端点之间的数据传输,但我无法实现该实现。我尝试了如何使用一些调用读取配置空间(pci_read_long),已成功读取vendor_id、device_id...等数据。
我正在 Linux 中为在 Xilinx UltrascaleMPSoC FPGA 部分上实现的 PCIe 端点编写一个设备驱动程序。我已经正确实现了删除功能。我使用适配器将设备连接到电脑,打开设备,
我正在为 openwrt 开发一个 PCIE 设备驱动程序,在尝试访问定时器中断中的 io 内存时遇到了数据总线错误,我在 last question 中提到过.经过大量研究,我想我可能找到了原因,但
我正在尝试使用流式 DMA 映射将 DMA 添加到我的 PCIe Linux 驱动程序。 FPGA(端点)为 DMA 配置了 BAR4,在我的设置函数中我做了(按顺序): pci_set_master
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在这里发现了一些关于它的话题,但没有一个能解释我遇到的问题。我只是想通过将其映射到 Linux 中的用户内存空间来访问 PCIe 设备的内部状态寄存器。这是我的系统配置: # uname -a Li
例如,当我使用带有 CUDA C/C++ 和 GPUDirect 2.0 P2P 的多 GPU 系统时,我使用嵌套的 PCI-Express 开关,如图所示,那么我必须知道任意两个 GPU 之间有多少
我正在开发一个在启动时将大量数据推送到显卡的流媒体应用程序。在推送数据时,CPU 几乎没有做任何事情,它以接近零的使用率闲置。 我想监控哪些机器在推送初始数据时遇到困难,哪些机器可以应付,以便我可以为
我写了一个简单的 PCIe 驱动程序,我想测试它是否有效。例如,如果也可以写入和读取从设备使用的内存。 我该怎么做? 哪些东西也应该被证明? 最佳答案 例如,您需要找到设备的 sysfs 条目 /sy
我在我的 intel i7 PC 上使用 intel i210 1G NIC 卡,我想知道这个 NIC 如何与主机通信而无需开箱即用的任何配置。 什么 NIC 作为 PCIe 设备输出到主机,主机 p
我希望能够将视频从连接到我的计算机的摄像头直接流式传输到我通过 PCIE 连接到我的计算机的 FPGA。 我不介意使用 javascript 或 C# 等高级语言来执行此操作(因为这些是我知道的具有视
我已经编写了一个 PCIe 设备驱动程序,但读/写功能无法正常工作。该设备有 3 个内存区域,分别从 0x10800000、0x0c000000 和 0x80000000 开始。仅出于测试目的,我在驱
我正在为 Linux 编写一个 PCIe 驱动程序,目前没有 DMA,并且需要知道一旦从用户空间启用它后如何读取和写入 PCIe 设备。 在驱动程序中,我在 probe() 中执行基础操作: pci_
我是一名优秀的程序员,十分优秀!