Witam
Mam płytkę na etapie montażu i uruchamiania na której póki co znajduje się procesor (ATmega64), linie zasilania, kondensatory filtrujące, rezonator kwarcowy 16MHz, przycisk reset, złącze do ISP i "testowa" dioda LED podłączona do jednego z pinów procesora.
Na etapie testów polegających na pisaniu prostych programów (różne sekwencje świecenia diody LED) pojawił się pewien problem
Problem ten polega na tym, że przy programowaniu (Eclipse + USBasp) pojawia się problem przy weryfikacji zawartości pamięci flash.
Poniższy obrazek pokazuje efekt wydania w konsoli polecenia dla avrdude mającego dokonać weryfikacji pamięci flash (dokładnie ten sam komunikat zwraca Eclipse w trakcie programowania):
Próbowałem programów o różnej objętości i problem zawsze pojawia się przy bajcie 0x0100. Dlatego stwierdziłem, że w ramach sprawdzenia za pomocą avrdude odczytam zawartość pamięci flash do pliku *.hex i dokonam porównania z plikiem *.hex otrzymanym po kompilacji programu
(sam do końca nie jestem pewien na ile jest to sensowny pomysł)W każdym razie efekt porównania pokazuje poniższy obrazek:
Jeśli dobrze rozumiem to w bajtach o adresach 0x0100 i 0x0101 jest różnica między plikiem *.hex po kompilacji (0x80 i 0x40) a tym co znajduje się w pamięci procesora (0xFF i 0xFF) . Pozostała elementy o odpowiadających sobie adresach w obu plikach są takie same.
(czy na tych komórkach pamięci nie przeprowadzono operacji programowania? zostały one pominięte?)Co teraz? Procesor jest uszkodzony?
Pozdrawiam