NetBeans + Arduino
- Войдите на сайт для отправки комментариев
Пт, 28/10/2016 - 04:15
Подскажите, кто-нибудь настраивал NetBeans под программирование Arduino?
Делал настройку по http://reto-jenni.jimdo.com/2016/03/30/setup-netbeans-for-arduino-nano/
NetBeans v8.2, Arduino IDE v1.6.12
Все зависимости прописал, библиотеки подключил. Но при компиляции выдет ошибку. Код самый элементарный main.cpp
#include <Arduino.h> void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
Лог ошибки:
cd 'C:\Users\Alex\Documents\NetBeansProjects\ArduinoTest'
C:\WinAVR\utils\bin\make.exe -f Makefile CONF=Debug
mkdir -p lib/libs/Firmata/
avr-g++ -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=167 -fno-exceptions -c -g -IC:/Arduino/hardware/arduino/avr/cores/arduino -IC:/Arduino/hardware/arduino/avr/variants/standard -IC:/Arduino/libraries/Firmata C:/Arduino/libraries/Firmata/Firmata.cpp -o lib/libs/Firmata/Firmata.cpp.o
In file included from C:/Arduino/libraries/Firmata/Firmata.cpp:18:
C:/Arduino/libraries/Firmata/Firmata.h:204: error: ISO C++ forbids initialization of member 'blinkVersionDisabled'
C:/Arduino/libraries/Firmata/Firmata.h:204: error: making 'blinkVersionDisabled' static
C:/Arduino/libraries/Firmata/Firmata.h:204: error: ISO C++ forbids in-class initialization of non-const static member 'blinkVersionDisabled'
make: *** [lib/libs/Firmata/Firmata.cpp.o] Error 1
BUILD FAILED (exit value 2, total time: 219ms)
Несколько дней убил на решение. В чем может быть проблема, может кто-нибудь сталкивался с таким?
Судя по логам, подключена библиотека Firmata, в ее исходниках находится ошибка. Насколько я понимаю, нужно отключить эту либу. Убрать из списка или из makefile.
Пробовал не подключать либу Firmata. Тогда компиляция вообще не завершается, даже ошибкой.
В лог бесконечно сыпятся строчки:
При этом в системе плодятся процессы make.exe
Сам make.exe от WinAVR-20100110-install.exe
Уже который день бьюсь с проблемой так и не могу решить. В Arduino IDE нормально кодить невозможно.
С NetBeans давно знаком.
Я бы попробовал другую версию toolchain (make). Плюс нужно смотреть, что там в makefile.
Похоже на рекурсивный вызов, теоретически.
Огромное спасибо за наводку!!!
Попробовал toolchain, проблема осталась, правда сообщение об ошибке было немного иного характера. Даже подключил либы компиляции С/С++ от toolchain. Ошибка стала возникать не на Firmata.cpp, а на DCD.cpp
По итогу вернул обратно либы компиляции от самой Arduino и попробовал использовать make.exe от http://www.mingw.org/wiki/msys
И все отлично заработало. Никак не думал что от make файла шла вся проблема. Видимо версии разные.
Спасибо. Тема закрыта.
AlexKu, приветствую! таже проблема была с NetBeans, просто замучался... сто раз набор инструментов добавлял, настраивал и тд и тп, сейчас поставил msys мейк файл, вроде кое как заработало, а подскажите как у Вас в этом направлении продвигается дело?
И сталкивались ли с такой ошибкой ?
main.cpp:5:22: fatal error: RTClib.h: No such file or directory
Причем ругается именно на сторонние библиотеки, как подцепить не пойму.
lex0r, приветствую.
Да, сталкивался с подключением либ, только мучился с LiquidCrystal. Решил проблему добавлением ее в Makefile.
INCLUDE_LIBS = Firmata;LiquidCrystal/src; Также пришлось в рабочей папке проекта очистить папку lib (в ней 2 папки core и libs), чтобы при сборки он по новой собрал ядро и подтянул нужные либы.
Да с этим тоже разобрался, все либы, какие импользуешь, надо добавлять в мейк файл, причем стандартные либы, типа Wire.h, необходимо засовывать в папку со всеми библиотеками (из-за того, что в мейк файле жестко привязывается путь до библиотек).
Но после удачной компиляции не смог заставить работать скетч на дуине, вижу что на плату заливается, перезагружается, но lcd 16х2 мониторчик не пашет...
Сейчас поставил Visual c++, там есть плагин ардуиновский, еще попробую там потестить.
Я вот тоже сейчас мучаюсь, не могу залить скетч. Выдает:
avrdude: stk500_recv(): programmer is not responding
Не сталкивался с таким?
Нет не сталкивался, но пишет, что программатор не отвечает, рой в этой стороне, завел дуинку на visual c++, нормально все работает, без шаманства, качай комюнитьи версию и ставь плагин http://www.visualmicro.com/
Как я не хотел устанавливать еще одну IDE, но думаю всетаки придется, хотя бы попробовать. Спасибо за наводку.
Поставил VisualStudio, установил плагин. Действительно все собирается и заливается без всякого шаманства.
Но все же в этой IDE не устроило:
1. Среда разработки поставилась русская (скачал vs_langpack, установил, но так и не появился выбор английского языка).
2. По умолчанию создается проект с главным файлом project.ino, после переименования его в project.cpp проект не работает.
3. Переход к подключаемой либе осуществляется через Ctrl+F12, хотя во многих IDE открывается Ctrl + кнопки мыши.
Всетаки решил еще чутка пошаманить с NetBeans, и в итоге был успех. Обновил саму Arduino IDE (до 1.8.0), создал по новой проект. И все заработало.
Возможно проблема была в rates, до этого стояло значение в Makefile по умолчанию 57600, теперь выставлено 115200. Все отлично билдится и загружается.
Попытка 2, на другой машине.
Поставил 1.8 IDE, все равно не взлетает ... в PATH это прописывал ?
D:\Programs\Arduino\Msys\bin; D:\Programs\Arduino\GnuWin32\bin; D:\Programs\Arduino\hardware\tools\avr\bin; D:\Programs\Arduino\hardware\tools\avr\avr\bin;
Набор средств такой ?
http://clip2net.com/clip/m398660/eaac8-clip-71kb.png
У меня выскакивает:
В PATH у меня прописано C:\Arduino\hardware\tools\avr\bin;C:\SysGCC\arm-eabi\bin;
Набор средств тот же самый кроме "Базового каталога", там у меня C:\SysGCC\arm-eabi\arm-eabi
SysGCC toolchain брал отсюда http://gnutoolchains.com/avr/
Начальные настройки Makefile (для Arduino UNO):
COM_PORT = COM1
BAUD_RATE = 115200
ARDUINO_VERSION = 167
ARDUINO_BASE_DIR = C:/Arduino
INCLUDE_LIBS = Firmata;
ARDUINO_MODEL = atmega328p
ARDUINO_PROGRAMMER = arduino
ARDUINO_PINS_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/avr/variants/standard