Forum: Compiler & IDEs AVR-GCC Code vor main


von Anton Wert (Gast)


Lesenswert?

was macht denn bitte der code vor main im Avr gcc? Also zuerst Stack
Pointer, das versteh ich ja noch aber dann? ich steig da aus...

von Marius S. (lupin) Benutzerseite


Lesenswert?

Ich würde sagen der setzt das RAM auf 0 oder halt den definierten
Anfangswert. Vielleicht setzt der auch ein paar register...

Ansonsten springt der code noch zur main funktion.

von Anton Wert (Gast)


Lesenswert?

naja der Sprung zu main steht am Ende (is auch klar) aber dazwischen ist
noch so vieles, es sind ofenbar indirekte Adressierungen mit Z-Pointer

von Jens D. (jens) Benutzerseite


Lesenswert?

Wie der compiler das handhabt mit der main und den funktionen kann
unterschiedlich sein.

endweder steht die main am anfang, am ende oder in der mitte ist im
grunde auch egal.

wichtig ist nur, dass die sprungadressen stimmen

generel setze ich die main and ende (in c) aber es ist auch nur eine
funktion mit einer besonderen aufgabe..

poste doch einfach den code, den du meinst, dann laesst sich mehr dazu
sagen

gruss

von hans dieter (Gast)


Lesenswert?

also die meisten compiler machen folgendes:
- interupts abschalten (auch wenn die schon nach reset aus sind ->
sicher ist sicher)
- eeprom zugang abschalten
- sram auf 0 initialisieren
- register auf 0 initialisieren
- globale variablen initialisieren
- main aufrufen

die meisten sachen sind aber nicht wirklich sinnvoll und könnten
weggelassen werden (register und sram initialisieren).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Guckt euch doch einfach das gcrt0.S von der avr-libc an...

von Rolf Magnus (Gast)


Lesenswert?

Oder einfach deren Dokumentation. Da steht's nämlich auch drin.
Siehe
http://www.nongnu.org/avr-libc/user-manual/mem_sections.html#sec_dot_init

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.