Hallo zusammen,
ich rechne eine CRC über meinen Programmcode und hab dazu eine 
Dummy-Section angelegt, deren Adresse mir anzeigt, wo der Programmcode 
aufhört:
1  | const uint16_t  Dummy        __attribute__((section (".dummy"      ), used, unused)) = 0xAAAA;
 | 
2  | const uint16_t  AddresseVonDummy  __attribute__((section (".addressevondummy"  ), used, unused)) = (uint16_t)&Dummy;
 | 
Der Wert AddresseVonDummy liegt an einer fixen Adresse im Hexfile, damit 
ich den Wert im Bootloader auslesen kann.
Das funktioniert einwandfrei, aber nur mit 16Bit-Adressen.
Wenn ich ganze für einen ATMega1284 bauen will, bräuchte ich 
32Bit-Adressen.
Wenn ich nun folgendes probiere
1  | const uint16_t  Dummy        __attribute__((section (".dummy"      ), used, unused)) = 0xAAAA;
 | 
2  | const uint32_t  AddresseVonDummy  __attribute__((section (".addressevondummy"  ), used, unused)) = (uint32_t)&Dummy;
 | 
steht in AddresseVonDummy immer noch 0x00000000 drinn.
Wie geht das?