Jump to content

    

Recommended Posts

Доброе утро.

 

Мне необходимо настроить отладку микроблейза через уарт и xmd.

Как собственно вывести уарт из mdm?

Выходных пинов я не вижу. в настройках нет.

 

Зарание спасибо за внимани.

Share this post


Link to post
Share on other sites

Это такая шутка:)

у вас целая плис в распоряжении куда хотите туда и выводите, на любую ногу (практически).

 

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

 

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

 

 

Share this post


Link to post
Share on other sites

вы выбираете в настройках на какой уарт перенаправить дебаг выводы...

 

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

 

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

 

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

 

вот!

 

Share this post


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

вот!

 

Я вывел сообщение через uart на консоль. у меня mbz + uart+ mdm.

Остался вот в чем вопрос.

Можно ли запустить отладку программы mbz через uart?

т.е. посмотреть память, переменные, точки останова, обратиться в регистры.

все то же самое только не подключаясь к JTAG.

 

 

Share this post


Link to post
Share on other sites

налету меняя адреса нет JTAG на то и JTAG.

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

 

Причем это хорошо тем, что точки остановки которые мешают некоторым программа вам не нужны, процесс вывода данных встроен в программу и особенно ей не мешает... отладка в порт - это прогрессивно!

Share this post


Link to post
Share on other sites

в документе

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.

что это за память такая? как ее подключить?

Share this post


Link to post
Share on other sites
в документе

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.

Edited by Alex77

Share this post


Link to post
Share on other sites
Хотя есть вариант использования внутреннего uart в jtag-xmd (uart-mdm) - тогда не надо "городить" лишнего uart.

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

 

 

у меня следующая задача.

нужно отлаживать прибор в закрытом состоянии.

а наружу выходит только уарт.

можно отлаживаться и программными сообщениями но если mbz поддерживает отладку через уарт почему бы не воспользоваться?

Share this post


Link to post
Share on other sites
А в этом случаи можно отлаживаться не подключая jtag?

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

 

у меня следующая задача.

нужно отлаживать прибор в закрытом состоянии.

а наружу выходит только уарт.

можно отлаживаться и программными сообщениями но если mbz поддерживает отладку через уарт почему бы не воспользоваться?

Я читал 5 лет тому назад про это (могу путать). Но повторюся что в теории есть возможность отладки в xmd через uartlite (покрайней мере в ISE/EDK 10.1 такой способ упоминался).

Share this post


Link to post
Share on other sites
Может пример такого проекта остался?

подскажи ссылку.

я в там настройки посмотрю.

Я только читал.

И выбрал из трёх вариантов отладки самый "мощный" - через jtag xmd. В моём случае это оптимальное решение.

Share this post


Link to post
Share on other sites
Это такая шутка:)

у вас целая плис в распоряжении куда хотите туда и выводите, на любую ногу (практически).

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

 

 

Share this post


Link to post
Share on other sites

Приветствую.

Использую Vivado + SDK v2015.1

Не могу понять, каким образом работает xil_printf.

Собрал систему в IP Integrator, для MDM добавил настройку Enable JTAG UART, в SDK для Debug Configurations ставлю галку Connect STDIO to Console для порта выбираю JTAG UART.

 

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

 

Сделал ещё это:

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

стало компилиться, но в консоли тишина.

post-63539-1434019402_thumb.jpg

post-63539-1434019408_thumb.jpg

post-63539-1434019413_thumb.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this