Показано с 1 по 7 из 7
  1. #1
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    442

    По умолчанию отладка 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 написаны, по-моему, толмуды, поэтому ищите их в интернете и обменивайтесь, на вопросы я попробую ответить.
    Последний раз редактировалось SBorovkov; 06.03.2010 в 20:54.

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: отладка Arduino приложений

    Еще в помощь, для начинающих написал "Carduino monitor", не отладчик конечно, но немного может помочь.
    Выводит бинарные данные в десятичном или шестнадцатеричном виде , а не в символьном как в родном IDE.
    Отправлять в порт можно значения от 0 до 255(0xFF) за одну посылку.
    Отправлять можно даже если прием данных установлен на паузу.
    Для отправки данных можно нажать кнопку "Send" или кнопку Enter на клавиатуре
    Последний раз редактировалось Chip; 01.04.2010 в 02:22.

  3. #3
    Новичок
    Регистрация
    06.05.2010
    Возраст
    62
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Re: отладка Arduino приложений

    Всем привет! Я новичок на форуме, но по поводу отладчика можно посоветовать Proteus VSM (программа-симулятор микроконтроллерных устройств), лучше отладчиков не встречал, контроллер ATmega168 поддерживает и много других.

  4. #4
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    49
    Сообщений
    320
    Вес репутации
    333

    По умолчанию 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(7OUTPUT);     
    }

    void loop() {
      
    digitalWrite(7HIGH);   // set the LED on
      
    delay(500);              // wait for a second
      
    digitalWrite(7LOW);    // set the LED off
      
    delay(2000);              // wait for a second

    То вроде всё работает, а если вставить из DigitalReadSerial, то выдаёт ошибки!



    Подскажи пожалуйста, что не так?

  5. #5
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    49
    Сообщений
    320
    Вес репутации
    333

    По умолчанию Re: отладка Arduino приложений

    И вот тут немного не понятно:
    PHP код:
    Всесреда разработки стоит
    Теперь запускаем AVR Studioв нем создаем AVR GCC проект
    Выбираем название для проекта и папку для местоположения.
    Затем выбираем процессор AVR Simulator и AT Mega 168 или Mega 328 
    (в зависимости от вашей ардуины). 
    Теперь копируете в эту папку все выйлы из проекта Arduino
    Какие файлы имеются в виду?
    И в какую именно папку?
    У меня проект лежит в папке "C:\avr\nnnn\
    Последний раз редактировалось mebitek; 19.02.2012 в 17:56.

  6. #6
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    442

    По умолчанию Re: отладка Arduino приложений

    да, что-то не получается.
    Сходу там надо изменить компиляцию на C++. Для этого надо файл проекта переименовать в CPP. Тогда после добавления HardwareSerial.*, Print.* и нескольких других из %arduino%\hardware\arduino\cores\arduino\ вроде компилятор компиляет все, но потом сыпятся ошибки линковки
    HardwareSerial.o.data+0x16): undefined reference to `__cxa_pure_virtual'

    Чорт :-(. Как же ардуино компиляет проект? Тем же компилятором, но прописывает правильные свойства проекта :-(.

  7. #7
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    49
    Сообщений
    320
    Вес репутации
    333

    По умолчанию Re: отладка Arduino приложений

    Нет решения? (((((

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •