Forum: Compiler & IDEs Initialisierungswerte der Register eines ATmega durch WinAVR


von Andre S. (stollenwerk)


Lesenswert?

Hallo zusammen,

kann mir jemand sagen, ob der Inhalt der 32 Register eines ATmega durch 
WinAVR immer gleich ist?

Ich habe hier in einem kleinen Projekt ein Minibetriebssystem auf einem 
ATmega erstellt. Dabei wird durch den Timerinterrupt immer wieder das 
Scheduling betrieben, und dabei stellt sich mir die Frage, wie ich die 
Register für die einzelnen Tasks am besten initialisiere. Ich hatte 
schon mal Probleme, als ich die Register gar nicht initialisiert habe. 
Momentan initialisiere ich alle Register mit 0x00 und das scheint so 
auch stabil zu laufen. Ich bin mir jedoch nicht sicher, ob das so 
richtig ist, bzw. ob ich dadurch später ggf. nochmal in Probleme laufen 
kann.

Weiß jemande genaueres, bzw. weiß jemand, wo ich das nachlesen könnte??

Gruß und besten Dank für eure Hilfe

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Das Register R1 muss bei Initialisierung den Wert 0 haben, ansonsten 
muss nix vorinitialisiert werden ausser SP, aber beim Task-Wechsel 
natürlich alle Register inclusive des SP und des PSW (SREG) 
gesichert/restauriert werden.

http://www.roboternetz.de/wissen/index.php/Avr-gcc/Interna#Registerverwendung

von Andre S. (stollenwerk)


Lesenswert?

Besten Dank für die schnelle und hilfreiche Antwort :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.