ATNEL tech-forum
https://forum.atnel.pl/

Selfprograming / bootloader - programuje pierwsze 17 stron
https://forum.atnel.pl/topic20640.html
Strona 1 z 1

Autor:  mes mariusz [ 24 kwi 2018, o 10:50 ]
Tytuł:  Selfprograming / bootloader - programuje pierwsze 17 stron

Witam.

Ćwiczę sobie podstawy boodloadera (selfprograming) na mikrokontrolerze ATmega644P.

Dla jasności:

ATmega644P to:

256 stron pamięci po 128 dwu bajtowych słów maszynowych na każdej (czyli 64KB flash).
R0 - składowanie pierwszej połówki słowa maszynowego
R1 - składowanie drugiej połówki słowa maszynowego
R30 - składowanie numeru słowa na stronie (pamiętamy o przesunięciu o jedną pozycję w lewo)
R31 - składowanie numeru strony

Popełniłem sobie taki kod:

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zasada działania jest prosta:

1. Migaj sobie diodą na porcie B1
2. Jeśli na pinie B0 pojawi się stan niski olej diodę i zaprogramuj komórki pamięci flash numerem strony, na której leży dana komórka.

Prawie działa.

Po zainicjowaniu selfprogramingu (podanie na B0 na chwilę stanu "0", potem znów "1") sczytuję pamięć flash, i co widzę?

Początek jest niezły. Widać, że kolejne strony zostają zapisywane kolejnymi numerami stron (począwszy od wartości 0).

Poniżej widzimy dwie strony i kawałek trzeciej:

Obrazek

Z jakiegoś powodu zapisuje się 17 stron, a później widać niezaprogramowane komórki (255 dec, czyli FF hex):

Obrazek

Gdzieś musi być bug, którego nie potrafię wyłapać.

Pomogą?

:-)

Autor:  mes mariusz [ 25 kwi 2018, o 11:27 ]
Tytuł:  Re: Selfprograming / bootloader - programuje pierwsze 17 str

Dobra, Panowie (i Panie?).

Nie wiem czemu wcześniej nie działało (może za szybko odczytywałem zawartość flash z uC, zanim zakończył się selfprograming) w każdym razie teraz już wszystko działa elegancko, czyli wszystkie strony począwszy od strony 0 do strony 247 (czyli pierwsze 248 stron) zapisuje się wartością numeru strony, a na stronie kolejnej zaczyna się kod bootloadera.

Jest cacy!

Obrazek

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/