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
Na, kann auch nicht funktionieren, weil die Elementfunktion nicht in den I-Vector eingetragen wird .... jedenfalls nicht mit avr-g++-6.2.1 also kein Problem mit SimAVR! Sorry for the noise.
Ist nicht mein Tag heute ... Man darf keine in-class-definition für die ISR-Elementfunktion verwendet, sondern die muss out-of-class definiert werden. Dann gehts aus ... Oh je ...
Und mit template-Elementfunktionen geht es wieder nicht ...
Vielleicht kann da jemand helfen: ich versehe die class-template Elementfunktion
1 | |
2 | |
3 | |
4 | |
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.