Использование DMA для связи PCIe

Xilinx Corp. выпустила несколько программ для работы с DMA PCIe IPcore, которая доступна Вот. В этих программах есть некоторые программы, которые выполняют C2H или наоборот, высокоскоростные операции.

Это в основном использует DMA на стороне хоста или что-то избыточное должно быть написано в этих кодах? Например, фрагмент кода, который выполняет запись / чтение в режиме AXI-ST, выглядит следующим образом:

void do_transfers_in_parallel(unsigned index, device_file& h2c, device_file& c2h,
std::array<uint32_t, array_size>& h2c_data,
std::array<uint32_t, array_size>& c2h_data) {

std::cout << "    Initiating H2C_" << index << " transfer of " << h2c_data.size() * sizeof(uint32_t) << " bytes...\n";
std::thread read_thread(&device_file::write, &h2c, (void*)h2c_data.data(),
h2c_data.size() * sizeof(uint32_t));
std::cout << "    Initiating C2H_" << index << " transfer of " << c2h_data.size() * sizeof(uint32_t) << " bytes...\n";
std::thread write_thread(&device_file::read, &c2h, (void*)c2h_data.data(),
c2h_data.size() * sizeof(uint32_t));

write_thread.join();
read_thread.join();

}

1

Решение

Я думаю, что это абсолютно зависит от природы спецификации PCIe, а также драйвера Xilinx PCIe, который полностью описан в PG195.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector