Avr-objcopy vergisst eine section aus dem elf in die hex datei zu bringen

OP #2979494
Lesenswert?
• ▲
▼
Hallo!

Also ich wollte die git versions-nummer meinem Binary anfügen (letzte 2 
bytes beim FLASH) und habe zu diesem Zwecke eine objekt-datei erstellt, 
die genau diese 2 byte in einer section .version hat.
1
.section .version
2
version:
3
     .byte 0xde,0xad

Diese habe ich dann assembled.

Danach noch mein programm normal gelinkt:
1
avr-gcc -o main.elf <standard links>
und auch mit version.o:
1
avr-gcc -o main+version.elf <standard links> -Wl,--section-start,.version=0x3FFE -L. version.o

Ein avr-nm zeigt nun für das elf ohne version.o via:
1
avr-nm main.elf | sort
1
...
2
00003f20 A __data_load_end
3
00003f20 A __data_load_start
4
00003f20 T _etext
5
00800100 D _edata
6
...

und die mit version.o gelinkte version:
1
avr-nm main+version.elf | sort
1
...
2
00003f20 A __data_load_end
3
00003f20 A __data_load_start
4
00003f20 T _etext
5
00003ffe n version
6
00800100 D _edata
7
...

Die elf dateien sind auch unterschiedlich groß!

Wenn ich nun hex Dateien für beide elf Dateien generiere:
1
avr-objcopy -O ihex -R .eeprom main.elf main.hex
2
avr-objcopy -O ihex -R .eeprom main+version.elf main+version.hex

so sind die beiden Dateien ident.

Wie mache ich es, das ich die .version Section auch in meine hex Datei 
hinein bekomme?
Welche Option brauche ich?
Wie kann ich es sonst machen?
Ich möchte ein editieren der hex-datei vermeiden...

Danke,
       Martin

p.s: es ist unabhängig ob das label "version" mit ".global version" 
definiert ist oder nicht... (der einzige Unterschied ist n oder N in der 
ausgabe von avr-nm)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.