Forum: Mikrocontroller und Digitale Elektronik Interrupts auf Coldfire mit GCC


von Tastengnom (Gast)


Lesenswert?

Hallo zusammen,

ich portiere derzeit ein 68k/Coldfire V2 Projekt von einem alten 
Freescale Compiler auf den GCC. Ich hänge etwas bei den 
Interrupt-Handlern.

Im alten Code werden Interrupt-Handler wie folgt angelegt:
1
__declspec(interrupt: 0x2700)
2
void f(void);

So wie ich es verstehe, gibt die Zahl die Interrupt-Priorität an und 
wird einfach in das SR Register geschrieben. Dies entnehme ich zumindest 
dem Disassembly des alten Projekts:
1
   34016:  46fc 2700        movew #9984,%sr
in
1
00034014 <_f>:
2
   34014:  40e7             movew %sr,%sp@-
3
   34016:  46fc 2700        movew #9984,%sr
4
   3401a:  4e56 0000        linkw %fp,#0
5
   3401e:  4fef fff4        lea %sp@(-12),%sp
6
   34022:  48d7 0103        moveml %d0-%d1/%a0,%sp@
7
   34026:  41f9 4000 0000   lea 40000000 <___IPSBAR>,%a0
8
...
9
   34096:  4e73             rte

Mit dem GCC finde ich keine Entsprechung, da kann ich wie zwar 
Interrupt-Handler anlegen, aber habe keine Möglichkeit die Priorität 
festzulegen:
1
void f(void) __attribute__((interrupt));

Bietet GCC eine solche Möglichkeit nicht?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.