Was bedeutet der "aw" - flag im Abschnitt Attribut gemeint?
In der folgenden Zeile des Codes (das deklariert eine Globale variable),
unsigned int __attribute__((section(".myVarSection,\"aw\",@nobits#"))) myVar;
was bedeutet der "aw" - flag bedeutet?
Mein Verständnis ist, dass die nobits flag wird verhindert, dass die variable wird initialisiert auf null, aber ich bin kämpfen, um zu finden, info über den "aw" - flag.
Auch, welche Bedeutung haben die @ und #, um den nobits Flagge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
- Abschnitt("section-name")
- Attribut legt eine variable in einem bestimmten Abschnitt durch die Herstellung der folgenden assembler-Zeile:Wenn Sie
section-name
zu".myVarSection,\"aw\",@nobits#"
Sie nutzen eine Art von "code-Injektion" in GCC zu erzeugen:Beachten Sie, dass
#
Zeichen beginnt ein einzeiliger Kommentar.Sehen GNU-Assembler-Handbuch für die vollständige Beschreibung der
.section
Richtlinie. Eine Allgemeine syntax istso
"aw"
sind flags:sowie
@nobits
ist ein Typ:Alle der oben genannten gilt auch für Funktionen, nicht nur Variablen.
Bedeutet es, dass der Abschnitt ist belegbar (D. H. es ist geladen, um den Speicher zur Laufzeit) und beschreibbaren (und lesbar, natürlich).
@nobits (@ ist nur ein Teil des namens) bedeutet, dass der Abschnitt nicht im Bild gespeichert auf der Festplatte, es gibt Sie nur in der Laufzeit (und es ist gefüllt mit Nullen am Start).
Zeichen " # " beginnt der Kommentar, also was der compiler setzen, zusätzlich zu dem, was Sie angegeben haben, werden ignoriert.