procek: atmega16 Jak zbudowac takiego hexa który do niewykorzystanego obszaru flash'a wrzucał nop'y ? Chcę aby w przypadku niepożądanego wskoczenia PC w taki obszar kontroler leciał po tych nop'ach a na koniec ma być skok do procedury obsługi takiego przypadku.
Nie ma takiego założenia ale istnieje pewne prawdopodobieństwo i dobrze jest się zabezpieczyć również na taką przypadłość.
Watchdog też jest załączony i wykorzystywany. Mi się wydaje, że jak urządzenie ma być jak najbardziej odporne to powinno być zabezpieczone ze wszystkich stron, poczynając od dobrego PCB, kondensatorów blokujących itp itd, a kończąc na zabezpieczeniach softwarowych (a może nawet odwrotnie)
Piotr Gałka snipped-for-privacy@CUTTHISmicromade.pl napisał(a):
Jest jeszcze prostrzy sposób (tak myślę ;-) ) a)Skompilować projekt i zerknąć , ile toto zajmuje bajtów. b)Do projektu dołączamy plik np. "Nopy.s" o takiej treści:
#if NOPS > 3 .section .progmem.gcc //sekcje można wybrać dowolnie(no prawie) //powyższy przykład umieści nop-y //za tablicą wektorów , a właściwy program na //końcu pamięci //dla .section .fini0 , nop-y na końcu(prawie) // najlepszym miejscem będzie chyba .section .data .rep NOPS-3 nop .endr clr r30 //dla ... clr r31 //.. ATMega8 ... ijmp // ...trza tak ;) #endif c)powtórnie skompilować i ... załadować do proca.
Tylko ze skok JMP ma długość 2 słów, co powoduje, że PC może się ustawić między dwoma słowami w rozkazie. Chyba o wiele lepsze rozwiązanie jest ustawić obszar NOPami i na koniec jego dać skok do procedury obsługi błędów.
Ależ kombinujecie pod górę. A wystarczy wykorzystać możliwości linkera i w pliku sterującym linkowaniem (trzeba skopiować do swojego zamiast używać domyślnego) dodać magiczne słowo FILL z wartością rozkazu NOP.
tylko skąd założenie, że akurat proc wyskoczy do obszaru nieużywanego? w większości projektów, które robiłem flash miał zajętość 50-75% więc skuteczność tej metody jest raczej mała
zewnętrzny watchdog jest chyba sensownym rozwiązaniem w środowisku o dużych zakłóceniach
jakoś nie wierzę w skuteczność ochrony za pomocą tej metody
Piotr Wyderski snipped-for-privacy@ii.uni.wroc.pl> napisał(a):
Z całym szacunkiem ;) Kolega pytał , więc starałem sie pomóc , nie wnikając do czego mu to potrzebne.Gdybym wiedział , że można za takie "coś" wylecieć z pracy , to nie pisnąłbym słówkiem ;-)
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.