[avr-gcc] Programowy reset procesora

Feb 27, 2007 24 Replies

Spinacz biurowy, Saper/nolin11 <nolin11_USUNT snipped-for-privacy@interia.pl!

Chyba nie zrozumiałeś :)

Wywołanie funkcji odkłada na stos adres powrotu. Jeżeli funkcja nigdy się nie kończy i rekurencyjnie się wywołuje (tak jak u ciebie), to stos się prędzej czy później przepełni i zacznie mazać po pamięci, którą sobie zaalokowałeś (AVRy nie mają sprzętowej ochrony pamięci) i mogą być niezłe jaja (na początku nowe próby alokacji pamięci przestaną się udawać, bo libc będzie próbowała uratować co się da, a potem już zaalokowana pamięć zostanie zamazana).

Więc teraz działa, ale po jakimś czasie (odpowiedniej liczbie wywołań main()) przestanie.

Adam Wysocki przemówił ludzkim głosem:

Akurat main w swoim prologu ustawia wierzchołek stosu (przynajmniej w dotychczasowych wersjach avr-gcc), więc przepełnienie raczej nie grozi.

W tej chwili moja znajomo¶æ z avr-gcc jest na poziomie powy¿ej-pocz±tkuj±cego. (ale nie ¶rednio obeznany). Tak wiêc dopóki dzia³a jak piszê to mnie nie interesuje co siê dzieje na pocz±tku programu :) (wiem, wiem ,a powinno :( )

Za¶ ja uczê siê tego co akurat potrzebujê, wiêc nie wszystko od pocz±tku... Przynajmniej taki mam styl uczenia siê czegokolwiek (poza szko³± - tutaj to nie przejdzie :/ )

Do postu Adama: Ogólnie raczej mi to nie grozi bo g³ówny program wykonuje siê w main wiêc mi to nie przeszkadza :) W tym przypadku to nie grozi (tak my¶lê) ,a nawet jak by co¶ siê "bubu" :) to zresetuje rêcznie procesor. A pozatym uk³ad nie bêdzie w³±czony na tyle d³ugo a¿eby stos siê przeci±¿y³.

My¶lê ,¿e nie ma potrzeby kontynuowania tego w±tku :) i wnikania co i jak :)) tak wiêc porponujê [!zamknij]

In the darkest hour on Fri, 02 Mar 2007 21:20:20 +0100, Zbych snipped-for-privacy@onet.pl screamed:

A sprawdzałeś, czy ręczne wywołanie main wykona inicjalizację czy może tylko będzie skokiem do pierwszej instrukcji w body? Będę musiał to sprawdzić...

Po jmp 0 pewnie tez zadzialaja :-)

J.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required