Tim Flechsel schrieb:
> Hallo Forengemeinde,
>
> ich hab nen Problem was ich nicht so ganz verstehe. Als erste
> Funktion/Commando in meiner main() habe ich eine Funktion die mir die
> Ports des AVR's initialisiert. Der Programm Counter hat dort aber
> bereits den Wert 0x000612. Wie kann das sein?
ehe dein main() loslegt, sind schon ein paar ganz andere Sachen
passiert. da wurden zb die globalen Variablen initialisiert, die
Speicherverwaltung in Gang gebracht etc. Auch das ist Code, der irgendwo
stehen muss.
Ausserdem sagt ja kein Mensch, dass main() als erstes im Speicher stehen
muss. Wo main() steht ist ja letztendlich egal, der wichtige Punkt ist,
dass es die erste Funktion ist, die angesprungen wird, nachdem die
Runtime das komplette C-Laufzeitsystem initialisiert hat.
Und an 0x0000 kann main() sowieso nicht stehen, weil dort beim AVR die
Interrupt-Vektoren liegen.