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

 
 
> Проблемы при отладке в Microblaze, Глючит при пошаговом исполнении в режиме Debug
Sergey'F
сообщение Jun 9 2011, 09:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



Постоянно сталкиваюсь с проблемой при отладке софта через меню Debug под Microblaze через Platform Cable USB. Версия - ISE и EDK 12.2 с патчами.

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

По неправильному исполнению кода наиболее наглядно - простой цикл.
CODE
int i;
int *p;
int data[4];
...
for (i=0; i<4; i++) p[i]=data[i];
...

При запуске в режиме отладки не изменяется счетчик цикла, причем при прохождении в пошаге по окну дизассемблера прыгает в начало цикла с инструкции сохранения.

Пробовал разные аппаратные конфигурации - отключал в ядре Writeback в кэше данных, играл другими параметрами.
Играл с софтом - включал и не включал кеш - эффект один. Стека простейшей программе хватает. Прогнал тест внешней памяти - проходит. Размещал программу и во внешней, и во внутренней памяти - то же.
И по быстродействию вроде бы проходит (смотрел отчет), хоть я и не спец в констрейнах Xilinx.

Запускаю неконтролируемое отладчиком исполнение через Run - система работает нормально.

Нет ли идей, в какую сторону копать, что у Xilinx почитать? Может, приоритеты прерываний как-то надо поставить правильно, XCL на SDRAM отключить и все пустить через один канал, или с кэшем еще как-то поколдовать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VladimirB
сообщение Jun 11 2011, 19:21
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Sergey'F @ Jun 9 2011, 13:50) *
Постоянно сталкиваюсь с проблемой при отладке софта через меню Debug под Microblaze через Platform Cable USB. Версия - ISE и EDK 12.2 с патчами.
...
При запуске в режиме отладки не изменяется счетчик цикла, причем при прохождении в пошаге по окну дизассемблера прыгает в начало цикла с инструкции сохранения...


Я последнее время перед переменными, которые хочу в отладчике понаблюдать, пишу слово volatile - без него отладчик вообще ерунду показывает в значении переменной и код в неправильной последовательности исполняет.

Оптимизацию ставлю только o-2, т.к. o-0 в разы медленнее, а o-3 глючит.




P.S. также volatile пишу перед всеми важными и глобальными переменными - возможно это шаманство и пляски с бубном - но вроде помогает, т.к. с таким словом компилятор точно её не с оптимизирует sm.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:31
Рейтинг@Mail.ru


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