Вопрос или проблема
Первоначально опубликовано по адресу https://adaptivesupport.amd.com/s/question/0D54U00008i81RlSAI/
Платформа и приложение успешно собраны как в вывода, так и в GUI. Компонент HLS успешно синтезирован и экспортирован. Платформа Vivado успешно экспортирована для аппаратуры и эмуляции.
Ниже приведены скриншот GUI и журналы вывода. Полные результаты можно увидеть в оригинальном посте, так как наличие их здесь вызывает отметку вопроса как спам.
GUI с ошибкой сборки
SW_EMU:
--------------------------------------------------------------------------------
[12/09/2024, 15:59:18]: Началась сборка для madd_sys::sw_emu с id '0368ab64-f29d-47e0-a528-d0a4a577b9b6'.
--------------------------------------------------------------------------------
gmake[1]: Вход в директорию '/home/user/EDA/bm_arithmetic/madd_sys/build/sw_emu'
gmake[1]: Нечего делать для 'all'.
gmake[1]: Выход из директории '/home/user/EDA/bm_arithmetic/madd_sys/build/sw_emu'
/tools/Xilinx/Vitis/2024.1/tps/lnx64/cmake-3.24.2/bin/cmake -E cmake_progress_start /home/user/EDA/bm_arithmetic/madd_sys/build/sw_emu/CMakeFiles 0
Сборка завершена успешно
--------------------------------------------------------------------------------
[12/09/2024, 15:59:19]: Сборка для madd_sys::sw_emu с id '0368ab64-f29d-47e0-a528-d0a4a577b9b6' завершена.
HW_EMU:
--------------------------------------------------------------------------------
[12/09/2024, 15:59:36]: Началась сборка для madd_sys::hw_emu с id '0bf646e9-3465-4b99-83f5-6cea3a3b7a24'.
--------------------------------------------------------------------------------
gmake[1]: Вход в директорию '/home/user/EDA/bm_arithmetic/madd_sys/build/hw_emu'
gmake[1]: Нечего делать для 'all'.
gmake[1]: Выход из директории '/home/user/EDA/bm_arithmetic/madd_sys/build/hw_emu'
/tools/Xilinx/Vitis/2024.1/tps/lnx64/cmake-3.24.2/bin/cmake -E cmake_progress_start /home/user/EDA/bm_arithmetic/madd_sys/build/hw_emu/CMakeFiles 0
Сборка завершена успешно
--------------------------------------------------------------------------------
[12/09/2024, 15:59:37]: Сборка для madd_sys::hw_emu с id '0bf646e9-3465-4b99-83f5-6cea3a3b7a24' завершена.
HW
--------------------------------------------------------------------------------
[12/09/2024, 15:59:41]: Началась сборка для madd_sys::hw с id 'f13e8028-6787-4a0f-80a1-d7d4a3f25afe'.
--------------------------------------------------------------------------------
gmake[1]: Вход в директорию '/home/user/EDA/bm_arithmetic/madd_sys/build/hw'
gmake[1]: Нечего делать для 'all'.
gmake[1]: Выход из директории '/home/user/EDA/bm_arithmetic/madd_sys/build/hw'
/tools/Xilinx/Vitis/2024.1/tps/lnx64/cmake-3.24.2/bin/cmake -E cmake_progress_start /home/user/EDA/bm_arithmetic/madd_sys/build/hw/CMakeFiles 0
Сборка завершена успешно
--------------------------------------------------------------------------------
[12/09/2024, 15:59:42]: Сборка для madd_sys::hw с id 'f13e8028-6787-4a0f-80a1-d7d4a3f25afe' завершена.
Валидатор жалуется на то, что в системе нет бинарного файла. Но опять же, поскольку это проект без операционной системы, нет смысла в поддержке ядра. Как и ожидалось, Vitis не позволяет добавлять madd в качестве бинарного контейнера. Ниже приведен скриншот для дальнейшего пояснения.
Ошибка бинарного контейнера
Я просто пытаюсь сделать это еще раз с нуля, так как не знаю, где искать что-то неправильно.
Ответ или решение
Причина, по которой проект системы успешно собирается для проектов на основе "bare-metal SoC", но терпит неудачу в графическом интерфейсе (GUI), заключается в различиях в обработке сборки и валидации между командной строкой и GUI.
Анализ проблемы
-
Успешная сборка в командной строке:
Из представленных логов видно, что сборка компонентов (SW_EMU, HW_EMU и HW) завершается успешно, как в командной строке, так и в GUI. Это указывает на то, что конфигурация и зависимости проекта в целом корректны. -
Ошибка в GUI:
Ошибка, заявленная валидатором в GUI, заключается в отсутствии бинарного файла. Для проектов "bare-metal" действительно недостаточно поддержки ядра, и, следовательно, бинарный контейнер не является обязательным. Однако GUI может интерпретировать это как проблему из-за некорректных настройках сборки или конфигурации проекта. -
Проблема с бинарным контейнером:
Судя по описанию, Vitis не позволяет добавить ваш проект как бинарный контейнер. Это может быть результатом неправильной конфигурации проекта, где он ожидает наличия бинарного файла для корректного завершения процесса сборки в GUI.
Решение проблемы
-
Проверьте конфигурацию проекта:
Убедитесь, что настройки проектирования (Project Settings) соответствуют требованиям "bare-metal" проектов. Проверьте, правильно ли указаны параметры для целевой платформы и компилятора. Особенно убедитесь, что режим работы установлен на "bare-metal". -
Пересмотрите зависимости:
Возможно, компоненты проекта или параметры сборки не настроены корректно для поддержки bare-metal. Проверьте, не требует ли проект дополнительных файлов или библиотек. -
Ручная сборка бинарного файла:
Если GUI по-прежнему показывает ошибку, попробуйте собрать бинарный файл вручную с использованием make-файлов, созданных в результате проектирования. Убедитесь, что выходные файлы настраиваются на правильные пути и типы. -
Логирование и детализированный вывод:
Включите дополнительное логирование в настройках Vitis или используйте флаг отладки, чтобы лучше понять, в каком месте процесс застревает. Это может помочь выяснить, почему валидатор не находит бинарный файл. -
Обновление Vitis:
Поскольку вы используете версию Vitis 2024.1, убедитесь, что у вас установлены все обновления и патчи. Иногда в новых версиях исправлены ошибки, связанные с GUI.
Заключение
Проблема между успешной сборкой в командной строке и ошибками в GUI может быть обусловлена некорректной конфигурацией проекта или отсутствием необходимых бинарных файлов. Следуйте предложенным шагам для диагностики и решения проблемы. Если после выполнения всех шагов проблематика не исчезнет, возможно, стоит обратиться в службу поддержки Xilinx с полным описанием проблемы и логами для более глубокой диагностики.