Witam.
Piszę sobie specyficzny bootloader.
Bootloader potrafi policzyć sume kontrolną flash w podanym zakresie.
Jesli policzę sume kontrolną *przed* zapisaniem jakiejkolwiek strony za pomoca pgm_read_byte - wynosi ona X.
Jesli teraz zaprogramuje dowolną stronę flash w bootloaderze (boot_page_erase + boot_page_fill + boot_page_write ) i ponownie policzę sumę kontrolną wynosi ona Y.
Jesli wyłacze zasilanie i włacze ponownie - wynosi X.
X jest poprawnie, Y nie.
Czy pgm_read_byte ma jakis problem po uruchmieniu procedury zapisu pamięci flash?
Na razie nie analizowalem precyzyjnie problemu, ale jestem na 100% że nie mam błędu w programie. Pytam, może ktoś wie od razu gdzie jest przyczyna innego dzialania pgm_read_byte.
Pamięc programuje się poprawnie z poziomu bootoadera.