Forum: Compiler & IDEs gcc fragen...


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.