Forum: Compiler & IDEs Variablenausrichtung bei AVR-GCC


von Rob' (Gast)


Lesenswert?

Hallo!

Ich möchte, das mein Array an einer 256-Byte-Grenze im RAM angelegt 
wird. Dazu habe ich bei der Variablendeklaration ein Attribut angegeben:
1
uint8_t Table[256] __attribute__((aligned (256)));

Das Array wird trotzdem irgendwo angelegt. Was mache ich falsch?

Danke im Voraus!
Rob'

von Stefan E. (sternst)


Lesenswert?

Welche Compiler-Version?
Wenn ich mich recht erinnere, gab es Probleme mit dem aligned-Attribut, 
die in 4.7 beseitigt wurden.

von Rob' (Gast)


Lesenswert?

Danke für die schnelle Antwort.

Version ist die 4.5.1, mit AVR Studio 4.19 installiert.

Rob'

von Rob' (Gast)


Lesenswert?

Nach Update der Toolchain ist jetzt auch die Variable wie gewünscht 
ausgerichtet. Dafür stürzt jetzt mein AVR Studio 4.19 beim Start des 
Debuggers gnadenlos ab. :(

Rob'

von Oliver (Gast)


Lesenswert?

Tja, man kann halt nicht alles haben...
Ein aktuelleres Stdio könnte helfen.

Oliver

von Ralf G. (ralg)


Lesenswert?

Oliver schrieb:
> Tja, man kann halt nicht alles haben...
> Ein aktuelleres Stdio könnte helfen.
>
> Oliver

Oder ein älteres. Leider. Vor allem, weil 'könnte' hervorgehoben werden 
muss :-(

von Matthias L. (Gast)


Lesenswert?

>Ich möchte, das mein Array an einer 256-Byte-Grenze im RAM angelegt
>wird.


Mal aus Neugier: Warum willst Du das? Welcher Vorteil ergibt sich 
dadurch?

von Adib (Gast)


Lesenswert?

schau mal in die Compilerwarnungen, ob er das überhaupt so alignen kann.
Bei mir hat er mal eine maximale aligned Größe von 16 erlaubt.
Das war mit GCC 4.6.

HTH, Adib.
---

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.