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.

Zaktualizowana instrukcją instalacji: do listy stron z oprogramowaniem należy dodać jeszcze http://avr-eclipse.sourceforge.net/updatesite/ i zainstalować AVR Eclipse Plugin.

Po zainstalowaniu Eclipse na Ubuntu 11.04 nie mogłem się doszukać Subclipse. Okazało się, że do poprawnej współpracy z Subversion (repozytoria SVN) teraz trzeba zainstalować Subversive SVN Team Provider, Subversive SVN Connectors oraz SVNKit (np: 1.3.0).

Przymierzam się do jakiegoś prostego parsera (z wykresami - GUI) plików DAT i BUF produkowanymi przez oscyloskop. Jeszcze nie wrzuciłem do żadnego repozytorium. Na razie ustaliłem, jak wyglądają funkcje zapisujące te pliki. Są zdefiniowane w pliku Files.c (tylko czemu dla formatu DAT zapisuje tylko 300 próbek a nie wszystkie 512 to nie wiem).

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