Как отладить Arduino Uno с помощью gdb на ПК с Linux?


10

Как отладить (один шаг исходного кода) Arduino Uno с gdb на ПК с Linux? Обратите внимание, что я не люблю использовать AVR Studio в Wine или VirtualBox.

Вопрос 1: Физическая связь

Как и что я могу подключить к плате Uno? Я предполагаю, что, поскольку плата Uno заполнена ATmega328, должен быть доступен один шаг исходного кода? Я также думаю, что я могу использовать либо AVR JTAGICE mkII, либо AVR Dragon поверх заголовка ICSP?

Вопрос 2: GDB сервер

Затем я заметил, что есть некоторые проекты, такие как AVaRICE, которые, кажется, предоставляют функцию jtag to gdb, но могут быть другие проекты?

Вопрос 3: где эльф?

И если я запустил его и запустил, где IDE Arduino скрывает сгенерированный вывод как файл elf с символами отладки (должен быть один)? Или мне нужно сгенерировать классический Makefile, который использует только библиотеки Ardino?

Я пытался найти некоторую информацию о том, что / как использовать, но я нашел только те подсказки, которые говорили мне, что я мог сделать. Может ли кто-то подтолкнуть меня в правильном направлении?


Ответы:


3

Вы можете найти артефакты компилятора, удерживая клавишу Shift при нажатии кнопки компиляции в более старой версии IDE (чтение <1.0). В более новых версиях (read> = 1.0) в диалоге настроек есть опция для отображения подробного вывода во время компиляции (см. Скриншот). При подробном выводе папка, в которой заканчиваются все выходные данные компилятора, печатается (неоднократно) в консоли. Это должно помочь вам начать, по крайней мере.

скриншот arduino показать подробный вывод во время компиляции

В дополнение к этому, в начале 2012 года в списке разработчиков Arduino была вся эта болтовня на эту тему, и кто-то опубликовал в списке разработчиков Arduino объявление об улучшенном / интегрированном способе отладки GDB для Arduino, но я не исследовал это намного дальше. Я предполагаю, что проект называется VisualMicro (?). Похоже, он был построен как плагин для Visual Studio, поэтому он может оказаться бесполезным для вас в среде Linux, и он находится в бета-версии, но я дам вам решение.


Я включил «Включить подробный вывод во время компиляции», и они используют что-то вроде /tmp/build3652385594823436592.tmp/ в качестве каталога сборки, также эльф был собран с флагом -g, поэтому он должен содержать символы отладки. Это означает, что я нашел артефакты сборки, теперь мне просто нужно заставить jtag работать.
Йохан

3

Симулятор процессора Simavr AVR теперь предоставляет хороший GDB-сервер для отладки AVR фирмы, включая Arduino. Вы можете использовать его по своему усмотрению (требует написания небольшого консольного приложения для вашей конкретной конфигурации оборудования) или из среды Simutron GUI , где вы можете определить конфигурацию вашего оборудования с помощью схематического захвата.

Примечание: с этими инструментами у вас нет физического соединения, так как все оборудование моделируется.


2

Ответ дан в статье из журнала Linux, на которую ссылается аналогичный вопрос: Jtag debugging AVR .

В основном, используя avr-gdb и simulavr в тандеме, вы можете запускать свое программное обеспечение на микроконтроллерах AVR на симуляторе, используя GDB для просмотра и наблюдения за выполнением кода.

Надеюсь это поможет!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.