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

Atmega8 [C] - Błędy kompilacji: Przepełnienie sekcji .text o 14298 bajtów

Fabian77 23 Paź 2013 13:17 2184 11
  • #1 12872598
    Fabian77
    Poziom 13  
    Witam. Mam problem z kompilacją programu. Chciałbym delikatnie zmienić program w C na Atmege8. Próbuje juz dziesiątki razy ale mi nie wychodzi bo cały czas są jakieś błędy. W załączniku przedstawiłem pliki które posiadam. Czy może ktoś mi pojaśnić jak to wszystko zgrać żeby to poprawnie skompilować?

    Moje ostatnie błędy:

    avr-gcc -Wl,-Map,TermP.map -mmcu=atmega8 -o"TermP.elf" ./main.o ./LCD/lcd44780.o ./1Wire/crc8.o ./1Wire/ds18x20.o ./1Wire/onewire.o
    c:/winavr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: TermP.elf section .text will not fit in region text
    c:/winavr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: region text overflowed by 14298 bytes
    make: *** [TermP.elf] Error 1
  • #2 12872698
    PROXAQQ
    Poziom 14  
    U mnie skompilowało bez błędu (Eclipse Ganymede):

    Device: atmega8
    Program: 4150 bytes (50.7% Full)
    (.text + .data + .bootloader)
    Data: 67 bytes (6.5% Full)
    (.data + .bss + .noinit)


    Robiłeś CLEAN?
  • #3 12872838
    dondu
    Moderator na urlopie...
    Skompilowałem w AVR Studio 4.18 + GCC 4.3.3 + optymalizacja -Os
    Bez błędów.

    Cytat:
    Build started 23.10.2013 at 14:43:27
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT lcd44780.o -MF dep/lcd44780.o.d -c ../LCD/lcd44780.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT onewire.o -MF dep/onewire.o.d -c ../1Wire/onewire.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT crc8.o -MF dep/crc8.o.d -c ../1Wire/crc8.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT ds18x20.o -MF dep/ds18x20.o.d -c ../1Wire/ds18x20.c
    avr-gcc -mmcu=atmega8 -Wl,-Map=Program-uC.map main.o lcd44780.o onewire.o crc8.o ds18x20.o -o Program-uC.elf
    avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature Program-uC.elf Program-uC.hex
    avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex Program-uC.elf Program-uC.eep || exit 0
    avr-objdump -h -S Program-uC.elf > Program-uC.lss

    AVR Memory Usage
    ----------------
    Device: atmega8

    Program: 4310 bytes (52.6% Full)
    (.text + .data + .bootloader)

    Data: 67 bytes (6.5% Full)
    (.data + .bss + .noinit)


    Build succeeded with 0 Warnings...



    @PROXAQQ
    Kompilowałeś dla ATmega8? Jaka optymalizacja? Jaki kompilator GCC?
    Spor różnica w zajętości pamięci.
  • #4 12872849
    Fabian77
    Poziom 13  
    Robiłem ale coś mi nie wychodzi :/
    Możesz opisać co robisz krok po kroku, bo może o czymś zapominam...
  • #6 12872888
    zumek
    Poziom 39  
    dondu napisał:

    @PROXAQQ
    Kompilowałeś dla ATmega8? Jaka optymalizacja? Jaki kompilator GCC?
    Spor różnica w zajętości pamięci.

    Posiadam 'zestaw kompilujący' jak Ty, a wynik mi wyszedł jak koledze PROXAQQ

    Spoiler:
    Build started 23.10.2013 at 15:04:38
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT lcd44780.o -MF dep/lcd44780.o.d -c ../LCD/lcd44780.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT onewire.o -MF dep/onewire.o.d -c ../1Wire/onewire.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT crc8.o -MF dep/crc8.o.d -c ../1Wire/crc8.c
    avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT ds18x20.o -MF dep/ds18x20.o.d -c ../1Wire/ds18x20.c
    avr-gcc -mmcu=atmega8 -Wl,-Map=test.map main.o lcd44780.o onewire.o crc8.o ds18x20.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: 4150 bytes (50.7% Full)
    (.text + .data + .bootloader)

    Data: 67 bytes (6.5% Full)
    (.data + .bss + .noinit)


    Build succeeded with 0 Warnings...
  • #7 12872913
    PROXAQQ
    Poziom 14  
    @dondu

    Tak, dla ATmega8.
    Kompilator WinAVR-20100110. Optymalizacja "-Os".
  • #9 12872932
    Fabian77
    Poziom 13  
    Używam Eclipse Ganymede i mam dołączone pliki .c i .h projektu. Robie Clean ale dalej problemy.


    **** Build of configuration Debug for project ProjektT ****
    
    make all 
    Building target: ProjektT.elf
    Invoking: AVR C Linker
    avr-gcc -Wl,-Map,ProjektT.map -mmcu=atmega8 -o"ProjektT.elf"  ./main.o  ./LCD/lcd44780.o  ./1Wire/crc8.o ./1Wire/ds18x20.o ./1Wire/onewire.o   
    c:/winavr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: ProjektT.elf section .text will not fit in region text
    c:/winavr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: region text overflowed by 13900 bytes
    make: *** [ProjektT.elf] Error 1
  • Pomocny post
    #10 12872991
    PROXAQQ
    Poziom 14  
    Utwórz jeszcze raz projekt i zaimportuj same pliki. Przy tworzeniu projektu wyłącz w konfiguracji opcję "Debug". Ma być tylko "Release".
  • #12 12873089
    Fabian77
    Poziom 13  
    Dzieki :) Chyba chodziło o to debagowanie :)
    Pozdrawiam !

    Zamykam.
    Dar.El
REKLAMA