> Normalerweise gibt es im Startupcode eine Tafel mit den Adressen von
> Dummy-Funktionen für alle Interrupts, die aber mit "weak" gekennzeichnet
> sind.
Streng genommen hat das mit dem Startupcode gar nichts zu tun, aus
irgendwelchen Gründen sind diese Dinge aber bei den Beispielcodes immer
in der Datei namens "startup" mit drin.
> Wenn der Linker nun eine richtige ISR mit gleichem Namen findet, dann
> überschreibt er damit die entsprechende Dummy-Adresse und deine ISR ist
> damit richtig plaziert.
Die ISR kann gar nicht falsch plaziert sein, es muss eben nur die
Adresse der ISR an die richtige Stelle im Interrupt-Vektor
kopieren/überschreiben.
> Deine Quelltext-Auszüge sehen nicht aus, als ob sie was Sinnvolles
> machen.
Eben nur den Interrupt im NVIC initialisieren.
> Ich geb dir mal ein Beispiel aus einem LPC1751:
> So ungefähr sollte ein Interrupt-Handler aussehen - vom konkreten Inhalt
> der Routine mal abgesehen. Wie gesagt, der Name MUSS gleich dem Dummy im
> Startup sein.
Ja, nur das __irq wird beim GCC (den er vermutlich über das Atmel Studio
verwendet) nicht gebraucht.