W jaki sposób "zmusić" kompilator gcc gnu w AVR Studio aby nie omijał podczas Buildu funkcji?
Problem ten zauważyłem podczas napisania prostego programu:
Po deasemblacji widać, że linker nie dołączył do programu funkcji czekaj.
Dopiero po zmianie optymalizacji na -O0 linker dołączał tą funkcje.
Jednak program strasznie się "rozrósł".
Czy istnieje jakiś inny sposób na dołączenie funkcji, przy optymalizacji -Os?
Problem ten zauważyłem podczas napisania prostego programu:
#include<avr/io.h>
#include<avr/sfr_defs.h>
void czekaj(unsigned int pt)
{
unsigned int tp1 ;
for(; pt > 0; pt--)
{
for(tp1 = 0; tp1 < 255; tp1++) ;
}
}
int main(void)
{
DDRD = 0xFF ;
PORTD = 0x55 ;
while(1)
{
if(bit_is_set(PORTD,PD7))
{
PORTD <<= 1 ;
PORTD |= 0x01 ;
czekaj(1500) ;
}
else
{
PORTD <<= 1 ;
czekaj(1500) ;
}
}
return(0) ;
}
Po deasemblacji widać, że linker nie dołączył do programu funkcji czekaj.
Dopiero po zmianie optymalizacji na -O0 linker dołączał tą funkcje.
Jednak program strasznie się "rozrósł".
Czy istnieje jakiś inny sposób na dołączenie funkcji, przy optymalizacji -Os?
