C-Funktion zur Ausrichtung des GCC

Ich versuche, byte-align-Funktion in 16-byte-Grenze mit dem 'aligned(16)' - Attribut. Ich habe die folgenden: void __attribute__((aligned(16))) function() { }

(Quelle: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html)

Aber wenn ich kompilieren (gcc foo.c ; keine makefiles oder linker-Skripte verwendet), bekomme ich die folgende Fehlermeldung:

FOO.c:99: Fehler: "Ausrichtung" kann nicht angegeben werden, für die 'Funktion'

Habe ich versucht ausrichten zu 4,8,32, etc, aber der Fehler bleibt der gleiche.
Ich brauche das ausrichten einer Interrupt Service Routine für einen powerpc-basierten Prozessor. Was ist der richtige Weg, dies zu tun ?

  • Warum wollen Sie dies tun?
  • Die OP erklärt hat, warum genau Sie brauchen, um dies zu tun, im vorletzten Satz.
  • Eine andere herrlich böse verwenden Sie zum ausrichten von Funktionen ist die Speicherung zusätzlicher Daten in der niedrigen bits von Funktions-Zeiger-Variablen...
  • böse. Genauso wie die Speicherung im high-byte von 32-bit-Adressen auf den 680EC30 oder 68000-Prozessoren. Sehr böse Tat.
InformationsquelleAutor Sukanto | 2009-12-16
Schreibe einen Kommentar