-
1. Data: 2012-02-12 18:02:38
Temat: avr-gcc generowanie pliku bin
Od: Michał Lankosz <m...@t...pl>
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ł
-
2. Data: 2012-02-12 19:03:03
Temat: Re: avr-gcc generowanie pliku bin
Od: Sebastian Biały <h...@p...onet.pl>
On 2012-02-12 19:02, Michał Lankosz wrote:
> Binarka zaraz za programem zawiera zera, tylko na samym końcu jakieś
> różne od zera (podgląd HEX):
avr-objdump -h -S prg.elf >prg.lst
Dowiesz się co to jest.
-
3. Data: 2012-02-12 20:36:30
Temat: Re: avr-gcc generowanie pliku bin
Od: Michał Lankosz <m...@t...pl>
W dniu 2012-02-12 20:03, Sebastian Biały pisze:
> On 2012-02-12 19:02, Michał Lankosz wrote:
>> Binarka zaraz za programem zawiera zera, tylko na samym końcu jakieś
>> różne od zera (podgląd HEX):
>
> avr-objdump -h -S prg.elf >prg.lst
>
> Dowiesz się co to jest.
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ł