Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MicroBlaze + MDM
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
zuuuuk
Доброе утро.

Мне необходимо настроить отладку микроблейза через уарт и xmd.
Как собственно вывести уарт из mdm?
Выходных пинов я не вижу. в настройках нет.

Зарание спасибо за внимани.
Golikov A.
Это такая шуткаsm.gif
у вас целая плис в распоряжении куда хотите туда и выводите, на любую ногу (практически).

на самом деле это делает так.

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

zuuuuk
как mdm поймет на какой уарт мне надо выводить
сообщение от xil_printf ("dd");
у меня несколько уартов
Golikov A.
вы выбираете в настройках на какой уарт перенаправить дебаг выводы...

хех, решил поглядеть где чего делается, сразу еле нашел, потому пишу.

1. выбираете bsp проект, в нем system.mss, там жмете modify this bsp. У меня standalone проект, ставите на этот пункт меню, и там есть stdin-stdout - в нем задаете ваш железный уарт, куда будут фигачится сообщения printf? xil_print и так далее...

2. Это когда вы конфигурируете режим для отладки. Run -> Run configuration, там закладка STDIO connection, в ней можно перенаправить вывод данных в консоль. Это перегрузит заданный ранее режим перенаправления stdio, для этого надо иметь debug module в составе проца.

вот!
zuuuuk
Огромное спасибо.
меня первый пункт и волновал.
надо файл mss править. Спасибо за консультаю
zuuuuk
Цитата(Golikov A. @ Apr 10 2014, 10:24) *
2. Это когда вы конфигурируете режим для отладки. Run -> Run configuration, там закладка STDIO connection, в ней можно перенаправить вывод данных в консоль. Это перегрузит заданный ранее режим перенаправления stdio, для этого надо иметь debug module в составе проца.
вот!


Я вывел сообщение через uart на консоль. у меня mbz + uart+ mdm.
Остался вот в чем вопрос.
Можно ли запустить отладку программы mbz через uart?
т.е. посмотреть память, переменные, точки останова, обратиться в регистры.
все то же самое только не подключаясь к JTAG.

Golikov A.
налету меняя адреса нет JTAG на то и JTAG.
но вам никто не мешает в определенных местах программы выбрасывать на порт данные с содержанием памяти, переменных, и так далее...

Причем это хорошо тем, что точки остановки которые мешают некоторым программа вам не нужны, процесс вывода данных встроен в программу и особенно ей не мешает... отладка в порт - это прогрессивно!
zuuuuk
в документе
http://www.xilinx.com/support/documentatio...14_7/est_rm.pdf
на ст 177 показано подключение XMD к uartLite.
MicroBlaze Stub Target with MDM UART and UARTlite.

у меня реализована подобная схема.
но при вызове
connect mb stub -comm serial
выводит:
ERROR:
MicroBlaze Stub not supported. Please use MDM for debuging
Поэтому у меня вопрос.
1 Как надо настроить процессор , что бы он поддерживал этот режим отладки?
2 На схеме ст 177 . показана Local memory xmdstub.
что это за память такая? как ее подключить?
Alex77
Цитата(zuuuuk @ May 8 2014, 10:40) *
в документе
http://www.xilinx.com/support/documentatio...14_7/est_rm.pdf
на ст 177 показано подключение XMD к uartLite.
MicroBlaze Stub Target with MDM UART and UARTlite.

у меня реализована подобная схема.
но при вызове
connect mb stub -comm serial
выводит:
ERROR:
MicroBlaze Stub not supported. Please use MDM for debuging
Поэтому у меня вопрос.
1 Как надо настроить процессор , что бы он поддерживал этот режим отладки?
2 На схеме ст 177 . показана Local memory xmdstub.
что это за память такая? как ее подключить?

Давно читал...
Примерно так я понял:
xmd->uart->mb
для реализации работы отладчика через uart в отлаживаемой программме должен быть "кусок программы" отладчика xmd (добавляется тем или иным способом при линковки) и вполне возможно сей код должен располагаться в OCM (BRAM) по адресам с 0x0000.... (возможно ставятся вектора обработчика uart).
НО как при этом загружать отлаживаемую программу в "память процессора в ОЗУ" я без понятия. Может сперва грузится прошивка плисы по jtag (с куском программы в bram) ? а потом уже через uart грузится и отлаживается основная программа ?.
По мне так проще всё-таки пользоваться jtag-xmd вариантом (для загрузки программы и пошаговой отладки с аппаратными бреакпоинтами) и uart для отладки на ходу (вывод "динамической" информации без остановки программы). Хотя есть вариант использования внутреннего uart в jtag-xmd (uart-mdm) - тогда не надо "городить" лишнего uart.
zuuuuk
Цитата(Alex77 @ May 8 2014, 10:58) *
Хотя есть вариант использования внутреннего uart в jtag-xmd (uart-mdm) - тогда не надо "городить" лишнего uart.

