Перейти к содержанию
    

Xilinx. Microblaze проблемы с отладкой

Используется микросхема XC7K70T-2FBG484. Это Kintex-7. Конфигурация храниться в SPI PROM N25Q064A13ESED.

В VIVADO 2016.2 создал проект на базе Microblaze. В SDK создал простую Hello World программу. Если записать эту прошивку в ПЛИС напрямую(не во flash) по JTAG и затем подключиться отладчиком, то все работает, но иногда при срабатывании breakpoint в консоли XMD выдается вот такая ошибка:

 

Error: MicroBlaze Pipeline Stalled on a Blocking Instruction or Invalid Bus Access
Stalled PC: 0x00001180
Try Resetting the Processor to Continue..

 

Адрес в строке: "Stalled PC: 0x00001180" - это адрес на котором произошел останов.

 

Далее, если прошить конфигурацию во flash и подключиться к ней отладчиком, появляется большое кол-во непонятных ошибок.

- Программа иногда возвращается к началу main()

- Появляется вот такая ошибка:

MicroBlaze is in Sleep mode and Wake up is being executed
MicroBlaze is in Sleep mode and Wake up is being executed
ERROR: Unable to Stop Processor

Time out: Unable to Wake up MicroBlazeTime out: Unable to Wake up MicroBlazeUNABLE to STOP MicroBlaze

Она может быть как сразу при попытке подключения, так и потом, во время работы.

Я проверил целостность данных, зашитых во flash.

 

Какие могут быть причины такого поведения?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие могут быть причины такого поведения?

 

Постою послушаю (ц)

У меня сложилось ощущение, что у них очень глючная инфраструктура работы отладчика по JTAG. В свое время я попал в полный тупик, когда обнаружил, что Chipscope и дебагер микроблейза вместе не хотят работать - пошаговое исполнение программ намертво повисает в случайный (весьма быстрый) момент времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Постою послушаю (ц)

У меня сложилось ощущение, что у них очень глючная инфраструктура работы отладчика по JTAG. В свое время я попал в полный тупик, когда обнаружил, что Chipscope и дебагер микроблейза вместе не хотят работать - пошаговое исполнение программ намертво повисает в случайный (весьма быстрый) момент времени.

 

Попробовал отладку с помощью XSDB. Проблем стало меньше, точнее только 1: при запуске из FLASH программа почему-то зависает. К процессору можно подключиться, но остановить его командой stop нельзя. XSDB пишет:

xsdb% targets

1 xc7k70t

2 Debug Module at USER2

3* MicroBlaze #0 (Running)

xsdb% state

Running

xsdb% stop

Cannot stop MicroBlaze

Изменено пользователем Олег Гаврильченко

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно ли взглянуть на "строение системы" Microblaze? Там где блоки между собой соединяются? Когда работал с Microblaze подобных проблем не видел, разве что если линия Reset как-то не так сделана. В таком случае и на Nios2 подобные глюки вылезают. И как правило это не потому что "у них глючит", а скорее из-за собственного недопонимания. Верю что в сложных ядрах и системах проявятся проблемы, но на таких простейших - едва ли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно ли взглянуть на "строение системы" Microblaze? Там где блоки между собой соединяются? Когда работал с Microblaze подобных проблем не видел, разве что если линия Reset как-то не так сделана. В таком случае и на Nios2 подобные глюки вылезают. И как правило это не потому что "у них глючит", а скорее из-за собственного недопонимания. Верю что в сложных ядрах и системах проявятся проблемы, но на таких простейших - едва ли.

Я перешел на отладку с помощью XSDB, исправил несколько ошибок и эта проблема ушла. Но появилась другая - все работает, если загружать прошивку по JTAG, но при старте из Flash программа некоторое время работает и затем повисает в непонятном состоянии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Вас наверняка блейз в ресете сидит по какой то причине. Было такое тоже... Возможно длл/плл не залочилась которая кормит блейз клоками, ну или вы ее не подключили.

Покажите верхний уровень куда блейз включен и блок схему проц системы с блейзом

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Вас наверняка блейз в ресете сидит по какой то причине. Было такое тоже... Возможно длл/плл не залочилась которая кормит блейз клоками, ну или вы ее не подключили.

Покажите верхний уровень куда блейз включен и блок схему проц системы с блейзом

Верхний уровень Block Design. Сигналы clock_rtl и reset_rtl приходят прямо с пинов ПЛИС. Частота clock_rtl 20 MHz

mb_system_copy.pdf

Изменено пользователем Олег Гаврильченко

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полярность ресетов проверьте, и aux_reset лучше к основному прикрутить.

 

В остальном вроде все нормально

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну и качество клока проверьте чтобы длл лок выставил

Соединил aux_reset и ext_reset. Проверил их полярность. Все осталось по прежнему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну тогда могу порекомендовать повесить ILA на все управляющие сигналы на блейзе чтобы посмотреть кто гадит, имею ввиду внутри

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну тогда могу порекомендовать повесить ILA на все управляющие сигналы на блейзе чтобы посмотреть кто гадит, имею ввиду внутри

Этой проблемы еще ни разу не возникало если я подключаюсь к ПЛИС по JTAG. И это стабильно. К тому же, я даже не знаю, какие сигналы смотреть. Обмен по шине с памятью?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ресеты на ресет контроллере и ресет на микроблейзе

ну и не забудте обконстрейнить сам микроблейз

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...