Zitat:
Das ist ja fast so verkrüppelt wie bei den alten PICs, EINEN Vektor für viele Interrupte. Die kleinen PIC haben auch nur einen, größere bis zu 100 Vektoren, da muß man im Handler nicht erst den Interruptverursacher suchen. Das hat aber mit der Frage hier nichts zu tun.
deine Aussage zu meiner Warnung war aber allgemein formuliert und allgemein gesprochen ist sie defintiv falsch.
Zitat:
Der TO programmiert einen PIC und den in C und hat das Problem, daß ihm der Compiler an den Anfang seines Handler ca. 40 Befehle schreibt. Wie soll er um himmelswillen in seinem Code da etwas vor diesen Prolog bekommen?
wo habe ich gesagt dass er etwas VOR dem prolog schreiben soll? Das war ebenfalls nur ein reales Beispiel von mir gewählt, denn der Prozessor den ich da als Beispiel genommen habe führt zwar den Prolog Atomar aus, gewährt einem aber einige Zyklen "Atomariät" um eben genau dieses Bit löschen zu können bevor es erneut feuert ... man sollte jemanden der nach Auskunft fragt zwar immer eine direkte Lösung geben aber auch ein wenig dabei über den Tellerrand hinausgucken, sonst frisst man sich an Details fest die durch zu spezifisches Grundwissen entstehen.
Zitat:
Nochmal, es geht hier um C. Und da bist du nicht fertig, der Compiler packt dir noch eine Menge Code rein, um den alten Kontext wiederherzustellen
ich wiederhole mich auch hier gerne für dich erneut, WENN der controller es vom grundsatz her erlaubt einen Interrupt im Interrupt zu feuern macht es sinn die globalen Interrupts zu blockieren solange man eine Zeitkritische Aufgabe ausführt (in dem Falle die Beinchen zu toggeln) und dann mus man das I-Flag auch wiederherstellen, das ist dann nur logisch.
Zitat:
ab man kann davon ausgehen, daß der C-Compiler schon mal funktionierenden Interruptcode erzeugt
Und cih sage dir hiermit dass diese allgmein gehaltene Aussgae falsch ist, es ist schlciht Controllerabhängig und verallgemeinerungen sind da gefährlich.
Zitat:
Sollte der Prozessor etwas als ersten Befehl im Handler benötigen, muß das der Compiler das als Teil des Prologs erzeugen
Wie gesagt, nein, falsch, Controllerabhängig.
Zitat:
Ich habe so langsam ernsthaft das Gefühl dass du außer deinem Cortex-M noch keinen anderen Baustein programmiert hast:)
ATMega, ATTiny, ATXMega, diverses STMs, MSP, ADuC und seit neuestem diverse Cortex-M von unterschiedlichen Herstellern weil wir auf den Cortex Zug aufspringen wollen, aber die Performance über den AHB Bus mit seinen Sync-Flags ist grausig.