Skocz do zawartości

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


Treker

Pomocna odpowiedź

Cześć!

Odkopuję trochę temat, ale mam problem z kompilacją przykładowego programu. Otóż robię wszystko zgodnie z poleceniami, tworzę plik makefile i kiedy mam kompilować program otrzymuję coś takiego

> "make.exe" all
     0 [main] sh 4552 sync_with_child: child 4676(0x12C) died before initialization with status code 0x0
 28250 [main] sh 4552 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
     0 [main] sh 3736 sync_with_child: child 1856(0x12C) died before initialization with status code 0x0
 32358 [main] sh 3736 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable

-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 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: led.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./led.lst  -std=gnu99 -MMD -MP -MF .dep/led.o.d led.c -o led.o 
led.c:1:1: warning: "F_CPU" redefined
<command-line>: warning: this is the location of the previous definition
led.c:26: fatal error: opening dependency file .dep/led.o.d: No such file or directory
compilation terminated.
make.exe: *** [led.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:02

Gdzie leży błąd? Co robię źle?

Z góry dzięki 😉

edit: dodaję kod programu - skopiowany ze strony z kursem

/* "led.c" - programik do testowania środowiska WinAVR */
/* układ ATmega 1MHz */
/* PB0,PB1 - diody LED; PD0 - przycisk */

#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>                

int main(void)
{
   DDRB  |= _BV(0)|_BV(1);
   PORTB |= _BV(0);
   PORTB &= ~_BV(1);
   DDRD  &= ~_BV(0);
   PORTD |=  _BV(0);

   while (1) 
   {
       PORTB ^=_BV(0);
       PORTB ^=_BV(1);

       _delay_ms((PIND & _BV(0))? 1000: 200);
   }
}
}
Link do komentarza
Share on other sites

led.c:26: fatal error: opening dependency file .dep/led.o.d: No such file or directory

Czytać, czytać i jeszcze raz czytać. Zgubiłeś gdzieś plik. Mi to wygląda na (kolejny) problem z makefile - jeśli robisz w WinAVR to przerzuć się na AVR Studio.

Link do komentarza
Share on other sites

Nadal próbuję skompilować mój program, teraz w Eclipse i pojawia mi się taki błąd

Description	Resource	Path	Location	Type
make: [led2.lss] Error 128 (ignored)			 	C/C++ Problem

Ponadto wyskakują 2 ostrzeżenia

Description	Resource	Path	Location	Type
"F_CPU" redefined	led.c	/led2	line 12	C/C++ Problem
Description	Resource	Path	Location	Type
#warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"	led2		line 90, external location: e:\winavr-20100110\avr\include\util\delay.h	C/C++ Problem

Nadal nie mam wsadu. Mam na komputerze WinAVR i wtyczkę wiążącą z nim Eclipse. Co jest przyczyną tych błędów?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Witam wszystkich, mam pytanko do pierwszej części właśnie zmontowałem układ, ale coś jest nie tak, wywala mi błąd:

avrdude: stk500v2_command(): command failed

avrdude: initialization failed, rc=-1

Double check connections and try again, or use -F to override

this check.

Połączenia sprawdzałem oczywiście, ale nie jestem pewien jednej rzeczy czy jeżeli w programatorze stk500v2 wyciągnę zworkę czerwoną mam coś zmieniać w schemacie jeżeli chodzi o zasilanie układu i programatora? czy po prostu cały układ z programatorem są zasilane wtedy z kompa?

i kolejne pytanie jakie napięcie ma być w układzie przy zasilaniu go 5 V , bo jak mierze miernikiem mam duży spadek - napięcie wynosi ok 1.5 V wiec chyba za słabo? co może być przyczyną tego?

z góry dziękuje za pomoc,
dla uporządkowania podam dane swojego układu:

Układ na płytce stykowej - schemat z kursu

Atmega 8

zasilanie bateria 4.5 V lub zasilaczem 5V

programator stk500v2 w trybie HID

gdy podłącze wszystko programator daje znak podłączenia do portu USB a gdy daje w programie avrdude komendę "write" chwile mignie czerwona dioda oznaczająca programowanie i po chwili wyskakuje błąd...

