Симптом. Когда я выбираю меню flash программы из IDE, оно начинает работать, но в случайной точке происходит сбой. Иногда стирает flash успешно, иногда раньше (см. логи ниже).
История: все работало несколько недель. Когда я загрузил свою программу, она работала, печатая данные в порт UART. Затем, хороший день, мигание прекратилось. Я пробовал, но он печатал различные ошибки. На следующий день он снова работал (без каких-либо исправлений), но только в течение 2-3 дней, а затем перестал работать навсегда.
Диагностика: В Vivado я вижу устройство, оно выглядит здоровым. Я проверил скрипты .bat
, они задают окружение и, наконец, вызывают rdi_zynq_flash.exe
, который отвечает за весь процесс перепрошивки (используя сервер на локальном хосте). С этого момента у меня нет возможности узнать, что на самом деле происходит под капотом. Я играл с инструментом XSCT
, но я понятия не имею, что я должен проверить.
Конфигурация:
- Плата: Xilinx Zynq 7000, ZC702
- IDE: Vivaldo 2020.1, для Windows 10
- тип программы: автономная (не Linux), только код ARM, без использования FPGA
- режим программирования: QSPI (переключатель 4 включен, остальные выключены)
Ошибки:
- нераспознанные байты идентификатора JEDEC: 10, 01, 00
- нераспознанные байты идентификатора JEDEC: 68, 03, 00
- Не удалось прочитать регистр режима загрузки
- ОШИБКА: Сбой операции вспышки
- zynq_qspi_irq_poll: Тайм-аут
См. полные журналы.