Atmel AVR és MSP430 kódméret

C-ben írtam egy 4 digites kijelzővezérlő programot először ATtiny26L MCU-ra, majd miután az "megtelt", portoltam MSP430F1132 MCU-ra. A forráskód majdhogynem ugyanaz volt, de a program AVR-en 1930 byte volt, MSP430-on pedig 1144 byte. Úgy tűnik az MSP430 fordítója/utasításkészlete sokkal kisebb kódot eredményez!

A különbség valószínűleg nem ilyen nagy ATmega processzorok esetén, annak az utasításkészlete több utasításból áll: http://en.wikipedia.org/wiki/Atmel_AVR_instruction_set
AVR utasítások leírása (PDF)

avr-gcc jellemzői:

Using built-in specs.
COLLECT_GCC=avr-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.6.3/lto-wrapper
Target: avr
Configured with: ../configure --disable-libssp --disable-nls --enable-languages=c,c++ --infodir=/usr/share/info --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --prefix=/usr --target=avr --with-gnu-as --with-gnu-ld --with-as=/usr/bin/avr-as --with-ld=/usr/bin/avr-ld
Thread model: single
gcc version 4.6.3 (GCC)

msp430-gcc jellemzői:

Using built-in specs.
Reading specs from /usr/lib/gcc/msp430/4.5.3/../../../../msp430/lib/msp430mcu.spec
COLLECT_GCC=msp430-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/msp430/4.5.3/lto-wrapper
Target: msp430
Configured with: /var/abs/local/gcc-msp430/src/gcc-4.5.3/configure CFLAGS_FOR_TARGET=-Os --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --disable-libssp --disable-nls --target=msp430 --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-as=/usr/bin/msp430-as --with-ld=/usr/bin/msp430-ld --with-pkgversion=mspgcc_20110716
Thread model: single
gcc version 4.5.3 (mspgcc_20110716)