Код
volatile uint64_t v1;
volatile uint32_t v2;
int main(void)
{
v2 = v1/v2;
PORTD = 12;
while(1);
}
этот тривиальный код компилируется для
attiny2313 в
3940 байтов flash и 278 байт ОЗУ!!!! это как такое называется?! при этом если обе переменные
v1 и
v2 сделать
uint32_t, то размер кода становится практически в 20 раз меньше:
200 байт flash !!! что там такое в
libc понаделано, что получается такое разрастание кода?! ведь если руками написать функцию деления "в столбик" - получится код значительно меньше...
P.S. разумеется, оптимизация
-Os
Я бы взял частями... но мне надо сразу.