Skocz do zawartości
Treker

Część 1-Kurs programowania uC AVR w C (WinAVR, Kurs AVR-GCC)

Pomocna odpowiedź

Tym razem wyskakuje coś takiego:

rm -rf cos.o cos.elf dep/* cos.hex cos.eep

Build succeeded with 0 Warnings...

avr-gcc.exe -mmcu=atmega8 -Wall -gdwarf-2 -O0 -MD -MP -MT cos.o -MF dep/cos.o.d -c ../cos.c

avr-gcc.exe: installation problem, cannot exec `cc1': No such file or directory

make: *** [cos.o] Error 1

Build failed with 1 errors and 0 warnings...

I to w programie AVRstudio

Udostępnij ten post


Link to post
Share on other sites
avr-gcc.exe: installation problem, cannot exec `cc1': No such file or directory

Poszukaj, gdzie masz wpisane "cc1". Musiałeś wpisać gdzieś w ustawieniach, albo w jakimś pliku.

Udostępnij ten post


Link to post
Share on other sites

Przejrzałem ustawienia i nic tam takiego nie ma. A co w ogóle ma wspólnego wpis "cc1" z działaniem programu? Powinno wyświetlić się tam coś innego czy co, bo nie rozumiem jaki to jest typ błędu?

Udostępnij ten post


Link to post
Share on other sites

Chodzi o to, że gdzieś _musiało_ zostać wpisane przez Ciebie lub kogoś innego "cc1", bo nei może odnaleźć takiego pliku bądź katalogu. Stąd pytanie: w jaki sposób dodałeś pliki do projektu? Czy przeniosłeś je z WinAVR (łącznie z plikami ustawień itp.) czy też dodałeś je normalnie?

Spróbuj utworzyć pusty projekt, wpisz tam tylko:

//tutaj daj include do io.h

main()

{

while(1)

{

}

}

I sprawdź czy sie kompiluje.

Udostępnij ten post


Link to post
Share on other sites

Dzieje się tak samo identyczny błąd. Program pisałem w winavr, plik makefile tworzyłem sam. Przeinstalowywałem już winavra kilkukrotnie i nic.

> "make.exe" all

-------- begin --------

avr-gcc (WinAVR 20090313) 4.3.2

Copyright © 2008 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

make.exe: *** No rule to make target `main.elf', needed by `elf'. Stop.

> Process Exit Code: 2

> Time Taken: 00:00

To jest komunikat jaki wyskakuje po skompilowaniu programu który podałeś.

Udostępnij ten post


Link to post
Share on other sites

W pliku makefile masz podany plik główny? Wpisany z rozszerzeniem czy bez? Powinien być bez. Sprawdź.

Udostępnij ten post


Link to post
Share on other sites

mariusz7844, jeszcze raz: robiłeś to w WinAVR czy w AVRStudio (którym?)? Bo z opisu wynika, że coś grzebałeś w pliku makefile.

Zrób wg tej instrukcji:

https://www.forbot.pl/forum/topics20/programowanie-przygotowanie-srodowiska-do-programowania-avr-vt3702.htm

Jeśli będziesz postępował wg tej instrukcji to musi działać. Oczywiście w "Project options" musisz wybrać odpowiedni procesor i inne ustawienia, bo na podstawie tych ustawięń AVRStudio tworzy makefile.

Nie neguję tego, że modyfikowanie samemu pliku makefile się przydaje, ale trzeba najpierw wiedzieć jak to zrobić, chociaż raz mieć to zrobione dobrze, a tutaj niestety widzę, że się błąkasz, zamiast skorzystać z odpowiednich narzędzi. To trochę tak, jakbyś próbował coś wywiercić mając tylko wiertło i szmatę do trzymania, zamiast użyć wiertarki.

Udostępnij ten post


Link to post
Share on other sites

Testowałem już każdą możliwą opcję w programach winAVR, oraz AVRStudio. Jednak tak łatwo się nie poddam. Tworzę właśnie wirtualny system windowsXP na dysku. Zobaczę czy uda mi się coś zdziałać. Zależy mi na możliwości programowania.

[ Dodano: 01-02-2013, 21:04 ]

Mam pytanie, jak w programie AVRstudio przypisać plik make do programu?? Bo wydaje mi się że nie jest on widziany.

Udostępnij ten post


Link to post
Share on other sites

W większości większych IDE (w tym Atmel Studio czy Eclipse) "mejkowanie" jest zautomatyzowane - nie trzeba tworzyć/edytować/przejmować się makefile'em...

Udostępnij ten post


Link to post
Share on other sites

mariusz7844, na jakim systemie pracujesz? Bo jeśli na Linux to AVRStudio4 ma poważne problemy a 5 w górę w ogóle nie ruszy.

I czy kompilujesz wywołując "make" z wiersza poleceń czy "Build" w programie? To pierwsze nie zadziała, bo plik makefile jest tworzony przez AVRS dopiero w momencie wywołania kompilacji.

Udostępnij ten post


Link to post
Share on other sites

Coś jest nie w porządku z plikiem makefile. Uprzednio zmieniałem jego nazwę przy tworzeniu, a gdy dziś zmieniłem nazwę na "makefile" wyskoczył inny komunikat:

"make.exe" all

-------- begin --------

avr-gcc (WinAVR 20100110) 4.3.3

Copyright © 2008 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling C: dioda.c

avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -O3 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./dioda.lst -std=gnu99 -MMD -MP -MF .dep/dioda.o.d dioda.c -o dioda.o

avr-gcc: CreateProcess: No such file or directory

make.exe: *** [dioda.o] Error 1

> Process Exit Code: 2

> Time Taken: 00:03

Przy własnej nazwie wyskakuje komunikat:

> "make.exe" all

make.exe: *** No rule to make target `all'. Stop.

> Process Exit Code: 2

> Time Taken: 00:01

.

Projekt robię w programie winavr

[ Dodano: 05-02-2013, 15:58 ]

Dobrze, to że plik makefile, nie nazywał się "Makefile" to mój błąd:D:D. Teraz coś się dzieje. Tylko co z tym komunikatem??

> "make.exe" all

-------- begin --------

avr-gcc (WinAVR 20100110) 4.3.3

Copyright © 2008 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling C: dioda.c

avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -O3 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./dioda.lst -std=gnu99 -MMD -MP -MF .dep/dioda.o.d dioda.c -o dioda.o

avr-gcc: CreateProcess: No such file or directory

make.exe: *** [dioda.o] Error 1

> Process Exit Code: 2

> Time Taken: 00:02

Udostępnij ten post


Link to post
Share on other sites

Hmm, spróbuj nie komplikować sobie życia:

- utwórz nowy projekt w AVRS, skonfiguruj np. dla ATmegi8 (wystarczy wybrać symulator do debuggowania i on sam wstępnie skonfiguruje), nazwij go np. test

- w pliku test.c wpisz:

#include

int main(void)

{

while(1)

{

}

}

- spróbuj skompilować.

Powyższe zrób w katalogu ze ścieżką bez spacji - kiedyś mogło powodować problemy dla avr-gcc.

Mi to dało wynik:

Build started 6.2.2013 at 09:38:23

avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT test.o -MF dep/test.o.d -c ../test.c

avr-gcc -mmcu=atmega8 -Wl,-Map=test.map test.o -o test.elf

avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature test.elf test.hex

avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex test.elf test.eep || exit 0

avr-objdump -h -S test.elf > test.lss

AVR Memory Usage

----------------

Device: atmega8

Program: 100 bytes (1.2% Full)

(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)

(.data + .bss + .noinit)

Build succeeded with 0 Warnings...

Udostępnij ten post


Link to post
Share on other sites

mariusz7844, to nie AVRS nie moze znaleźć, tylko kompilator, którym jest avr-gcc. WinAVR będzie miało dokładnie ten sam problem. Nie wiem jak Eclipse, ale pewnie też. Najnowszy AVRS nie powinien mieć problemów i tym samym sądzę, że byłby naprawdę dobrym pomysłem.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...