Суббота, 23 Август 2014 22:03

Настройка эмулятора AVR в Eclipse для отладки

Автор
Оцените материал
(2 голосов)

В предидущей статье мы рассматривали подключение самого программатора. Но не всегда есть такой прибор под рукой и что делать в такой ситуации? Для этого в Eclipse есть плагин, который позволяет отлаживать программу не имея программатора и всего необходимого. Для этого и настроим наш эмулятор, который все сделает в цифровом виде и позволит отладить программу без проблем.

Давайте рассмотрим простую и быструю установку C/C++ GDB Hardware Debugging, который сможет показывать нам как в цифровом, так и в графическом виде отладку нашей программы. Много говорить не буду, просто следите за пунктами.

Чтобы установить этот дебаггер нужно открыть Eclipse и следовать пути: Help->Install New Software…

Далее, в окне Install жмем по ссылке “Available Software Sites

 

Далее находим в списке адрес текущего релиза Eclipse (у меня это Indigo), ставим галачку напротив адреса и жмем Ok.

http://download.eclipse.org/releases/indigo 

Есть возможность того, что он может отсутствовать, хотя это очень странно...сам не встречал, но все же.

В таком случае добавляем его в список при помощи кнопки “Add…” и вписываем в поле Location адрес, который указан выше.

Далее, в выпадающем списке выбираем наш адрес, после чего Eclipse выдаст перечень входящих в релиз утилит/плагинов/прочая хрень. “C/C++ GDB Hardware Debugging” плагин находится в категории “Mobile and Device Development“.

Теперь жмем кнопку "Next" и соглашаемся со всем. После установки он попросит перезагрузить Eclipse. Все, теперь наш отладчик готов. Осталось его настроить!

Настройка отладчика

Допустим у нас уже есть проект. В этом примере я использую проект на языке "СИ". Моя программа заставляет маргать лампочку. Но я не могу проверить это без устройства. Даже с установленным отладчиком. Для этого есть быстрая и не трудная настройка. Скажу сразу, что для каждого процессора настройка будет отличаться в 1 месте, которое я укажу ниже.

Для настройки отладочного интерфейса заходим в меню Run->Debug Configurations… или через панель быстрого доступа, нажимаем на “иконку с жуком” и выбираем пункт Debug Configurations… Далее, в появившемся окне выбираем пункт GDB Hardware Debugging, после чего нажимаем на кнопку New launch configuration, либо просто делаем двойной клик по пункту GDB Hardware Debugging. В результате открывается окно с настройками отладки.

 

Первая вкладка будет "Main"

Обращу ваше внимание на то, что слева открыта вкладка GDB Hardware Debugging. Это и есть вкладка с нашим эмулятором и отладчиком.

  • В поле Project указываем имя проекта (поскольку в нашем workspace может быть более одного проекта).
  • В поле C/C++ Application указываем имя *.elf файла сгенерированного после компиляции (с введенными ранее настройками для Debug прошивки) проекта и который будит использован во время отладки.
  • На панеле Build (if required) before launching выбираем собирать (Build) или нет проект перед началом отладки и если да, то какая прошивка (Debug или Release) должна быть создана. Я выбираю пункт “Disable auto build” и на всякий случай, в поле Build configuration выбираю “Debug.
  • В поле Name, можно дать имя всей конфигурации отладки, поскольку даже для одного проекта бывают разные конфигурации отладки (скажем для отладки в RAM или Flash памяти).
  • Перед тем как перейти к следующей вкладке, в нижней части окна ОБЯЗАТЕЛЬНО выбираем “Standard GDB Hardware Debugging Launcher“. Для этого в самом низу окна есть пункт "Using GDB (DSF) Hardware Debugging Launcher - Select other..." там и выберите, только галочку не забудьте поставить, иначе не получится выбрать.

Вкладка Debugger. Здесь мы установим связь между отладчиком и графической оболочкой, а также между отладчиком и gdb сервером (отсюда и название вкладки).

 

На вкладке Debugger в поле "GDB Command" впишем полный путь к клиенту отладчика: /usr/bin/avr-gdb. Отметим чекбокс "Verbose console mod" и "Use remote target", установим пункт "JTAG Device" в "Generic TCP/IP", укажем ниже адрес и порт сервера отладки (localhost, 1200).