А в этом случаи можно отлаживаться не подключая jtag?


у меня следующая задача.
нужно отлаживать прибор в закрытом состоянии.
а наружу выходит только уарт.
можно отлаживаться и программными сообщениями но если mbz поддерживает отладку через уарт почему бы не воспользоваться?
Alex77
Цитата(zuuuuk @ May 8 2014, 11:35) *
А в этом случаи можно отлаживаться не подключая jtag?

Используется разъём jtag-плисы. соответственно используется "platform cable usb ii"

Цитата(zuuuuk @ May 8 2014, 11:35) *
у меня следующая задача.
нужно отлаживать прибор в закрытом состоянии.
а наружу выходит только уарт.
можно отлаживаться и программными сообщениями но если mbz поддерживает отладку через уарт почему бы не воспользоваться?

Я читал 5 лет тому назад про это (могу путать). Но повторюся что в теории есть возможность отладки в xmd через uartlite (покрайней мере в ISE/EDK 10.1 такой способ упоминался).
zuuuuk
Может пример такого проекта остался?
подскажи ссылку.
я в там настройки посмотрю.
Alex77
Цитата(zuuuuk @ May 8 2014, 13:34) *
Может пример такого проекта остался?
подскажи ссылку.
я в там настройки посмотрю.

Я только читал.
И выбрал из трёх вариантов отладки самый "мощный" - через jtag xmd. В моём случае это оптимальное решение.
alman
Цитата(Golikov A. @ Apr 10 2014, 07:43) *
Это такая шуткаsm.gif
у вас целая плис в распоряжении куда хотите туда и выводите, на любую ногу (практически).

Вы вот смеётесь, но у меня была аналогичная проблема. С паяльником очень сложные отношения, поэтому решение в виде использования ноги отпало сразу. Проблему решил через мультиплексирование последовательного порта - по некоторым событиям переключаю его между модулями. К теме вопроса это отношения не имеет, просто хочу обрабтить внимание, что существуют люди, которым брать паяльник в руки противопоказано.

doom13
Приветствую.
Использую Vivado + SDK v2015.1
Не могу понять, каким образом работает xil_printf.
Собрал систему в IP Integrator, для MDM добавил настройку Enable JTAG UART, в SDK для Debug Configurations ставлю галку Connect STDIO to Console для порта выбираю JTAG UART.

Что ещё нужно сделать, чтобы printf заработал?

Сделал ещё это:
Цитата(Golikov A. @ Apr 10 2014, 09:24) *
1. выбираете bsp проект, в нем system.mss, там жмете modify this bsp. У меня standalone проект, ставите на этот пункт меню, и там есть stdin-stdout - в нем задаете ваш железный уарт, куда будут фигачится сообщения printf? xil_print и так далее...

стало компилиться, но в консоли тишина.
dm.pogrebnoy
Должно все работать, если запускаете правильную конфигурация (htg_v7_g3). Иногда приходится выбирать руками, а не просто play нажимать.
doom13
Да работает. Перезапуск SDK + Vivado решил проблему, видимо, работало на старой версии железа.
Golikov A.
да у них глючит все вечно. Перезапуски, с пуржами/клинапами проектов - стандартная тема...
doom13
Приветствую.
Можно ли как-то для представленной на рисунке системы добраться до регистров GPIO через JTAG?
Если в системе присутствует MicroBlaze, то сделать это из SDK в режиме отладки просто, как быть в данном случае?
toshas
Для этого можно воспользоваться JTAG to AXI Master'ом
doom13
Цитата(toshas @ Dec 3 2015, 07:16) *
Для этого можно воспользоваться JTAG to AXI Master'ом

Спасибо, подходит. А можно с ним общаться через какой-нибудь GUI (типа окна Memory в Xilinx SDK) или только через Tcl Console?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.