c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

[ct-bot] PACKED-Makro

Absender: Timo Sandmann
Datum: Mo, 28.05.2012 19:06:33


Hallo zusammen,

ein kleiner Hinweis zum letzten Code-Update (1905):
Die Arbeitsweise des Makros "PACKED" hat sich geändert - "PACKED" setzt das packed-Attribut nur noch für MCU. Das neue Makro "PACKED_FORCE" setzt es hingegen immer. 
"PACKED" ist zu verwenden, um Speicher auf MCU zu sparen, "PACKED_FORCE" falls die Member eines Structs direkt aufeinander folgen müssen (z.B. für Kommunikation oder HW-Treiber).

Der Hintergrund ist, dass der Compiler für gepackte Structs das Alignment der Member nicht mehr automatisch korrekt macht / machen kann. Das ist bei x86 in unserem Fall zwar nicht besonders tragisch, bei ARM hingegen schon. Das war auch der Grund, warum der Map-Code auf der ARM-Architektur vorher nicht funktioniert hat.

Viele Grüße,
Timo