eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaavr - bootloader czytajacy flash czyta co innego po zaprogramowaniu
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2010-11-21 00:03:54
    Temat: avr - bootloader czytajacy flash czyta co innego po zaprogramowaniu
    Od: Sebastian Biały <h...@p...onet.pl>

    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.


  • 2. Data: 2010-11-21 12:16:40
    Temat: Re: avr - bootloader czytajacy flash czyta co innego po zaprogramowaniu
    Od: Michoo <m...@v...pl>

    A próbowałeś odczytać zawartość pamięci i policzyć sumy kontrolne "na
    zewnątrz", zrobić diff?

    Można by się wtedy zorientować, czy to błędne dane są czytane, czy np w
    obliczeniach jest jakiś błąd z powodu zmodyfikowanych
    rejestrów/zmiennych statycznych?

    --
    Pozdrawiam
    Michoo


  • 3. Data: 2010-11-21 13:18:31
    Temat: Re: avr - bootloader czytajacy flash czyta co innego po zaprogramowaniu
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2010-11-21 13:16, Michoo wrote:
    > A próbowałeś odczytać zawartość pamięci i policzyć sumy kontrolne "na
    > zewnątrz", zrobić diff?

    Owszem, jeden z "sektorów" wykazuje zawartość samych 0xff. Ostatnio
    zapisywany.

    >
    > Można by się wtedy zorientować, czy to błędne dane są czytane, czy np w
    > obliczeniach jest jakiś błąd z powodu zmodyfikowanych
    > rejestrów/zmiennych statycznych?

    Znalazłem problem. Po wykonaniu zapisu do sektora Flash nie wolno go
    czytać od razu. Należy wczesnie wywołać boot_rww_enable(). Zmyliło mnie
    to ze ta funkcja jest zawsze opisywana w kontekście skoku do wgranego
    programu a tymczasem ona zezwala na odczyt flash. Dokumentacja jest
    jednak w tym miejscu mocno zawiła i juz nie mam ochoty na analizę,
    dodanie boot_rww_enable przed liczeniem sumy kontrolnej pomaga.

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: