AVR - lockbits

Nov 02, 2004 5 Replies

Witam


1.Mam taki problem - procek ( Mega8 ) po zaprogramowaniu bootlock bitów przestaje poprawnie pracowac ( podlaczony wyswietlacz LED zaczyna glupiec).


2.Jezeli nie uzywam bootloadera, to ktore lockbity musze zaprogramowac w mega8 aby zabezpieczyc program przed zczytaniem. Program uzywa flasha do przechowywania sta³ych tablic danych.



pozdr. jfk



Jakich? Wszystkich 6?

Wystarczy LB1 i LB2. [Nie]używanie bootloadera nic tu nie zmienia - przy takich lockbitach procka nie będzie można ani programować, ani odczytywać, do czasu kompletnego skasowania oczywiście.

Tak

Tak tez teraz robie, ale zastanawia mnie dlaczego jak zaporgramuje wszystkie

6 to nie dzia³a dobrze ( dzieje sie to dopiero od niedawna - moze to miec zwiazek z rozmiarem kodu ? ) ???

jfk

No to wszystko jasne. Co by tu dużo tłumaczyć - po prostu RTFM. Zablokowałeś sobie m.in. możliwość czytania pamięci programu instrukcją LPM - bez tego nie zadziała poprawnie kod startowy C, przepisujący zmienne inicjowane z pamięci Flash do RAMu. A potem wszystkie funkcje korzystające ze stałych w pamięci programu (np. printf_P) też nie będą działać jak trzeba.

Tylko ¿e d³ugo dzia³a³ ( a przynajmniej nie zauwa¿y³em b³ednego dzia³ania) - wiec w ogole mnie to nie interesowa³o co i jak. Czy kompilator C (winavr) musi uzywac LPM ?

W kazdym razie - dzieki za odpowiedzi. jfk

Popraw mnie, je¿eli siê mylê, ale z tego co czyta³em bity blokuj±ce instrukcje LPM i SPM nie blokuj± ich pracy w obrêbie pamiêci danych. Blokuj± korzystanie z tych instrukcji przez bootloader w celu odczytania b±d¼ modyfikacji pamiêci w sekcji programu oraz blokuj± korzystanie z tych instrukcji przez obszar pamiêci programu w celu odczytania b±d¼ modyfikacji pamiêci sekcji bootloadera.

Pozdrawiam Rafa³ Szulc

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required