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ł