реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Xilinx. Microblaze проблемы с отладкой
Олег Гаврильченк...
сообщение Jan 26 2017, 10:17
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Используется микросхема XC7K70T-2FBG484. Это Kintex-7. Конфигурация храниться в SPI PROM N25Q064A13ESED.
В VIVADO 2016.2 создал проект на базе Microblaze. В SDK создал простую Hello World программу. Если записать эту прошивку в ПЛИС напрямую(не во flash) по JTAG и затем подключиться отладчиком, то все работает, но иногда при срабатывании breakpoint в консоли XMD выдается вот такая ошибка:

CODE
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()
- Появляется вот такая ошибка:
CODE
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.

Какие могут быть причины такого поведения?
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Jan 26 2017, 12:45
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Олег Гаврильченко @ Jan 26 2017, 13:17) *
Какие могут быть причины такого поведения?


Постою послушаю (ц)
У меня сложилось ощущение, что у них очень глючная инфраструктура работы отладчика по JTAG. В свое время я попал в полный тупик, когда обнаружил, что Chipscope и дебагер микроблейза вместе не хотят работать - пошаговое исполнение программ намертво повисает в случайный (весьма быстрый) момент времени.
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Jan 26 2017, 15:21
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Цитата(alexadmin @ Jan 26 2017, 15:45) *
Постою послушаю (ц)
У меня сложилось ощущение, что у них очень глючная инфраструктура работы отладчика по 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

Сообщение отредактировал Олег Гаврильченко - Jan 26 2017, 16:42
Go to the top of the page
 
+Quote Post
AVR
сообщение Jan 31 2017, 09:02
Сообщение #4


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



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


--------------------
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Jan 31 2017, 10:02
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Цитата(AVR @ Jan 31 2017, 12:02) *
Можно ли взглянуть на "строение системы" Microblaze? Там где блоки между собой соединяются? Когда работал с Microblaze подобных проблем не видел, разве что если линия Reset как-то не так сделана. В таком случае и на Nios2 подобные глюки вылезают. И как правило это не потому что "у них глючит", а скорее из-за собственного недопонимания. Верю что в сложных ядрах и системах проявятся проблемы, но на таких простейших - едва ли.

Я перешел на отладку с помощью XSDB, исправил несколько ошибок и эта проблема ушла. Но появилась другая - все работает, если загружать прошивку по JTAG, но при старте из Flash программа некоторое время работает и затем повисает в непонятном состоянии.
Go to the top of the page
 
+Quote Post
vitus_strom
сообщение Jan 31 2017, 11:36
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 15-10-04
Пользователь №: 877



У Вас наверняка блейз в ресете сидит по какой то причине. Было такое тоже... Возможно длл/плл не залочилась которая кормит блейз клоками, ну или вы ее не подключили.
Покажите верхний уровень куда блейз включен и блок схему проц системы с блейзом
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Jan 31 2017, 12:06
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Цитата(vitus_strom @ Jan 31 2017, 14:36) *
У Вас наверняка блейз в ресете сидит по какой то причине. Было такое тоже... Возможно длл/плл не залочилась которая кормит блейз клоками, ну или вы ее не подключили.
Покажите верхний уровень куда блейз включен и блок схему проц системы с блейзом

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

Сообщение отредактировал Олег Гаврильченко - Jan 31 2017, 12:15
Прикрепленные файлы
Прикрепленный файл  mb_system_copy.pdf ( 78.12 килобайт ) Кол-во скачиваний: 20
 
Go to the top of the page
 
+Quote Post
vitus_strom
сообщение Jan 31 2017, 12:28
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 15-10-04
Пользователь №: 877



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

В остальном вроде все нормально
Go to the top of the page
 
+Quote Post
vitus_strom
сообщение Jan 31 2017, 21:28
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 15-10-04
Пользователь №: 877



ну и качество клока проверьте чтобы длл лок выставил
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Feb 2 2017, 16:14
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Цитата(vitus_strom @ Feb 1 2017, 00:28) *
ну и качество клока проверьте чтобы длл лок выставил

Соединил aux_reset и ext_reset. Проверил их полярность. Все осталось по прежнему.
Go to the top of the page
 
+Quote Post
vitus_strom
сообщение Feb 2 2017, 19:35
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 15-10-04
Пользователь №: 877



ну тогда могу порекомендовать повесить ILA на все управляющие сигналы на блейзе чтобы посмотреть кто гадит, имею ввиду внутри
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Feb 3 2017, 11:59
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Цитата(vitus_strom @ Feb 2 2017, 22:35) *
ну тогда могу порекомендовать повесить ILA на все управляющие сигналы на блейзе чтобы посмотреть кто гадит, имею ввиду внутри

Этой проблемы еще ни разу не возникало если я подключаюсь к ПЛИС по JTAG. И это стабильно. К тому же, я даже не знаю, какие сигналы смотреть. Обмен по шине с памятью?
Go to the top of the page
 
+Quote Post
vitus_strom
сообщение Feb 3 2017, 13:12
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 15-10-04
Пользователь №: 877



ресеты на ресет контроллере и ресет на микроблейзе
ну и не забудте обконстрейнить сам микроблейз
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01465 секунд с 7
ELECTRONIX ©2004-2016