GCC ARM: writeback of base register is UNPREDICTABLE

OP #1229982
Lesenswert?
• ▲
▼
Hallo,

ich beziehe mich auf folgenden Beitrag von "let"

Beitrag "ARM7: ADC Wandler 16 Bit ?"

In der Rowley Umgebung wird bei Optimierung bekanntlich der Fehler
"Warning: writeback of base register is UNPREDICTABLE"
erzeugt, wenn ISR Routinen verwendet werden, die mit Schlüsselwörtern 
des GCC bezeichnet sind. Der erzeugte Code ist fast immer nicht 
lauffähig.

Nun soll es aber eine Lösung geben, wenn man in den Startup Code den 
Aufruf dder ISR einpackt. Eine Datei, die ich gefunden habe und von der 
ich vermute, dass sie das tut ist angehängt. Nun bin ich absoluter Laie 
was den Asm des LPC angeht und gebe zu, er interessiert mich auch nicht, 
solaange es funktioniert.

Bisher sehen ISRs bei mir so aus:

void _attribute_ ((interrupt("IRQ"))) Isr_TIMER0 (void)

Jetzt die Frage:

Kann jemand, leicht verständlich sagen, wie man das Ganze umbauen muss, 
damit Optimierungen wieder funktionieren? Und wie sieht dann eine ISR 
aus, bzw wie wird sie installiert?

Gruss,
Christian
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.