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

[AVR][WinAVR-20100110][Mega2560] Błąd linkera przy funkcjach z libgcc.a

damiano713 21 Mar 2011 22:51 1606 8
  • #1 9306635
    damiano713
    Poziom 15  
    Witam,

    Wszystko tak jak w tytule tematu.

    Błąd:
    Invoking: AVR C Linker
    avr-gcc -Wl,-Map,argos-baza.map -mmcu=atmega2560 -o"argos-baza.elf"  ./adc.o ./clock.o ./conf.o ./dtmf.o ./hd44780.o ./keyboard.o ./lcd_buffer.o ./log.o ./lut.o ./main.o ./mt8870.o ./pcf8583.o ./radio.o ./radio_stack.o ./rc4000.o ./spi.o ./sram.o ./stdout.o ./timer.o ./twi.o ./usart.o ./usart_service.o   
    c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr6\libgcc.a(_divmodsi4.o): In function `__divmodsi4':
    (.text.libgcc+0xc): relocation truncated to fit: R_AVR_13_PCREL against symbol `__udivmodsi4' defined in .text.libgcc section in c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr6\libgcc.a(_udivmodsi4.o)


    Kod generujący błąd:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Metodą prób i błędów doszedłem do tego, że gdy kod wygląda tak, to się kompiluje:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Atoi, atoi nie równa? O co może chodzić?
    Wygląda tak, jak gdyby nie mógł zrobić tak dużego skoku w pamięci, czy mam rację?
    strncpy potrzebuje jednego parametru więcej niż strcpy więc by się tutaj zgadzało. Bardzo to dziwne, gdyż mam dopiero 32k FLASH i 2k RAM.

    Przetestuje jeszcze na innej wersji kompilatora.
  • Pomocny post
    #3 9307350
    markosik20
    Poziom 33  
    Spróbuj do LDFLAGS dodać -lm.
  • #4 9308948
    damiano713
    Poziom 15  
    dondu
    A co to ma do rzeczy? Przyzwyczaiłem się już do eclipse.

    markosik20
    Stukrotne dziękuję. Działa.
    W innym fragmencie pojawił się ten sam błąd. Dodałem jeszcze libc.a czyli -lc.

    Czy linker musi podawać takie głupie komunikaty? Można to jakoś rozkodować w ogóle, czy po prostu trzeba wiedzieć?
  • #5 9309420
    dondu
    Moderator na urlopie...
    damiano713 napisał:
    A co to ma do rzeczy? Przyzwyczaiłem się już do eclipse

    Tytuł tematu: [AVR][WinAVR-20100110]...
    Ani słowa o Eclipse, a takie problemy w WinAVR są częste, a w Studio nie.

    ... czego potwierdzeniem niech będzie:
    damiano713 napisał:
    W innym fragmencie pojawił się ten sam błąd. Dodałem jeszcze libc.a czyli -lc. Czy linker musi podawać takie głupie komunikaty? Można to jakoś rozkodować w ogóle, czy po prostu trzeba wiedzieć?

    A Eclipse oczywiście jest super!
  • #6 9309455
    damiano713
    Poziom 15  
    W takim razie eclipse również jest głupie. Twórców powinno się zamknąć.
  • #7 9309461
    markosik20
    Poziom 33  
    dondu napisał:
    ..., a takie problemy w WinAVR są częste, a w Studio nie.


    A ty myślisz że AVRStudio to z czego korzysta? To IDE samo generuje makefile'a, zresztą plugin AVR do eclipse też tylko trzeba czasami mu "ręcznie pomóc" :D

    damiano713 napisał:
    W takim razie eclipse również jest głupie. Twórców powinno się zamknąć.


    Wybacz za stwierdzenie ale to nie Eclipse jest głupie tylko ludzie którzy z niego korzystają. Może bardziej będzie pasować "są niedouczeni". :wink:.
  • #8 9309491
    dondu
    Moderator na urlopie...
    markosik20 napisał:
    A ty myślisz że AVRStudio to z czego korzysta? To IDE samo generuje makefile'a, zresztą plugin AVR do eclipse też tylko trzeba czasami mu "ręcznie pomóc" :D

    Ale robi to poprawnie w przeciwieństwie do programistów.
    Pomagać trzeba jedynie gdy chcesz osiągnąć coś niestandardowego.
  • #9 9309537
    damiano713
    Poziom 15  
    Dziękuję za pomoc Panowie.
REKLAMA