А это бы, ответсвенно заявляю, избавило вас от всего того гемороя на который вы сами себя обрекли.
И так у вас есть:
Arduino IDE 1.5 or higher
Eclipse IDE for C/C++ Developers Luna Service Release 1a (4.4.1) or higher
avr-eclipse
Предварительный небольшой блиц
1
-Будет ли после всего, ниже перечисленного, работать Arduino IDE?
-НЕТ! так как задумывали разработчики она работать не будет.
на самом деле будет, если это Arduino IDE версии 1.0.6 и, я подозреваю, ниже, те версии внутри которых находтся официальный atmelavrtoolchainforwindows
2
-А если у меня уже есть установленный gnu-utils ?Здесь и далее: моя Arduino IDE стоит в G:\arduino\ide160\ и я не буду писать G:\arduino\ide160\hardware\tools\avr\bin, а "буду краток"(с) - \hardware\tools\avr\bin
-Замечательно. Сделайте так что бы он был ЕДИНСТВЕННЫМ пакетом с командами ls,grep,rm на вашем ПК
И так, для полноценной интеграции avr toolchain который нахидится в дебрях Arduino IDE, в папке \hardware\tools\avr\bin нехватет 4х файлов:
make.exe
rm.exe
ls.exe
avrdude.conf
1. make.exe и rm.exe лежат в \hardware\arduino\sam\system\CMSIS\Examples\cmsis_example\gcc_atmel
2 . ls.exe можно и нужно найти в Интернете, обычно в составе gnu-utils или в Arduino IDE версии 1.0.6 и ниже в директории \hardware\tools\avr\utils\bin.
3. avrdude.conf лежит в \hardware\tools\avr\etc как и предидущие нужно положить в \hardware\tools\avr\bin
В PATH необходимо добавить следующее:
Path=G:\arduino\ide160\hardware\tools\avr\bin;G:\arduino\ide160\hardware\tools\avr\libexec\gcc\avr\4.8.1;G:\arduino\ide160\hardware\tools\avr\avr\bin;
Путь G:\arduino\ide160\hardware\tools\avr\libexec\gcc\avr\4.8.1 необходим потому как здесь лежит процессор cc1 и cc1plus которые жизнено необходимы для avr-gcc
В принципе всё, можно смело нажимать Build.
И здесь вы можете наткнутся на
'Building target: Blink.elf'
'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,Blink.map -mmcu=atmega16 -o "Blink.elf" ./main.o
avr-gcc: fatal error: -fuse-linker-plugin, but cyglto_plugin-0.dll not found
compilation terminated.
make: *** [Blink.elf] Error 1
Опля? - Продолжение следует.
t2c
Тестовый код (для Ардуины):
//#define __AVR_ATmega328P__
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB |= 1<<PINB5; /* set PB0 to output */
while(1) {
PORTB &= ~(1<<PINB5); /* LED on */
_delay_ms(1000);
PORTB |= 1<<PINB5; /* LED off */
_delay_ms(1000);
}
return 0;
}
продолжение здесь http://rxx.blogspot.ru/2017/05/arduino-and-eclipse-and-so-on.html
Комментариев нет:
Отправить комментарий