Отладчик MDB
В ряде случаев для отладки может быть предпочтительнее использование отладчика командной строки MDB, нежели графической IDE MCStudio. Типовые случаи, когда MDB удобнее — это отладка аппаратной части нового устройства, а также тестирование устройств на производстве. В данном документе рассмотрено применение отладчика MDB в указанных выше целях. Кроме того, рассмотрена отладка ПО безотносительно отладки или тестирования аппаратной части изделия.
Отладка аппаратной части
При получении из производства первых экземпляров нового оборудования всегда существует вероятность ошибок в принципиальной электрической схеме, в топологии печатной платы, а также дефектов монтажа. В этих условиях использование среды MCStudio для отладки менее удобно, так как для среды разработки старт отладки подразумевает в общем случае следующий последовательный и неразделимый комплекс действий:
- соединение с процессором по интерфейсу JTAG;
- подача сигнала nRST на процессор;
- перевод процессора в режим отладки (останов);
- выполнение команд предварительной настройки (окно «Startup registers»);
- загрузка программы в память процессора;
- изменение значения регистра PC на адрес точки входа в программу.
В случае ошибок в отлаживаемом устройстве, ошибка на одном из приведенных этапов приведет к тому, что MCStudio выведет довольно общее сообщение об ошибке, по которому затруднительно будет понять, на каком именно этапе появилась проблема. Кроме того, возможен более неприятный случай, когда ошибка, возникшая на первом этапе, компенсируется вторым этапом. В результате она может быть пропущена в ходе отладки, и будет выявлена только на стадии внедрения финальной версии ПО. Отладчик MDB позволяет выполнить указанные этапы по отдельности, убедившись в корректном прохождении каждого из них. Таким образом снижается вероятность пропустить ошибку в устройстве.
Установка соединения по JTAG
Для запуска отладчика необходимо вызвать его из командной строки. Отладчик соединяется с процессором по интерфейсу JTAG сразу после запуска. Если установить соединение удается — отладчик определяет подключенный процессор, после чего выводит приглашение своей командной строки:
mdblib version: 6.0.0.4029<ad5cb9c940> (May 22 2017)
Connecting to the default JTAG server.
Successfully connected to \\.\Pipe\mdb_pipe.
List of suitable devices:
0. NVCom-02T on EZ-USB0 SN: 1412025
Opening device: EZ-USB0
mdb>
Если нет — отладчик выводит сообщение об ошибке. Одним из частных случаев является ситуация, когда, например, не установлен драйвер эмулятора MC-USB-JTAG, и отладчик не может его «найти». В данном случае выводится следующее сообщение
mdblib version: 6.0.0.4029<ad5cb9c940> (May 22 2017)
Connecting to the default JTAG server.
Successfully connected to \\.\Pipe\mdb_pipe.
No suitable devices found.
mdb>
Данная ситуация, естественно, не имеет отношения к неисправностям платы. Решение подобных проблем описано в отдельном документе «Работа с эмулятором MC-USB-JTAG для микропроцессоров серии «Мультикор», доступном на сайте. При установке соединения по JTAG отладчик запрашивает у процессора ID блока OnCD. В случае, если полученный ID не совпадает с необходимым или его не удалось считать, выводится сообщение:
Error: The board is not connected.
Появление такого сообщения свидетельствует о том, что есть проблема либо с линиями интерфейса JTAG между процессором и эмулятором MC-USB-JTAG, либо из строя вышел один из выводов JTAG на процессоре, либо неисправен эмулятор MC-USB-JTAG. В частности, при сгоревших входах JTAG на процессоре их сопротивление к «земле» становится порядка сотен Ом, в результате чего уровень сигнала на выходе MC-USB-JTAG снижается до 1-1.5 В, и процессор данного сигнала просто «не видит». Подобный выход из строя выводов JTAG процессора вызван обычно неправильной последовательностью подключения эмулятора к плате. Корректная последовательность подключения указана в этикетке на эмулятор.
Также некорректно разведенные линии сигналов JTAG на плате могут приводить к искажению формы сигналов. В этом случае прочитанный ID будет некое произвольное значение. В таком случае отладчик не сможет определить подключенный чип и выведет сообщение:
Error: Unknown board.
В любом случае, каждая из вышеописанных ситуаций с некорректным ID требует изуч ения сигналов на линиях TDI, TDO, TMS, TCK с помощью осциллографа.
Подача сигнала nRST и перевод процессора в режим отладки
Для подачи сигнала nRST на процессор необходимо ввести в командной строке отладчика команду «reset». MDB, подавая сигнал nRST, также переводит процессор в режим отладки.
В случае успешного выполнения команды выводится приглашение командной строки отладчика. Еще одной проблемой, проявляющейся на данном этапе, может стать отсутствие сигнала тактовой частоты на входе XTI процессора. В этом случае отладчик после команды «reset» ожидает ответа от процессора в течение длительного времени (десятки секунд), после чего на экран может быть выведена как вышеприведенная картина, так и сообщение об ошибке «debug request error».