avr-gcc generowanie pliku bin

Zainstalowane mam AVR Studio 5, wraz z gcc. Chciałem automatycznie generować plik bin. Poszperałem trochę i znalazłem, że należy użyć polecenia:

avr-objcopy.exe --output-target binary ...

Wpisałem w okienko "Post build event command line":

$(QUOTE)$(AVR_APP_PATH)avr-objcopy.exe$(QUOTE) --output-target binary $(OutputFile) $(Name).bin

i otrzymałem plik o długości 8 454 152 B, a powinien mieć 11 514 B. Dlaczego? Program jest dla ATmega128. Teraz używam jakiegoś znaleziska hex2bin.exe, ale zastanawia mnie, jak to zrobić za pomocą avr-objcopy (lub inaczej z wykorzystaniem narzędzi wbudowanych w kompilator). Nie chce mi się jednocześnie bawić we własny makefile.

Plik HEX: :100000000C94C4020C94E3020C94E3020C94E302FB :100010000C94E3020C94E3020C94E3020C94E302CC :100020000C94E3020C94E3020C94E3020C94E302BC :100030000C947A060C94E3020C94E3020C94E30211 :100040000C94E3020C94E3020C94C6030C94410359 :100050000C94E3020C94E3020C94E3020C94E3028C ....... :102C70004A3318F0495D31FD4052419302D0A9F723 :102C8000EACFB4E0A6959795879577956795BA951D :102C9000C9F700976105710508959B01AC010A2EE3 :102CA00006945795479537952795BA95C9F7620FBA :0E2CB000731F841F951FA01D0895F894FFCF79 :102CBE000D0A206E65772062617564726174653AE3 :102CCE00202564000D0025303278003D2530327805 :102CDE0020000000000300000000E50200000000DC :0C2CEE000301FF01010101081929090080 :00000001FF

Nie wiem co to za 'zakłócenie' w linijce o adresie 0x2CB0, przecież obszar jest ciągły...

Binarka zaraz za programem zawiera zera, tylko na samym końcu jakieś różne od zera (podgląd HEX):

0080FFF0: 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00810000: 01 FF 01 01 01 01 00 00 |

Michał

Reply to
Michał Lankosz
Loading thread data ...

avr-objdump -h -S prg.elf >prg.lst

Dowiesz się co to jest.

Reply to
Sebastian Biały

W dniu 2012-02-12 20:03, Sebastian Biały pisze:

Dzięki Sebastian za podpowiedź! Moje środowisko już generuje ten plik pod nazwą *.lss. Domyślałem się, że coś nie tak z sekcjami... "Zawadzała" sekcja .eeprom. Poradziłem sobie linijką: $(QUOTE)$(AVR_APP_PATH)avr-objcopy.exe$(QUOTE) -j .text -j .data -O binary $(OutputFile) $(Name).bin

Przy pierwszej próbie nie dałem -j .data, a to jest wymagane. Widać muszę się dokształcić bo nie wiem co to jest VMA i LMA. Może ktoś zna miejsce, gdzie jest to wszystko PROSTO opisane.

Michał

Mój plik .lss aes_tx.elf: file format elf32-avr

Sections: Idx Name Size VMA LMA File off Algn 0 .data 00000066 00800100 00002530 000025e4 2**0 CONTENTS, ALLOC, LOAD, DATA 1 .text 00002530 00000000 00000000 000000b4 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .bss 00000158 00800166 00800166 0000264a 2**0 ALLOC 3 .eeprom 00000005 00810000 00810000 0000264a 2**0 CONTENTS, ALLOC, LOAD, DATA 4 .stab 00001008 00000000 00000000 00002650 2**2 CONTENTS, READONLY, DEBUGGING 5 .stabstr 00000346 00000000 00000000 00003658 2**0 CONTENTS, READONLY, DEBUGGING 6 .debug_aranges 000000a0 00000000 00000000 0000399e 2**0 CONTENTS, READONLY, DEBUGGING 7 .debug_pubnames 000000ae 00000000 00000000 00003a3e 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_info 00000b3d 00000000 00000000 00003aec 2**0 CONTENTS, READONLY, DEBUGGING 9 .debug_abbrev 00000636 00000000 00000000 00004629 2**0 CONTENTS, READONLY, DEBUGGING 10 .debug_line 00000cdb 00000000 00000000 00004c5f 2**0 CONTENTS, READONLY, DEBUGGING 11 .debug_frame 000000a0 00000000 00000000 0000593c 2**2 CONTENTS, READONLY, DEBUGGING 12 .debug_str 000002e1 00000000 00000000 000059dc 2**0 CONTENTS, READONLY, DEBUGGING 13 .debug_loc 000007a8 00000000 00000000 00005cbd 2**0 CONTENTS, READONLY, DEBUGGING 14 .debug_pubtypes 0000015e 00000000 00000000 00006465 2**0 CONTENTS, READONLY, DEBUGGING 15 .debug_ranges 00000068 00000000 00000000 000065c3 2**0 CONTENTS, READONLY, DEBUGGING

Michał

Reply to
Michał Lankosz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.