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

 
 
> как организовать взаимодействие двух ARM-ов под Linux?, прошу совета
Dunduk
сообщение Oct 19 2015, 09:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904



Доброго дня всем! Надеюсь я верно выбрал раздел для вопроса, если нет, прошу простить и переместить.
В рамках одного довольно большого устройства планируется использовать 2 процессора:
1. Zynq для сбора данных, ЦОС и пр. Скорее всего под управлением embedded Linux
2. Недорогой ARM типа iMX6Solo для интерфейсов: дисплей, LAN, USB и т.д. Под Linux.
Причина такого разделения в том что Zynq вынужден обрабатывать задачи практически реального времени (я понимаю что Linux не для этого, но все же), а второй процессор реализует UI, где много всякой рутины и нет риал тайма. В общем, решили использовать именно 2 процессора.
Между процессорами нужно организовать обмен данными: картинки по ~1МБ десять раз в секунду, команды управления (единицы байт) и пр. Не имея опыта в этом вопросе я могу предположить некоторые варианты:
1. Dual port RAM
2. Обычная память, например DDR, из которой внутри ПЛИС Zynq "слеплена" dual port memory
3. непосредственная связь от проца к процу через например UART, с использованием метода "запрос готовности" - ACK - "передача данных" и т.д.
4. То же самое но с использованием FIFO или DMA.
Собственно, вопрос, какой из вариантов наиболее жизненный? Как это будет выглядеть с точки зрения Linux? (писать драйвер? использовать готовое?)
Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BaN
сообщение Oct 20 2015, 10:31
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 28-08-07
Пользователь №: 30 111



В зависимости от того, какой степени должна быть "реальность времени", можно посмотреть в сторону Xenomai.
https://www.osadl.org/fileadmin/dam/rtlws/12/Brown.pdf

Сообщение отредактировал BaN - Oct 20 2015, 10:34
Go to the top of the page
 
+Quote Post
Dunduk
сообщение Oct 20 2015, 14:49
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904



Цитата(BaN @ Oct 20 2015, 13:31) *
В зависимости от того, какой степени должна быть "реальность времени", можно посмотреть в сторону Xenomai.
https://www.osadl.org/fileadmin/dam/rtlws/12/Brown.pdf

спасибо, изучаю.

Цитата(Tarbal @ Oct 20 2015, 14:50) *
Я бы начал с соединения по TCP/IP.

т.е. с обоих сторон ставить Phy и разъем-трансформатор?
Go to the top of the page
 
+Quote Post
ASN
сообщение Oct 20 2015, 18:02
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326



Dunduk
Не надо с обоих сторон ставить Phy и разъем-трансформатор sm.gif
Достаточно только подправить сетевой драйвер в Linux, то есть вместо записи/чтения в MAC сделать обмен через свой специальный интерфейс (на PL).
На пользовательском уровне работать как с обычными сокетами - сетевая подсистема сама всё протолкнём.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Oct 20 2015, 22:22
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(ASN @ Oct 20 2015, 22:02) *
Dunduk
Не надо с обоих сторон ставить Phy и разъем-трансформатор sm.gif
Достаточно только подправить сетевой драйвер в Linux, то есть вместо записи/чтения в MAC сделать обмен через свой специальный интерфейс (на PL).
На пользовательском уровне работать как с обычными сокетами - сетевая подсистема сама всё протолкнём.


Кстати да. Я вспомнил, что что-то подобное было описано в Техас Инструментс руководстве для AM3715 (документ на 3000 с лишним страниц). Не уверен на 100%, что оно, но похоже что так.

Сообщение отредактировал Tarbal - Oct 20 2015, 22:27
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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