Portierung IAR WinAVR

Gast #90449
Lesenswert?

allo Leute,

mir macht folgender Aufruf des IAR-Compilers Kopzerbrechen:

__no_init __regvar static unsigned char USI_UART_TxData @ 15;   //
Tells the compiler to store the byte to be transmitted in registry.

Ich habe daraus folgenden Code "verwurschtel"
register unsigned char USI_UART_TxData asm ("r15");

Ich war der Auffassung, das @15 die Adresse des Registers 0x15 ist und
dieses mit r15 identisch ist. Tatsächlich wird hierbei die Adresse
0x15
angegeben. Nun bin ich mit meinem Latein etwas am Ende. Wie kann ich
der Variable mit Hilfe von WinAVR / gcc den Speicherplatz 0x15
permanent zuweisen?

Gruß Marcus

PS: Gibts irgendwelche includes um dem GCC IAR kompatibel zu machen?

PSS: Sorry, dass das hier etas OT ist!
Gast #90450
Lesenswert?

Adresse 0x15 ist das Register 0x15 (also dezimal 21).  Das kannst Du
im AVR-GCC nicht permanent belegen, da es nicht zu dem Bereich gehört,
der frei belegbar ist.  Dieser Bereich beginnt bei 0x2 (und endet
spätestens bei 0x12).
Gast #90451
Lesenswert?

Hallo Jörg,

auch in diesem Form nochmals Sorry fürs doppelte Posting.

Ich benutze den Tiny26 und verzweifel im Moment gerade an der USI.
Ich habe mir die Appnotes von Atmel angeschaut, diese funktionieren
natürlich unter IAR, nur meine Portierung will einfach nicht
funktionieren.

Wäre jemand, dem der IAR sehr vertraut ist, so nett und würde mal kurz
über den portierten Code schauen?

Wo gibts ne gute Doku zum portieren?

Gruß Marcus
Angehängte Dateien:

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