Also ich habe mal etwas weiter probiert mit dem gdb Debugger. Es gibt
zwei Verhaltensweisen, die ich feststellen konnte. Allen ist gleich,
dass nur einen Breakpoint im gesamten Projekt gibt und der sitzt am
Anfang der Interrupt Routine und der Interrupt wird durch den UART
ausgelöst. Die Interruptbehnadlung funktioniert einwandfrei.
1. Verhaltensweise
Ich lasse mein Projekt im Run Modus laufen und ein Interrupt tritt auf:
- Der µC springt in die ISR, arbeitet den Interrupt, gibt ihn frei und
alles ist supi. Danach kann der nächste Interrupt auftreten und es
funktioniert wieder.
2. Verhaltensweise
Ich steppe durch mein Projekt und ein Interrupt tritt auf:
- Wenn ich mit Step Into oder Steo over durch mein Projekt steppe, wird
auch nach ganz vielen Steps nicht in die ISR gesprungen, obwohl alle
Bedingungen erfüllt sind.
Warum?
Eine kleine Ergänzung noch: Wenn ich einen Funktionsaufruf in meiner
main habe, passiert es manchmal, dass wenn ich mit Step over steppe, der
µC am Einsprung zur Funktion erst in die ISR springt, alles korrekt
macht, dann die Funktion abarbeitet und alles wieder in Ordnung ist.
Eric