Перейдем ко вкладке Startup и найдем там секцию "Runtime Options". Установим чекбокс напротив "Set breakpoint at" и введем значении функции: main. Установим чекбокс напротив "Resume". При отладке программа остановится при входе в функции main и мы сможем пройти ее пошагово или ввести дополнительные точки остановки и запустить программу до первой из них.

 

Теперь вкладка "Common". Да, вкладку "Source" можно пропустить. Во вкладке "Common" нужно только 1 галочку поставить. Галочку напротив слова "Debug".

На этом конфигурирование отладки можно закончить, закроем окно Debug Configurations и нажмем на стрелочке рядом с кнопкой отладки (изображение жука), выбрав "Organize Favorites...". Отметим галочкой открытый проект для отладки.

Настройка сервера отладчика 

Мы не можем запустить умулятор до тех пор пока не запустим сервер для него. Делается это просто. Открываем терминал, заходим за root и пишем команду:

simulavr -g -p 1200 -d atmega16 -c 8000000 -P simulavr-disp 

simulavr - наш эмулятор.

-p 1200 - это наш порт (Мы его вписывали в Eclipse в настройке отладчика).

-с 8000000 - это частота кварцевого резонатора, который задает частоту работы процессору. У каждого процессора он разный и это смотреть нужно в даташите. А вот и ТОТ момент, который я обещал показать. Вот именно тут и нужно менять значения, котоый пренадлежат для каждого процессора в отдельности. Следующий пункт так же нужно менять.

atmega16 - модель нашего процессора. Тут может быть абсолютно любой процессор. Так что осторожно!

_________________________

Для того, чтобы все время не запускать терминал и не делать кучу лишних движений, просто сделаем так:

Run -> External Tools -> External Tools Configuration...

Откроется окно и в нем все должно быть, как на скрине:

В поле "Name" - любое имя для нашего симулятора

В поле "Location" - укажем полный путь к симулятору: /usr/bin/simulavr

В поле "Working Directory" - ${workspace_loc}

В поле "Arguments" - то, что нужно было вписывать в терминал. То есть:

simulavr -g -p 1200 -d atmega16 -c 8000000 -P simulavr-disp 

На вкладке Build снимем галочку с пункта "Build before launch", иначе симулятор не запустится, если при компиляции будут выданы предупреждения.

На вкладке Common, в разделе "Display in favorites menu" установим галочку напротив "External Tools".

Теперь у нас все готово для комфортнорй работы. Перед первым запуском сеанса отладки запускаем симулятор, выбрав в под кнопкой внешних инструментов, в выпадающем списке только что созданную конфигурацию "ATMega16 8MHz localhost:1200". Потом под кнопкой отладки выбираем конфигурацию отладки ("название нашего эмулятора") и переходим к отладке. 

По окончании отладки процесс симулятора будет оставаться в фоне, снова запускать его не нужно. Если нам нужно отлаживать несколько проектов для разных устройств, создаем несколько конфигураций в External Tools и соответствующих им конфигураций отладки, развесив каждый вызов симулятора на разные порты.

Вот и все! Настройка заверена. Кажется, что очень много и долго нужно делать. На самом деле тут 5 минут работы.

Спасибо за внимание и оставляйте комментарии! 

ОБСУДИТЬ НА ФОРУМЕ

Прочитано 5242 раз Последнее изменение Воскресенье, 24 Август 2014 00:34
Валентин Олегович

Администратор сайта.

linuxmd.net

Добавить комментарий

1. Ругательства запрещены
2. Реклама запрещена

Защитный код
Обновить

О нас | Рассылка | Правила сайта | Правила форума | Поиск

При копировании какого-либо контента с сайта, ссылка на источник - ОБЯЗАТЕЛЬНА! В случае несоблюдения данного пункта будет отправлена жалоба на хостинг нарушителя и сайт будет закрыт (или оштрафован) по усмотрению оператора. Верьте в силу копирайта. Основатель портала: Валентин Щербаков 2013 - 2016

Программное обеспечение сайта распространяется по лицензии GNU General Public License.