elf32-avr object file format (gcc)

Gast #3076195
Lesenswert?

es wird in verschiedensten threads und auch beispielsweise hier:
http://www.rn-wissen.de/index.php/Avr-gcc/Interna
immer von einem "speziellen elf32-avr-format" gesprochen.

Wenn ich nachfrage wird dies bestätigt, in verbindung mit der 
Information, dass es gerade kein standard-elf32 wäre. Ich habe hier von 
keiner Seite bisher eine wirklich eindeutige Antwort erhalten, daher die 
Frage.
Moderator Persönliche Seite #3076216
Lesenswert?

p.s.: FreeBSD hat zwar noch ein von Linux unterschiedliches OS-Feld,
aber elfdump geht auch hier ganz normal.  Hier der Anfang:
1
elf header:
2

3
        e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_SYSV
4
        e_type: ET_REL
5
        e_machine: (unknown machine) -- type 0x53
6
        e_version: EV_CURRENT
7
        e_entry: 0
8
        e_phoff: 0
9
        e_shoff: 7776
10
        e_flags: 179
11
        e_ehsize: 52
12
        e_phentsize: 0
13
        e_phnum: 0
14
        e_shentsize: 40
15
        e_shnum: 11
16
        e_shstrndx: 8
17

18
program header:
19

20
section header:
21

22
entry: 0
23
        sh_name: 
24
        sh_type: SHT_NULL
25
        sh_flags: 
26
        sh_addr: 0
27
        sh_offset: 0
28
        sh_size: 0
29
        sh_link: 0
30
        sh_info: 0
31
        sh_addralign: 0
32
        sh_entsize: 0
33

34
entry: 1
35
        sh_name: .text
36
        sh_type: SHT_PROGBITS
37
        sh_flags: SHF_ALLOC|SHF_EXECINSTR
38
        sh_addr: 0
39
        sh_offset: 52
40
        sh_size: 330
41
        sh_link: 0
42
        sh_info: 0
43
        sh_addralign: 1
44
        sh_entsize: 0
45

46
...

Das Feld e_machine ist das wesentliche Unterscheidungsmerkmal für den
AVR.  Ein FreeBSD native ELF32 sieht im Vergleich so aus:
1
elf header:
2

3
        e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD
4
        e_type: ET_REL
5
        e_machine: EM_386
6
        e_version: EV_CURRENT
7
        e_entry: 0
8
        e_phoff: 0
9
        e_shoff: 144
10
        e_flags: 0
11
        e_ehsize: 52
12
        e_phentsize: 0
13
        e_phnum: 0
14
        e_shentsize: 40
15
        e_shnum: 8
16
        e_shstrndx: 5

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren