Skip to Content

Использование J-Link совместно с eclipse+yagarto

 

На данный момент существует несколько типов JTAG адаптеров доступных для самостоятельной сборки: wiggler, jlink клоны и различные вариации на базе FTDI чипов.

 

Wiggler

Состоит из преобразователя уровней подключенного к LPT порту, предоставляет минимальную скорость работы JTAG, из достоинств – малая цена. Поддерживается CrossWorks напрямую, IAR через RDI драйвер (H-JTAG, но поддержка LPT в текущих версиях приостановлена), а также OpenOCD (через драйвер режима ядра, что может быть проблематично в последних версиях Windows).

 

J-Link

Коммерческий адаптер, но отличная программная поддержка сподвигла народ на клонирование сего девайса. В сети можно найти прошивки и схемы для самостоятельной сборки клона. Основное достоинство инструмента – высокая скорость работы интерфейса (до 12 МГц), а также возможность использовать больше точек останова, чем доступно в ARM ядре аппаратно. 

 

FTDI JTAG

В сети существует несколько вариаций схемы JTAG адаптеров, построенных на базе FT2232C,поддерживаются такие адаптеры OpenOCD. Хорошая альтернатива J-Link и подобным коммерческим адаптерам, но уступают им в скорости работы (до 6МГц) и не так хорошо поддержаны софтом, умеют пользоваться только аппаратными точками останова (например, всего одна точка останова для ARM7).

Настройка профиля для отладки с J-Link в Eclipse 

А теперь собственно по теме.. Для работы нам понадобится установленный пакет ПО для J-Link, Eclipse и Yagarto. Также необходим Zylin CDT plugin для Eclipse. Всё о чём говорится ниже, достаточно подробно описано в документации на GDB сервер от SEGGER (http://www.segger.com/cms/admin/uploads/productDocs/UM08005_JLinkGDBServer.pdf), но для ленивых опишу основные шаги.

В первую очередь проверим работу J-Link. Для этого достаточно запустить SEGGER J-Link GDB Server. Убедимся, что адаптер распознан, в строке статуса должно быть указано количество адаптеров, а также что он видит процессор, в строке Target будет указан идентификатор. Если вы ещё не ввели лицензионные ключи, то это стоит сделать сейчас, заметьте, понадобится ключ не только для GDB сервера но и для прошивальщика, а также ключ для Flash break point. Также нужно запомнить номер порта на котором GDB сервер ожидает подключения, по умолчанию это 2331.

Теперь настроим профиль для вашего проекта в Eclipse,через меню Run->Debug Configurations… вызовем следующий диалог:

Создаём новый профиль Zylin Embedded debug (Native) и указываем проект который будем отлаживать. В поле C/C++ Application укажем имя исполняемого файла (elf с информацией для отладки, а не просто bin файл для прошивки). На следующей вкладке (Debugger) укажем путь к исполняемому файлу gdb, а также удалим имя командного файла по умолчанию, так как мы его не используем.

Далее настроим команды для инициализации отладки и запуска приложения.

Рассмотрим подробнее:

Указываем каким способом мы подключимся к gdb серверу, localhost указывает что сервер находится на локальной машине, а номер – порт который мы запомнили раньше.

target remote localhost:2331

Все команды которые начинаются с monitor не интерпретируются gdb а напрямую отправляются серверу, т.е. зависят от типа сервера, даная команда производит сброс подключеного ARM процессора и переводит его в режим halt

monitor reset

Установим скорость JTAG интерфейса (в кГц)

monitor speed 12000

Укажем порядок байт (little endian для большинства ARM)

monitor endian little

Укажем тип CPU, для прошивальщика и разрешим загрузку Flash памяти контроллера и инициируем загрузку Flash

 

monitor flash device = AT91SAM7S256

monitor flash download = 1

load default.elf

 

также если у вас есть лицензия на Flash break point то можно добавить строку

monitor flash breakpoints = 1

которая активирует возможность использования софтовых точек останова.

 

В поле ‘Run’ будет одна строка, "continue", эта команда переведёт процессор из состояния halt в run, исполнение кода начнётся с вектора сброса (сброс был выполнене на этапе инициализации).

 

Профиль настроен, теперь можно запускать отладку.

 

Ссылки

  1. USBJTAG (http://www.hs-augsburg.de/~hhoegl/proj/usbjtag/usbjtag.html)
  2. FTDI (http://www.ftdichip.com/)
  3. OpenOCD (http://openocd.berlios.de/web/)
  4. H-JTAG (http://www.hjtag.com/)
  5. Zylin CDT plugin (http://opensource.zylin.com/embeddedcdt.html)

 

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Все это работает под Windows

Все это работает под Windows, судя по Segger-у.