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

[Attiny2313][c] nie działa program z tablicą danych

rybek_el 05 Maj 2011 23:20 1089 2
REKLAMA
  • #1 9475355
    rybek_el
    Poziom 11  
    Mam zadeklarowaną tablicę:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    i gdy tylko wpiszę gdzieś w programie zapis do tej tablicy np:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    to nic się nie wykonuje na procesorze.
    W sensie nawet najprostsze mryganie diodą.

    Ten sam kod działał bez problemu na atmega8, a tu za nic nie chce ruszyć.
    Gdy kompiluje program bez działania na tablicy to jest:
    Device: attiny2313
    
    Program:     282 bytes (13.8% Full)
    (.text + .data + .bootloader)
    
    Data:          5 bytes (3.9% Full)
    (.data + .bss + .noinit)
    
    -------- end --------
    > Process Exit Code: 0
    > Time Taken: 00:02


    gdy tylko dodam wpis do tablicy kompilacja też jest bez błędów ale:
    Program:     302 bytes (14.7% Full)
    (.text + .data + .bootloader)
    
    Data:        205 bytes (160.2% Full)
    (.data + .bss + .noinit)


    Czy to przez to że data jest ponad 100%?
    eepromu nie wgrywam to czy to ma znaczenie? Za bardzo tego nie rozumiem. Czegoś brakuje przy kompilacji?
    Compiling C: main.c
    avr-gcc -c -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o 
    
    Linking: main.elf
    avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref     -lm
    
    Creating load file for Flash: main.hex
    avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock main.elf main.hex
    
    Creating load file for EEPROM: main.eep
    avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
    	--change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0
    
    Creating Extended Listing: main.lss
    avr-objdump -h -S -z main.elf > main.lss
    
    Creating Symbol Table: main.sym
    avr-nm -n main.elf > main.sym


    Pomoże ktoś?
  • REKLAMA
  • Pomocny post
    #2 9475405
    tmf
    VIP Zasłużony dla elektroda
    Ten procesor ma tylko 128 bajtów SRAM, a twoja tablica zajmuje aż 200. Więc się nie mieści.
  • #3 9476595
    rybek_el
    Poziom 11  
    Faktycznie, dzięki
REKLAMA