Hallo AppeL,
ganz so ist es nicht. Es stimmt, die Asuro Lib ist eine sogenannte Objekt Library. Die Funktionen wurden in diverse Source Files aufgesplittet und das ganze dann zu einer Library zusammengepackt. Wenn der Linker so eine Lib einbindet, werden aber alle Funktionen aus dem entsprechenden Sourcefile eingebunden, auch wenn nur eine davon wirklich verwendet wird. Kurz gesagt, müßte man jede Funktion in ein eigenes Sourcefile packen, dann wäre es wirklich so, dass nur benutzte Funktionen eingebunden werden.
Der Trick mir der Objekt Library steckt im Makefile der AsuroLib
Du kannst dir einfach das Makefile anpassen und die Objekt Files durch deine eigenen ersetzen (für jedes c-File das entsprechende o-File)
Code:
OBJECTS = globals.o adc.o adc_low.o encoder.o encoder_low.o i2c.o leds.o lcd.o\
motor.o motor_low.o my_motor_low.o print.o printf.o rc5.o sound.o switches.o\
time.o uart.o ultrasonic.o version.o
Andere AVR Compiler können das auch ohne Objekt Libraries. CodeVisionAVR z.B. optimiert alle Funktionen und Variablen weg, die nicht benötigt werden.
Dafür kostet die Vollversion auch 150€.
Gruß Peter
Lesezeichen