Chciałbym aby program wiedział ile zajmuje pamięci flash. W asm było to proste, to co umieściłem w ostatniej linijce kodu źródłowego (np tekst "END OF CODE", zajmowało ostatnie bajty pamięci, w C tak nie jest, bo w przypadku AVR-GCC teksty znajdują się zaraz za wektorami przerwań. Na szczęście, funcje z sekcji ".fini" znajduja się na końcu kodu:
Jak odczytać adres funkcji "__stop_program"? Nie jest ona widziana w programie i takie rozwiązanie:
generuje błąd. Czy trzeba użyć do tego sekcji ".fini0" ?
Używając ".fini0":
powstaje kod:
a program odczytuje adres 0x1cc0 (#7360), po podzieleniu przez dwa otrzymuje 3680, czyli ok.
Nie ma prostszego sposobu? jakaś stała jak __DATE__?
Kod: AVR assembler
Jak odczytać adres funkcji "__stop_program"? Nie jest ona widziana w programie i takie rozwiązanie:
Kod: C / C++
generuje błąd. Czy trzeba użyć do tego sekcji ".fini0" ?
Używając ".fini0":
Kod: C / C++
powstaje kod:
Kod: AVR assembler
a program odczytuje adres 0x1cc0 (#7360), po podzieleniu przez dwa otrzymuje 3680, czyli ok.
Nie ma prostszego sposobu? jakaś stała jak __DATE__?