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?