logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATMEGA128 - błąd weryfikacji flasha po zrzucie i odczycie przez AVRDRAGON

sundayman 14 Paź 2014 00:03 963 1
REKLAMA
  • #1 14039537
    sundayman
    Poziom 26  
    Natrafiłem na dziwny problem;

    Chodzi o atmegę128.
    Fusy 3F D4 FF (lata na kwarcu 14Mhz).
    Do tego jest bootloader 1kb na wejściu (przerobiony MCS bootloader do bascoma),
    no i sam program w bascomie.

    "normalna" procedura wygrywania softu jest taka:

    Za pomocą AVRDRAGON, spod Atmel Studio ustawiam sobie fusy.
    Następnie wgrywam plik HEX bootloadera. Wgrywa się OK, weryfikacja OK (z ISP clock 2Mhz) - bootloader działa poprawnie.

    Potem, spod bascoma , już z użyciem bootloadera, przez RS232 wgrywam "główny" program. No i gitara - wszystko hula.

    No i dalej zaczynają się problemy.
    Chciałbym zrobić sobie "zrzut" całego flasha, żeby go potem wgrywać "w całości".
    Zatem znowu z użyciem AVRDRAGONA odczytuję sobie zawartość flasha. Dla pewności z wolniejszym ISP clock - np. 250 kHz.

    Niby odczytuje się ok, zapisuje mi pliczek.
    Jednak próba weryfikacji już nie jest OK :

    "Verifying Flash...Failed! address=0x0000 expected=0xff actual=0x0c"

    Kiedy to samo robię z pamięcią EEPROM - problemu nie ma. Dane odczytane się poprawnie weryfikują. Nawet przy ISP clock 2 Mhz.
    Czyli nie jest to problem z programatorem raczej.

    Aha, oczywiście lockbity są powyłączane...

    Żeby było śmieszniej, to pod adresem 0x0000 POWINNO być 0C.
    Kiedy zaglądam do pilku hex - tak właśnie jest zarówno w pliku wynikowym z bascoma, jak i w pliku odczytanym z MCU. Oczywiście plik z "samym programem" jest krótszy niż plik odczytany z MCU już z bootloaderem.

    Ale akurat początki są oczywiście takie same - i w obu plikach jest pod adresem 0000 wartość 0C.

    Zatem skąd on bierze to "expected=0xff" podczas weryfikacji ??

    __________________

    przed chwilą sprawdziłem jeszcze - korzystając z USBASP i programu Sinaprog - plik odczytany z flasha przez AVRDRAGON weryfikuje się z procesorem POPRAWNIE.

    __________________

    Po odłączeniu na chwilę dragona, i podłączeniu ponownie - teraz działa poprawnie. znaczy przynajmniej zapisuje flash i eeprom i poprawnie weryfikuje...
    Już nic nie rozumiem...
  • REKLAMA
  • #2 14040492
    sibit.pl
    Poziom 12  
    Cytat:
    No i dalej zaczynają się problemy.
    Chciałbym zrobić sobie "zrzut" całego flasha, żeby go potem wgrywać "w całości".
    Zatem znowu z użyciem AVRDRAGONA odczytuję sobie zawartość flasha. Dla pewności z wolniejszym ISP clock - np. 250 kHz.
    Niby odczytuje się ok, zapisuje mi pliczek.
    Jednak próba weryfikacji już nie jest OK :
    "Verifying Flash...Failed! address=0x0000 expected=0xff actual=0x0c"


    Podejrzewam że ścieżka jest ustawiona na wgrywany bootloader i względem niego jest weryfikacja.
    Proponuję "zrzut" zapisać w pliku produkcyjnym elf i wtedy nie powinno być problemów... no i w jednym pliku będzie wszystko razem z fusebitami i lockbitami.
REKLAMA