Link do komentarza
Share on other sites

Witam,

Mam taki problem z wrzuceniem programu na procesor przez winavr.

Wyskakuje mi ten oto błąd:

> "make.exe" program

avrdude -p atmega8 -P usb -c usbasp -U flash:w:led.hex

avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc

make.exe: *** [program] Error 1

> Process Exit Code: 2

> Time Taken: 00:01

Tylko nie mam pojęcia czemu nie może zidentyfikować usbasp, jak przez ścieżkę do avrdude w bascomie (ustawienie external programmer i ścieżka do avrdude) wrzuci, a przez WinAVR nie wrzuci (nic międzyczasie nie jest ruszane).

Link do komentarza
Share on other sites

To może mi ktoś odpowie:P

Witam wszystkich, i od razu na dzień dobry mam problem:

Zrobiłem układ według instrukcji, pościągałem co trzeba, ale utknąłem na tym:

vrdude -p atmega8 -P usb -c usbasp    -U flash:w:led.hex 

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
        To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "led.hex"
avrdude: input file led.hex auto detected as Intel Hex
avrdude: writing flash (120 bytes):

Writing | ################################################## | 100% 0.89s

avrdude: 120 bytes of flash written
avrdude: verifying flash memory against led.hex:
avrdude: load data flash data from input file led.hex:
avrdude: input file led.hex auto detected as Intel Hex
avrdude: input file led.hex contains 120 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.67s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
        0x12 != 0x00
avrdude: verification error; content mismatch

avrdude done.  Thank you.

make.exe: *** [program] Error 1

Gógiel niestety nie pomógł.

Korzystam z usbaspa kupnego. Zworki raczej mam dobrze ustawione, jakakolwiek inna kombinacja powoduje wywalenie błędu jeszcze wcześniej niż teraz.

Połączenia chyba też mam dobre, bo gdyby były złe, to nie zaszedł by tak daleko, no nie?

Próbowałem wgrywać na dwie atmegi8, jedną L, drugą A-PU. Na żadnej nie działa. Połączenia sprawdziłem woltomierzem, zdaje się że napięcia są tam gdzie trzeba. Zatem zwracam się o pomoc, za którą z góry dziękuję🙂

__________

Komentarz dodany przez: Nawyk

Używaj znaczników [ code][ /code]

Link do komentarza
Share on other sites

Styka. 2 omy to chyba niedużo, nie?

Ok, głupie błędy są najlepsze- miałem niepołączoną masę układu i programatora. Dziękuję za pomoc, i zwracam uwagę potomnych na ten detal:P

Link do komentarza
Share on other sites

Witajcie, mam problem z kompilacją czegokolwiek w programie WINAVR. próbowałem już skompilować parę różnych programów, oraz kilkukrotnie tworzyłem plik makefile. I każdorazowo wyskakuje mi komunikat podczas kompilacji:

> "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.

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

> Process Exit Code: 2

> Time Taken: 00:00

Plik makefile nie zapisywałem z rozszerzeniem .c

Pozdrawiam i z góry dziękuję za odpowiedź

Link do komentarza
Share on other sites

plik makefile nei ma żadnego rozszerzenia. Poza tym powiem to po raz n-ty: po co ktokolwiek używa WinAVR, skoro nie ma żadnej przewagi nad innymi środowiskami?

https://www.forbot.pl/forum/postlink/37342.htm#37342

Jeśli to problem z makefile to skorzystaj z AVRstudio. Nie wiem czemu w ogóle ktoś robił kurs na WinAVR.

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

https://www.forbot.pl/forum/topics20/przygotowanie-srodowiska-do-programowania-avr-vt3702.htm (stare, ale jeszcze bardzo przydatne)

Postuluję o zamknięcie tego tematu, albo wyczyszczenie, bo problemy u początkujacych powtarzają się w kółko i są te same! I w dodatku związane z korzystaniem z WinAVR zamiast jakiegoś lepszego środowiska!

Link do komentarza
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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.