реклама на сайте
подробности

 
 
> DMA PCIe Cyclon, Ламерский вопрос.
Trashy_2
сообщение Sep 28 2016, 10:56
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 254
Регистрация: 27-10-08
Пользователь №: 41 220



Есть железка на Cyclone5 со встроенным PCIe+Avalon без ARM на борту.

Подключено к компу. Со стороны ПЛИС выделен BAR0 и там набор регистров. Верхнее приложение под Виндой по прерыванию или по полингу выгребает данные из БАРа. Работает, но не по феншую: жрёт процессорное время.

У меня дыры в понимании работы DMA. Работал с DMA в контроллерах, где какая-то аппаратная хрень, которой передаёшь смещение и сколько читать и она сама копирует данные в некую область памяти и потом сообщает...

Не пойму как это работает в стыке PCI и компа. Канал то один и тот же. Что необходимо менять в прошивке ПЛИС, что бы этот режим был доступен компу?


--------------------
Транзистор не сможет измерить широкое сердце героя!(ц)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AVR
сообщение Mar 7 2017, 10:56
Сообщение #2


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



На самом деле всё гораздо гораздо проще, говорят нужен какой то контроллер DMA. На самом деле DMA-режим работы можно осуществить без него, если делаете свои TLP пакеты. По сути, на стороне ПК в драйвере выделяется буфер, который будет видеть и ядро и устройство (ну специальным образом выделенная память), его адрес кидается на BAR0 и устройство может тупо слать TLP пакеты на этот адрес и это не сжирает процессор. т.е. устройство само туда пишет, это Bus Mastering. Когда тысячи пакетов накиданы устройством прямо в память (в этот буфер) - делается прерывание (MSI). Скорость будет околосветовая (теор предел линка), загрузка проца ничтожна.

Есть вопросы - пишите, подскажу.


--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 2nd September 2025 - 00:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01344 секунд с 7
ELECTRONIX ©2004-2016