SimAVR und ISRs

#4778801
Lesenswert?

Hallo zusammen,

mir ist gerade aufgefallen, dass die Möglichkeit, statische 
Elementfunktionen als ISRs zu definieren im SimAVR nicht funktioniert:

https://www.mikrocontroller.net/articles/AVR_Interrupt_Routinen_mit_C%2B%2B

Ist das ein bekannter Bug?

Ich benutze diese Möglichkeit zwar nicht, da es ja die Compiler-Warnung 
wegen eines falsch benannten ISR ergibt und die Code-Size sich gegenüber 
der "klassichen Variante", eine freie Funktion mit C-linkage zu 
schreiben, die die entsprechende Elementfunktion aufruft, nicht 
verkleinert. Trotzdem wäre es interessant zu wissen ...

Wilhelm
#4778953
Lesenswert?

Vielleicht kann da jemand helfen: ich versehe die class-template 
Elementfunktion
1
template<typename MCUTimer>
2
class Timer final {
3
...
4
    static void timerTick() __asm__(STR(TIMER0_COMPA_vect)) __attribute__((__signal__, __used__, __externally_visible__));
5
...
6
};

mit den Attributen und mache eine abgesetzte Definition.

Mir leuchtet es schon ein, dass das problematisch sein kann, wenn ich 
unterschiedliche Parametrierungen meines Templates instanziiere.

Aber das es gar nicht in den I-vector kommt, ist mir unklar ...

Irgendwelche Hinweise?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren