Home / Community / Blog

Chciałem porównać czy kod bootloadera, który miałem jako plik HEX na dysku jest zgodny z tym który był używany. Nie mogłem porównać w post kodu, bo bootloader miałem bez źródeł (dokładnie to bez toolchain'a), a poza tym on był już wgrany na ok 100 urządzeniach i zmiana była kłopotliwa (nie wchodziła w grę). Niestety program wczytany z procesora (ATmega163)

avrdude -pm163 -cavrisp2 -Pusb -Uflash:r:/tmp/wsad.hex:i

był w formacie (zwanym Intel 8, I8HEX, Intel lub po prostu HEX w przeciwieństwie do np.: Intel 16, I16HEX lub INHX16 ale zawierający po 32 bajty na wiersz, a kod który miałem jako wzorzec miał 16 bajtów na wiersz.

Niby prosta sprawa można sobie napisać prosty programik który to zrobi, tylko po co? Taki program już istnieje (SRecord dedykowany do operowania na plikach wsadowych EPROM), a ponadto wystarczy uzyć polecenia '''objcopy''':

objcopy -I ihex -O binary /tmp/wsad.hex /tmp/wsad.bin
objcopy -I binary -O ihex /tmp/wsad.bin /tmp/wsad-new.hex

, które daje wynik w żądanej postaci po 16 bajtów na wiersz.

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31