ZYNQ SW: EBAZ4205: часть 4 (Vivado 2023)
Продолжение. Начало см. в первой части
- Аннотация см часть 3
- Обзор платы см часть 1
- Параметры платы см часть 1
- Программатор см часть 1
- Приступаем к работе см часть 3
- Сборка и настройка HW части см часть 3
- SW часть проекта
- Итоги
- Ссылки
Ссылка на PDF версию в конце статьи
Теперь переходим в Vitis через меню Tools -> Launch Vitis IDE
Создаем новый проект платформы. File -> New -> Platform Project...
Задаем имя платформы.
Выбираем через browse экспортированный ранее проект
Больше ничего менять не нужно, нажимаем Finish
Теперь нужно немного скорректировать конфигурацию, чтобы выводить stdin/stdout на наш uart1. И проверяем, что все настроено на uart1 в Settings.
Запускаем build проекта.
Платформа готова. Теперь выбираем вкладку Welcome -> Examples
и из списка выбираем Hello World проект
Далее
Далее
Далее
Finish
В дереве проекта видим приложение
Можно посмотреть исходный код
Скомпилировать
Готово
Запускаем. Но перед запуском, нужно убрать флешку из разъема SD если она там была, иначе платформа загрузится с нее и не будет доступна для прошивки через JTAG.
Подключаем программатор к плате. Подключаем переходник USB-rs232 к выходу UART на плате.
Подаем питание.
Я подал питание на другой разъем, который рядом с sd flash. Там все пины подписаны на плате. Питание подал прямо с pl2303 с линии +5В. Обязательно подключить gnd. А линии rx\tx нужно соединять RX<->TX и TX<->RX (если вдруг кому-то это не очевидно).
Настраиваем программатор. Программируем конфигурацию bit из экспортированной папки
D:\FPGA_Projects\hello_world\hello_world_ebaz4205_platform\export\hello_world_ebaz4205_platform\hw\design_1_wrapper.bit
Запускаем прошивку.
Для работы с терминалом я не нашел встроенного инструмента, поэтому запустил Putty на COM порт на скорость 115200.
На приложении (Application) запускаем - RUN. При этом прошивка загрузится через программатор в плату.
Переключаемся на окно терминала, и в терминале видим сообщения от ядра! Все получилось.
Итоги
Пройдя инструкцию по шагам, мы произвели минимальную настройку системы ZYNQ на базе платы EBAZ4205. Для этого мы настроили ее в соответствии с ее аппаратными особенностями: выбрали последовательный порт UART который выведен на разъем, настроили работу установленной на плате DDR памяти. Экспортировали полученный проект из Vivado. Далее в Vitis мы создали проект платформы на базе нашей платы и создали проект приложения на базе темплейта Hello World. В результате должны были увидеть текстовые сообщения, выведенные через последовательный порт UART, программой, работающей в ядре. И нам это удалось!
Работа в новой версии Vitis 2023 немного отличается от версии 2020. Не смог с ходу найти Vitis Serial консоль. Возможно, прошивать конфигурацию не требуется перед запуском приложения в режиме отладки. Но ответы на эти и другие вопросы предлагается найти самостоятельно ;)
Ссылки
https://hackaday.com/2020/11/18/hacking-the-fpga-control-board-from-a-bitcoin-miner/
https://github.com/xjtuecho/EBAZ4205
https://github.com/Elrori/EBAZ4205
https://www.jianshu.com/p/b83c663ecaaa
https://hhuysqt.github.io/zynq1/
https://www.youtube.com/watch?v=b6g5tNZZnVc
https://github.com/blkf2016/ebaz4205 - linux образ для SD флешки для запуска
Разные примеры использования и доработки платы
https://www.programmersought.com/article/63123379082/ EBAZ4205 ZYNQ development board-the first step in getting started
https://www.programmersought.com/article/43024210515/ helloworld of EBAZ4205 of zynq7010
https://www.programmersought.com/article/63646026059/ EBAZ4205 mine board ZYNQ7010 uses JTAG to burn program to NAND and run - переключатель
https://www.programmersought.com/article/78153940676/ Mining board EBAZ4205-ZYNQ7010 linux development notes 1---create vivado bare metal project and SDK
https://www.programmersought.com/article/33604391182/ Mining machine board EBAZ4205-ZYNQ7010 linux development notes 3--I2C driver framework explained
https://www.programmersought.com/article/39142405511/ zynq7010 transformation of EBAZ4205 entry - как добавить 50 МГц генератор в PL
https://www.programmersought.com/article/22063460399/ Run AXI_DMA interrupt loopback test on EBAZ4205 zynq7010
https://www.programmersought.com/article/91104417164/ EBAZ4205 key interrupt
https://www.programmersought.com/article/65574959208/ EBAZ4205 mining board petalinux development LINUX project
https://youtu.be/Mb-cStd4Tqs видео, на базе которого был создан туториал в части 1 и 2.
https://marsee101.blog.fc2.com/blog-entry-6089.html Статья, которая использовалась для того, чтобы понять, как сделать HelloWorld на Vitis версии 2023