Доброго дня всем! Надеюсь я верно выбрал раздел для вопроса, если нет, прошу простить и переместить. В рамках одного довольно большого устройства планируется использовать 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? (писать драйвер? использовать готовое?) Спасибо!
|