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

[tiny13][C]Rozmiar skompilowanego kodu

ziggi86 24 Lis 2009 11:03 1115 2
  • #1 7301862
    ziggi86
    Poziom 13  
    Witam

    Mam następujący problem, chciałem sobie zrobić prosty sterownik obrotów wentylatora PC na attiny 13-jak wiadomo ma on tylko 1 kB pamięci. I teraz tak jako kompilatora używam AVR studio z ustawioną optymalizacją -Os.

    Zadeklarowałem tablice w eepromie mikrokontrolera która według moich wyliczeń powinna zajmować 64 bajty (tablica dwukolumnowa po 16 wierszy uint16 czyli powinna zając 64 bajty)
    Tablica wygląda tak:
    EEMEM uint16_t LUT[][2]={ 			
    						{40,	120},
    						{81,	93},
    						{122,	78},
    						{163,	68},
    						{204,	60},
    						{245,	54},
    						{286,	48},
    						{327,	43},
    						{368,	39},
    						{409,	34},
    						{450,	31},
    						{491,	27},
    						{532,	23},
    						{573,	20},
    						{614,	16},
    						{655,	13},
    
    			
    							};


    I po kompilacji AVR studio wypisuje komunikat o zajętości pamięci:

    AVR Memory Usage
    ----------------
    Device: attiny13

    Program: 480 bytes (46.9% Full)
    (.text + .data + .bootloader)

    Data: 2 bytes (3.1% Full)
    (.data + .bss + .noinit)

    EEPROM: 64 bytes (100.0% Full)
    (.eeprom)


    Jednakże po kompilacji docelowy plik epp zajmuje 193 bajty.
    Podobnie jest z plikiem hex zawierającym program - zajmuje prawie 1,3 kB.

    Z czego to wynika i skąd te rozbieżności ??

    Poszukałem trochę na forum podobnych wątków ale nigdzie nikt bezpośredniego nie poruszał tego zagadnienia.

    Z góry dziękuje za odpowiedź.


    Pozdrawiam
  • Pomocny post
    #2 7301987
    Konto nie istnieje
    Konto nie istnieje  
  • #3 7302177
    ziggi86
    Poziom 13  
    ok :)

    Poczytałem o budowie plików hex i już wszystko jasne :)


    Dzięki za pomoc


    Pozdrawiam
REKLAMA