请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM2434 您好、TI!
我们致力于
AM243x
最新 SDK :在 PCIe 上为09.00.00。
根据示例 PCIe msi 中断、
- EP 初始化一个较大的缓冲区(256KB)
- RC 会读取大缓冲区16B x 16B 并复制自身的存储器。
我们观察到一些测量延迟的不一致结果:
在第一种情况下:
#define READ_BUF_SIZE 4
"memcpy (RC_SRAM_buff、transBufAddr + sizeof (uint32_t)* k * READ_BUF_SIZE、READ_BUF_SIZE * sizeof (uint32_t);"
结果是 8us
在第二种情况下:
uint32_t l = 4;
memcpy (RC_SRAM_buff、transBufAddr + sizeof (uint32_t)* k * READ_BUF_SIZE、l * sizeof (uint32_t);
延迟结果为20us
我们在调试逐步过程中检查 asm memcpy、并且我们看到这两个代码之间的 asm 存在一些差异。 我们希望了解:
- 从16字节的 PCIE0_DAT0区域执行 memcpy 时、PCIe 控制器是执行4 TLP 读取操作4B 还是执行1个 TLP 读取操作16B?