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...
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.
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
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
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).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.