Das ist ja das fatale:
Bei einigen Änderungen, die fernab vom Start-up Code sind, geht
plötzlich gar nichts mehr.
Der Original Atmel Beispiel-Code beginnt damit, wait states für Flash
Zugriff auf 2 zu setzen, dann wird der Watchdog ausgeschaltet, dann
werden die externen Oszillatoren gestartet (32k / 12MHz), dann werden
die Variablen in den RAM kopiert / initialisiert. Dann erst geht's in
die Main().
Genau das habe ich auch so übernommen.
Alle funtkioniert wunderbar, nur bewirken kleinste Änderungen im Code,
dass eben nicht mal mehr der externe Oscillator angeworfen wird (was ich
mit Hilfe eines Oszis rausfinde). Das Programm hängt also nicht
irgendwo, sondern springt schon gleich zu Beginn ins Nirvana. Deswegen
meine Vermutung ob des Linker Problems.
Ich kann das leider nur so allgemein beschreiben, da dieser Fehler
unabhängig von der Art der Programmänderung auftaucht.
Beispiel: ich ändere was an der UART-Ausgabe, peng, nix geht mehr.
Dann schiebe ich irgendwo in den Programmstart eine LED-an Zeile um zu
sehen wo er hängt, plötzlich geht's wieder...