Witam.
Niejednokrotnie zdarza się, że mam potrzebę oprogramować urządzenie z podstawką na Attiny2313. Niestety ma on tylko 2kB pamięci kodu programu, co przekłada się na to, że funkcjonalność programu trzeba niejednokrotnie ograniczyć do minimum (a szkoda).
Czy znacie jakieś triki optymalizacyjne, znacząco minimalizujące objętość kodu wynikowego?
Obsługując z Attiny2313 wyświetlacz LCD 16x2 najwięcej traci się na stringach zawierających komunikaty dla LCD. Ja tekst pakuję przeważnie do stałych, i później stałe wykorzystuję w wielu powtarzających się miejscach programu.
Nieco pamięci daje się czasem zaoszczędzić stosując select case zamiast if (w przypadku wielu warunków).
Czasem zachodzi potrzeba zastosowania wielu warunków połączonych spójnikiem or (tego nie wiem jak zrobić inaczej).
Programy muszą być oczywiście maksymalnie "uprocedurowione", staram się nigdy nie pisać dwa razy tego samego kodu.
Wydaje mi się, że osiągam zazwyczaj sporą optymalizację kodu, niemniej jednak być może są jeszcze jakieś istotne kwestie optymalizacyjne, jeśli chodzi o Bascom AVR, które warto byłoby zacząć stosować?
Z góry dziękuję za podpowiedzi kolegów programistów mających większe doświadczenie z pracą w owym niedoskonałym środowisku.
Niejednokrotnie zdarza się, że mam potrzebę oprogramować urządzenie z podstawką na Attiny2313. Niestety ma on tylko 2kB pamięci kodu programu, co przekłada się na to, że funkcjonalność programu trzeba niejednokrotnie ograniczyć do minimum (a szkoda).
Czy znacie jakieś triki optymalizacyjne, znacząco minimalizujące objętość kodu wynikowego?
Obsługując z Attiny2313 wyświetlacz LCD 16x2 najwięcej traci się na stringach zawierających komunikaty dla LCD. Ja tekst pakuję przeważnie do stałych, i później stałe wykorzystuję w wielu powtarzających się miejscach programu.
Nieco pamięci daje się czasem zaoszczędzić stosując select case zamiast if (w przypadku wielu warunków).
Czasem zachodzi potrzeba zastosowania wielu warunków połączonych spójnikiem or (tego nie wiem jak zrobić inaczej).
Programy muszą być oczywiście maksymalnie "uprocedurowione", staram się nigdy nie pisać dwa razy tego samego kodu.
Wydaje mi się, że osiągam zazwyczaj sporą optymalizację kodu, niemniej jednak być może są jeszcze jakieś istotne kwestie optymalizacyjne, jeśli chodzi o Bascom AVR, które warto byłoby zacząć stosować?
Z góry dziękuję za podpowiedzi kolegów programistów mających większe doświadczenie z pracą w owym niedoskonałym środowisku.
