Grüß euch Im Anhang befinden sich 2x ELF Datein für einen Cortex-M4. Die beiden Datein wurden mit unterschiedlichen Compilern erzeugt, einmal mit GCC10, einmal mit Clang10. gcc.elf sollte ein 344B großes Binary erzeugen clang.elf sollte ein 868B großes Binary erzeugen Letzteres funktioniert allerdings leider nicht. Versuche ich mit objcopy (egal ob von binutils oder llvm-objcopy) ein Binary zu erstellen, so ist das Resultat 256MB(!) groß. Hat irgendwer eine Idee woran das liegen könnte? tia
Gast
#6298256
Ja an den Sections, wenn der Flash-Speicher bei einer höheren Adresse anfängt, wird der Bereich zwischen 0 und der Adresse mit 0en aufgefüllt. Bei dir wird wohl der Flash-Speicher bei 256MByte anfangen.
Ah verstehe. In den beiden ELF Datein findet sich auch ein Eintrag namens "Section to Segment mapping" und während im GCC lediglich
1 | |
2 | |
3 | |
4 | |
zu finden ist, listet Clang
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Die Frage ist nur... wie bekomm ich das weg. :)
Achtung : ein ELF File enthält auch einen Header und kann zusätzlich durch Debug-Informationen "aufgeblasen" werden. Erklärt aber nicht die 256MB Versuche einmal den ELF File in ein Binärfile umzuwandeln. arm-elf-objcopy -O binary [elf-input-file] [binary-output-file] https://stackoverflow.com/questions/2427011/what-is-the-difference-between-elf-files-and-bin-files
Gerald K. schrieb: > Achtung : ein ELF File enthält auch einen Header und kann zusätzlich > durch Debug-Informationen "aufgeblasen" werden. Erklärt aber nicht die > *256MB* > > Versuche einmal den ELF File in ein Binärfile umzuwandeln. > > arm-elf-objcopy -O binary [elf-input-file] [binary-output-file] > > https://stackoverflow.com/questions/2427011/what-is-the-difference-between-elf-files-and-bin-files Bitte den letzten Absatz nochmal lesen. Es geht um erzeugte Binaries. ;) /edit Interessant, mit (NOLOAD) bei .data, .bss, .bss2 und ._user_heap_stack wird das Binary noch größer...?
Mit etwas mehr Infos nun auch auf stackoverflow, da doch sehr spezielles Thema: https://stackoverflow.com/questions/62320128/differences-between-gcc-clang-when-linking
War ein lld Bug, behoben ab 10.0.1 https://bugs.llvm.org/show_bug.cgi?id=46299 https://bugs.llvm.org/show_bug.cgi?id=46225
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.