大家好、我将在 Ubuntu 14.04上使用 processor_sdk_vision_03_02_00_00和一个自定义 TDA2XX 板、其中2个 SoC 通过 PCIe 连接。
我已按照以下指南成功运行了 pcitest: processors.wiki.ti.com/.../Linux_Core_PCIe_EP_User's_Guide。
现在、我对测试本身以及 EDMA 有一些问题、涉及以下文件:
> processor_sdk_vision_03_02_00_00/ti_componels/os_tools/linux/kernel/omap/drivers/misc/pci_endpoint_test.c
> processor_sdk_vision_03_02_00_00/ti_compons/os_tools/linux/kernel/omap/drivers/dma/edma.c
问题:
1) 1)当目的缓冲区和源缓冲区都分配在 RC 侧时、如何对 RC 到 EP 通信进行 PCI_end点_test_copy()函数测试? 在 EP 侧处理数据的代码部分在哪里? 即使这确实测试了 RC 到 EP 通信、速度也很糟糕、根据我的测量结果、速度大约为4Mbps (在 x1模式下、相比之下、在 RTOS 中、我得到的值为370MBps、与 TI 官方测量值相当)。 此外、当我在器件树中启用2个通道时、执行时间没有任何变化。
2) 2)我看到在 pci_endpoint_test.c 中未使用 EDMA、这可能是导致性能不佳的原因。 我想使用 EDMA.c 中的 API、但有很多函数和结构、我不知道从哪里开始。 在 RTOS 中、这一切都变得更加简单和清晰。 我希望获得一个简单的复制示例、该示例使用与 RTOS 中类似的过程(初始化 EDMA、请求通道、准备参数集、触发、等待完成、 空闲通道、取消初始化 EDMA)。
我希望得到任何帮助,因为这种情况变得有点令人沮丧。
提前感谢您。
此致、Nick