- PVSM.RU - https://www.pvsm.ru -
В прошлой публикации [1] я упомянул, что мой SBC для экспериментов пал смертью храбрых. Само собою, встала проблема нового подопытного.
Простой одноплатник мне как-то не хотелось приобретать, поэтому выбор мой пал на SoC'и. Выбирал я между Zynq и Cyclone V. По названию темы, думаю, догадались, что же я решил выбрать.
Данная публикация будет состоять из небольшого обзора платки с заглавной картинки и того, как «программировать» и «конфигурировать» подобное железо.
Кому это интересно прошу под кат.
Приобрёл платку Z-turn Board фирмы Myir.
На ней камень Zynq 7020, 85к логических ячеек, 2 ядра Cortex-A9, 1 GB DDR3. Выведеные на плате интерфейсы: JTAG, HDMI, micro SD host, Ethernet, UART, USB OTG и ~100 GPIO pins. Из периферии есть LED, RGB LED, buzzer, inertial and temperature sensors.
Более подробное описание можете поглядеть по ссылке [2].
Отмечу, что если собираетесь использовать такой камень, то обязательно приобретайте для него радиатор и стойки для соответствующей платы. А если и этого не хватает, то привинтите туда ещё и вентилятор, т.к. этот зверь греется сильно.
Собственно, программивать Zynq можно двумя путями: 1) как обычный MCU baremetal 2) из под OS.
В этом случае всё предельно просто: накидываете программку--->компилите--->заливаете JTAG'ом в камень. У этого камня 256 кБ флэша для прошивки.
Т.к. JTAG отладчик я не преобретал, то показывать тут нечего=)
В моём случае на micro SD карточке сборка Линукса. Т.е. путь создания, проверки и отладки программ аналогичен описанному, в прошлой публикации.
Элементарщина: накидываете программку--->компилите toolchain'ом и копируюте на плату/компилите на плате/копируюте на плату скрипт--->отлаживаете/запускаете--->имеете профит!
Думаю, заострять на этом внимание не особо нужно, поэтому просто <<Hello Zynq!>>:
bash>$ touch hellozynq.py
bash>$ echo '#!/bin/python
> print "Hello Zynq!"
> ' > hellozynq.py
bash>$ cat hellozynq.py
#!/bin/python
print "Hello Zynq!"
Копируем наш файлик на борду:
bash>$ scp hellozynq.py root@<ip_address>:/root/hellozynq.py
root@<ip_address>'s password:
hellozynq.py 100% 35 0.0KB/s 00:00
Запускаем:
root@localhost:~# chmod +x hellozynq.py
root@localhost:~# python hellozynq.py
Hello Zynq!
root@localhost:~# uname -a
Linux localhost.localdomain 3.15.0-xilinx #9 SMP PREEMPT Tue May 26 17:26:14 CST 2015 armv7l armv7l armv7l GNU/Linux
А вот здесь заострим внимание.
Путь конфигурирования FPGA части этого SoC'a ориентировочно таков:
Создание проекта в IDE фирмы Xilinx и разрабокта программы сами по себе займут по статье. Поэтому я возьму готовый проект, который шёл вместе с бордой.
Сперва запускаем проект.
Затем запускаем синтез и имплемнтацию.
После генерируем bitstream файл.
Копируем его на борду:
bash>$ scp another_blink.bit root@192.168.100.9:/root/ablink.bit
root@192.168.100.9's password:
hw.bit 100% 3951KB 3.9MB/s 00:00
Проверяем каталог:
root@localhost:~# ls -lahs *.bit
3.9M -rw-r--r-- 1 root root 3.9M Mar 5 10:35 ablink.bit
3.9M -rw-r--r-- 1 root root 3.9M Mar 1 18:17 blink_conf.bit
3.9M -rw-r--r-- 1 root root 3.9M Mar 2 03:13 hw.bit
0 -rw-r--r-- 1 root root 3.9M Mar 2 18:50 uf.bit
И конфигурируем FPGA:
root@localhost:~# cat hw.bit > /dev/xdevcfg
Ура товарищи! Светодиод горит!
Заметки:
Конфигурировать FPGA, естественно, можно и отладчиком. Только у меня его нет.
Vivado очень можная штука и требует много памяти и ресурсов CPU. На моих i5 и 4GB ОЗУ постоянно свапует.
Также нужно быть внимательным разработчиком, т.к. я слышал несколько историй о том, как жгли камни неправильно настраивая вывода FPGA. Быть может, это невалидно для Zynq.
P.S.:
Я решил взять эту платку т.к. она самая дешёвая и доступная мне интересны FPGA тем, что в них можно синтезировать любые цифровые интерфейсы, делать мультиплексоры выводов и, самое крутое, синтезировать вычислители (автоматы, процессоры, сопроцессоры типа FPU и т.п.). А в купе с Linux'ом на процессорной части можно творить крутейшие вещи.
Автор: gazpar
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/247857
Ссылки в тексте:
[1] публикации: https://habrahabr.ru/post/319736/
[2] ссылке: http://www.myirtech.com/list.asp?id=502
[3] Источник: https://habrahabr.ru/post/323224/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.