logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak skompilować najprostszy program w WinAVR ?? - wywala mi

Fakiros 22 Sty 2005 00:33 2125 7
REKLAMA
  • #1 1159637
    Fakiros
    Poziom 13  
    Posty: 92
    Pomógł: 3
    Ocena: 1
    Witam .
    Zainstalowałem WinAVR i mam problem z kompilacją najprostszego programu:

    #include <avr/io.h>
    
    #define LED_ON sbi(DDRB,PB1);sbi(PORTB,PB1) 
    
    int main (void) 
    { 
       LED_ON; 
       for (;;) 
       { 
    
       } 
        return (0);      
    } 
    


    wywala mi taki błąd:


    
    > "make.exe" all 
    MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp. 
    Error makefile 361: Colon expected 
    Error makefile 389: Too many rules for target '%.o' 
    Error makefile 415: Command syntax error 
    *** 3 errors during make *** 
    
    > Process Exit Code: 1 
    



    w pliku makefile znajdują się w wybranych linijkach :

    
    359      # Link: create ELF output file from object files. 
    360     .SECONDARY : $(TARGET).elf 
    361     .PRECIOUS : $(OBJ) 
    362      %.elf: $(OBJ) 
    
    ---- 
    
    388        # Target: clean project. 
    389        clean: begin clean_list finished end 
    390 
    391         clean_list : 
    392 @echo 
    393 @echo $(MSG_CLEANING) 
    394 $(REMOVE) $(TARGET).hex 
    395 $(REMOVE) $(TARGET).eep 
    396 $(REMOVE) $(TARGET).obj 
    397 $(REMOVE) $(TARGET).cof 
    398 $(REMOVE) $(TARGET).elf 
    399 $(REMOVE) $(TARGET).map 
    400 $(REMOVE) $(TARGET).obj 
    401 $(REMOVE) $(TARGET).a90 
    402 $(REMOVE) $(TARGET).sym 
    403 $(REMOVE) $(TARGET).lnk 
    404 $(REMOVE) $(TARGET).lss 
    405 $(REMOVE) $(OBJ) 
    406 $(REMOVE) $(LST) 
    407 $(REMOVE) $(SRC:.c=.s) 
    708 $(REMOVE) $(SRC:.c=.d) 
    409 $(REMOVE) .dep/* 
    
    ----------- 
    
    414         # Include the dependency files. 
    415          -include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) 
    416 
    --------------------- 
    



    Czy ktoś wie co może byc tego przyczyną ?

    jak powinien wyglądać makefile w moim przypadku ??
    a może popełniam inny błąd ??
    moj plik makefila dodaje do załącznika
  • REKLAMA
  • REKLAMA
  • #3 1160520
    Fakiros
    Poziom 13  
    Posty: 92
    Pomógł: 3
    Ocena: 1
    tym razem zrobiłem tak jak jest na stronie to opisane - krok po kroku
    i wywala mi takie coś :
    > "make.exe" all
    MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
    Fatal: 'led.o' does not exist - don't know how to make it
    
    > Process Exit Code: 1


    dodam że makefile jest też tak jak na stronie.
    Wszystko zainstalowałem pod systemem Win98SE.

    może mam jakąś inną wersję WinAVR ??
    (ściągnołem ją z tej strony: http://sourceforge.net/projects/winavr )

    a może oprócz WinAVR musze coś jeszcze doinstalować ??
  • #4 1160801
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    WinAVR wymaga konfiguracji do poprawnej pracy. Też z tym miałem podobny problem i przeszedłem na środowisko polskie czyli AVRSide i niema już kłopotu.
  • #5 1160818
    Jacu$
    Poziom 27  
    Posty: 730
    Pomógł: 119
    Ocena: 26
    Kiedyś zainstalowałem sobie pod Win98SE WinAVR + Avrside (bo muszę się w końcu przemóc do C) więc teraz otworzyłem Avrside, wkleiłem Twój programik i... skompilował się bez błędów. Niestety, jestem lewy w tym temacie więc nie wiem, dlaczego wszystko poszło dobrze.
  • REKLAMA
  • #6 1160878
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Załączam pdf-a który mi pomógł w konfiguracji WinAVR
    Załączniki:
    • install_config_WinAVR.pdf (297.34 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #7 1161187
    bialy
    Poziom 17  
    Posty: 227
    Pomógł: 10
    Ocena: 54
    Przeciez wyraznie napisal co go boli :
    Fatal: 'led.o' does not exist - don't know how to make it 

    Potrzebuje on plik led.o ktory jest kompilowany z led.c aby go utozyc trzeba dodac wpisac do makefile.
    Jezli dobrze pamietam to pod konsola tworzymy go tak: gcc -c -o led.o led.c led.h
  • #8 1161276
    Fakiros
    Poziom 13  
    Posty: 92
    Pomógł: 3
    Ocena: 1
    Ok problem się rozwiązał i tkwił gdzie indziej, po prostu mam zainstalowanego Delphi który też podaje ścieżki dostępu w pliku autoexec.bat do własnego pliku makefile.
    I tym sposobem zrobił się problem bo WinAVR zaczoł używać borlandowskiego makefile.
    po prostu zachaszowałem ścieżki dostępu do Delphi w autoexec.bat zrestartowałem i wszystko śmiga.
    ( niestety teraz jednocześnie nie popracuje na delphi :) i WinAVR)

    dzieki za wszelką chęć pomocy.

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczył błędów kompilacji najprostszego programu w środowisku WinAVR na systemie Windows 98SE. Kompilacja zwracała błędy związane z plikiem makefile, m.in. "Colon expected", "Too many rules for target '%.o'" oraz "Fatal: 'led.o' does not exist - don't know how to make it". Przyczyną problemu okazało się używanie przez WinAVR nieprawidłowego pliku makefile, gdyż w systemie była zainstalowana również Delphi, które modyfikowało ścieżki w autoexec.bat i nadpisywało domyślny makefile Borlandowskim. Po usunięciu ścieżek Delphi z autoexec.bat i restarcie systemu WinAVR poprawnie kompilował program. W dyskusji pojawiły się także sugestie użycia środowiska AVRSide, które ułatwia konfigurację i kompilację programów AVR. Podkreślono konieczność posiadania pliku źródłowego (np. led.c) oraz odpowiedniego wpisu w makefile do generowania pliku obiektowego led.o.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA