sách gpt4 ai đã đi

Linux 驱动 PCI 突发传输

In lại 作者:太空宇宙 更新时间:2023-11-04 04:15:33 32 4
mua khóa gpt4 Nike

我有一个关于在 PCIe 上使用突发读写的问题。我有一个 fpga,它通过 PCIe 连接到 cpu。我有一个简单的驱动程序,仅用于测试。驱动程序向 FPGA 写入数据以及从 FPGA 读取数据。 fpga 包括一个 sram 核心,可在其中写入和读取数据。读取和写入工作正常,但如果我从设备读取,则不会出现突发情况。如果我将数据写入 fpga,如果我使用 ioremap_wc() 映射 BAR,则突发工作良好。但是如果我从fpga读取,CPU只会进行单次访问而不会突发。我发现我必须将内存标记为回写,以便能够缓存读取和写入传输的数据,但是如果我使用/proc/mtrr 将地址标记为回写,则读取和写入时不会出现突发。 PCI header 中的 BAR 被标记为可预取。你们中有人知道如何在 pci 总线上实现突发读写吗?我希望任何人都可以帮助我。

1 Câu trả lời

在 PICe 总线上实现突发传输的最佳方法是使用 DMA Controller 而不是处理器 I/O。如果您的 FPGA 是 PCIe 总线主控,您可以对其进行编程以传输数据。除此之外,大多数平台都内置有 DMA Controller 。

我希望写入组合能够执行与未缓存相同的读取操作。但即使您使用 ioremap_cache(),您的平台也可能不会突发 PIO 读取。它可能取决于您的处理器、执行读取的指令和系统逻辑。

关于Linux 驱动 PCI 突发传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16595280/

32 4 0
Bài viết được đề xuất: c - 水平循环scanf
Bài viết được đề xuất: c++ - 使用 Boost 1.53 的链接阶段 undefined reference
Bài viết được đề xuất: python - datetime.datetime.strptime() 使用可变输入长度
Bài viết được đề xuất: PHP "Crypt_Blowfish"类启动错误?
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com