отладка Arduino приложений
Среда Arduino не имеет отладчика, но при разработке возникают ситуации, когда без отладки практически невозможно. Что делать в таких случаях?
Есть готовая и бесплатная среда разработки для AVR микроконтроллеров. И, что особенно интересно, эта среда использует тот же самый компилятор, что и Arduino. Я где-то слышал, что Arduino проект можно запустить под Avr Studio, но конкретных инструкций не нашел. Решил попробовать и, о чудо, получилось! Пришлось немного модифицировать код для того, чтобы он скомпилировался GCC. Модификацию я подсмотрел в том, что делает сама среда Arduino при компиляции.
Итак, нам потребуется:
1. Компилятор. В интернете его проще всего найти под названием WinAVR. Это GCC, адаптированный для работы с AVR микроконтроллерами. Он входит в поставку Arduino, но по-моему Arduino его не полностью корректно прописывает в систему. Скачать можно тут:
http://sourceforge.net/projects/winavr/files/
2. Avr Studio. Идете на сайт Atmel (именно эта компания делает микроконтроллер для Arduino) www.atmel.com там в разделе Avr-8 bit, подраздел Software качаете AVR Studio 4.
Затем ставим все это счастье. WinAVR hекомендую ставить в очень простую папку типа c:\WinAvr, без руских букв и пробелов в названии.
Потом ставите Avr Atudio.
Все, среда разработки стоит. Теперь запускаем AVR Studio, в нем создаем AVR GCC проект. Выбираем название для проекта и папку для местоположения. Затем выбираем процессор AVR Simulator и AT Mega 168 или Mega 328 (в зависимости от вашей ардуины).
Теперь копируете в эту папку все выйлы из проекта Arduino.
Потом заходите в меню Project\Configuration options. Выставляете там частоту процессора 16000000. Затем во вкладке Include directories добавляете папку, в которой лежат исходные файлы Arduino.
У меня эта папка
E:\arduino-0017\hardware\cores\arduino\
В ней должны быть файлы WProgram.h, wiring.h и другие.
Закрываете этот диалог.
Теперь добавляете все файлы из этой папки в проект.
Слева есть дерево, в котором есть пункты Source files, Header files и другие. Кликаете правой клавишей на этих пунктах и добавляете все предлагаемые файлы из названной выше папки.
В главный файл проекта (он имеет то же название, что и проект, который вы создали) скопируйте весь текст из главного файла проекта Arduino.
Затем сделайте две модификации:
1. В начале файла добавьте строку
#include "WProgram.h"
2. В конце файла добавьте
Код:
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}
Если Вы в проекте используете какие-либо библиотеки, то необходимо их также добавить в проект и прописать папки, в которых находятся исходники, в Include directories.
Далее жмете F7, это начинает компиляцию.
Ctrl-F7 - начинает отладку.
Про отладку в AVR Studio написаны, по-моему, толмуды, поэтому ищите их в интернете и обменивайтесь, на вопросы я попробую ответить.
Re: отладка Arduino приложений
Еще в помощь, для начинающих написал "Carduino monitor", не отладчик конечно, но немного может помочь.
Выводит бинарные данные в десятичном или шестнадцатеричном виде , а не в символьном как в родном IDE.
Отправлять в порт можно значения от 0 до 255(0xFF) за одну посылку.
Отправлять можно даже если прием данных установлен на паузу.
Для отправки данных можно нажать кнопку "Send" или кнопку Enter на клавиатуре
Re: отладка Arduino приложений
Всем привет! Я новичок на форуме, но по поводу отладчика можно посоветовать Proteus VSM (программа-симулятор микроконтроллерных устройств), лучше отладчиков не встречал, контроллер ATmega168 поддерживает и много других.
Re: отладка Arduino приложений
To SBorovkov:
Попробовал по твоему совету поиграться в AVR Studio, и вот что получается:
Если вставлять код из примера Blink:
PHP код:
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(7, OUTPUT);
}
void loop() {
digitalWrite(7, HIGH); // set the LED on
delay(500); // wait for a second
digitalWrite(7, LOW); // set the LED off
delay(2000); // wait for a second
}
То вроде всё работает, а если вставить из DigitalReadSerial, то выдаёт ошибки!
http://s018.radikal.ru/i502/1202/68/a0c3ac4f2c3e.jpg
Подскажи пожалуйста, что не так?
Re: отладка Arduino приложений
И вот тут немного не понятно:
PHP код:
Все, среда разработки стоит.
Теперь запускаем AVR Studio, в нем создаем AVR GCC проект.
Выбираем название для проекта и папку для местоположения.
Затем выбираем процессор AVR Simulator и AT Mega 168 или Mega 328
(в зависимости от вашей ардуины).
Теперь копируете в эту папку все выйлы из проекта Arduino.
Какие файлы имеются в виду?
И в какую именно папку?
У меня проект лежит в папке "C:\avr\nnnn\
Re: отладка Arduino приложений
да, что-то не получается.
Сходу там надо изменить компиляцию на C++. Для этого надо файл проекта переименовать в CPP. Тогда после добавления HardwareSerial.*, Print.* и нескольких других из %arduino%\hardware\arduino\cores\arduino\ вроде компилятор компиляет все, но потом сыпятся ошибки линковки
HardwareSerial.o:(.data+0x16): undefined reference to `__cxa_pure_virtual'
Чорт :-(. Как же ардуино компиляет проект? Тем же компилятором, но прописывает правильные свойства проекта :-(.
Re: отладка Arduino приложений