Forum: Compiler & IDEs gcc fragen...


von marcel (Gast)


Lesenswert?

hallo zusammen,

1. wofür steht eigentlich dieses _attribute_ ((naked)) bzw. generell 
dieses _attribute_??

2. warum sind in winavr die defines so aufgebaut??:

#define PORTB _SRF08_(0x18)

und nicht wie sonst so

#define PORT(0x18)

und wenn das einen tieferen sinn hat (den hat es bestimmt) wo und als 
was ist SRF08 definiert?

danke,
marcel

von Jörg Wunsch (Gast)


Lesenswert?

1: siehe
http://gcc.gnu.org/onlinedocs/gcc-3.2.1/gcc/Attribute-Syntax.html#Attribute%20Syntax

"naked" generiert eine Funktion ohne Prolog und Epilog.
Kurz und gut: für Leute, die wissen, was sie damit tun. ;-)
Sieh Dir den generierten Assemblercode dafür an.

2. Damit sowohl memory-mapped IO als auch Port IO transparent
öglich sind.  Siehe
http://savannah.nongnu.org/download/avr-libc/doc/avr-libc-user-manual/group__avr__sfr.html

Definiert sind sie in <avr/sfr_defs.h>, einer Datei, die man
nie selbst includen sollte, sondern die via <avr/io.h> immer
included wird.

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.