четверг, 12 марта 2015 г.

Arduino and Eclipse and so on with error avr-gcc: error: spawn: No such file or directory

жЫрный заголовок, однако здравствуйте нелюбители поставить avr toolchain for Шиндус.
А это бы, ответсвенно заявляю, избавило вас от всего того гемороя на который вы сами себя обрекли.

И так у вас есть:
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 ?
-Замечательно. Сделайте так что бы он был ЕДИНСТВЕННЫМ пакетом с командами ls,grep,rm на вашем ПК
Здесь и далее: моя Arduino  IDE стоит в G:\arduino\ide160\ и я не буду писать G:\arduino\ide160\hardware\tools\avr\bin,   а "буду краток"(с) - \hardware\tools\avr\bin

И так, для полноценной интеграции 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

Комментариев нет: