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

 
 
> Xilinx Zynq+DDR+DMA+Ethernet, Все в тумане
ConstHw
сообщение Nov 12 2015, 14:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 12-11-15
Пользователь №: 89 287



Всем привет, взываю к помощи так как кажется потерялся в дебрях Цинка.

Что хочется
Принимать данные по Ethernet, складывать их в память DDR3, доставать их оттуда, обеспечить доступ к этим данным другим ядрам.

Что есть
1) Запустил проект с LwIP вроде xapp. Вижу принятые и отправленные пакеты, посмотрел на них в WireShark, пописал свои пакеты туда с PC и обратно с платформы. Но пока для меня это все выглядит как черный ящик, где я с одной стороны вызываю tcp_recv и tcp_recv, которые внутри себя вызывают LwIP стек, который основан на драйверах Xilinx, которые там что то колдуют с регистрами контроллеров памяти,эзернета и ДМА описанными в UG585
2) Запустил проекты с MIG+ процессорное ядро. Пописал данные в память, почитал через AXI,
3) Пописал принятые по TCP данные в MIG напрямую из процессора. Делал напрямую "в лоб"
Код
*(Addr+I) = Val;
Где адрес соответственно ссылается на диапазон памяти принадлежащий подключенному MIG
4) Запустил тестовый проект с AXI DMA, пописал данные в память через него.

Что делать дальше непонятно, так как не понимаю многих вещей
1) Правильно ли я понял, что LwIP работает исключительно в пределах PS, использует только аппаратный DMA, складывает данные только в память, которая подключена к PS?

2) Как в таком случае правильно принять пакеты из Ethernet?
2.1) Если процессор занят обработкой протоколов Ethernet, TCP, IP в рамках выполнения LwIP-программ, то и в память он получается может писать принятые данные сам без ДМА?
2.2) Или он может передавать в DMA команду "бери данные из памяти вот тут вот столько и грузи в MIG"?
2.3) Или надо поток данных из GigE контроллера направить через аппаратный DMA в подключенный напрямую к процессору MIG? И потом вызывать прерывания для обработки?
2.4) Или надо поток данных из GigE напрвавить в MIG через AXI-DMA и дергать прерывание уже им?

3) Обязательно ли в такой задаче использовать TCP/IP? Если например стоит задача передавать данные от PC к непосредственно подключенной плате, можно ли использовать голый Ethernet, складывая свои данные в его payload?

4) Зачем вообще в множестве проектов используется AXI DMA, когда в PS есть аппаратный 8 канальный DMA-330? Почему не обходятся только им?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:07
Рейтинг@Mail.ru


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