Bin to Hex problem

Dec 13, 2006 4 Replies

Witam :)



Próbuje zaprogramować pamięć Flash Atmela (AT45DB161B). Znalazłem w sieci i wykonałem stosowny programor:

formatting link
jednak problem z konwersją pliku z firmware w postaci *.bin do pliku *.hex Wygląda na to, że program życzy sobie aby plik .hex posiadał "16 bajtową strukturę" czyli:



:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 itd.



Programy które znalazłem konwertują na postać 32 bajtową:



:20000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 :20002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC :20004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55



albo tworzą zupełne inne standardy...



Nigdy nie zajmowałem się na poważnie elektroniką/informatką mam więc niewielkie pojęcie w powyższej sprawie, liczę więc na wyrozumiałość :) i pomoc :)



pozdrawiam


NoName napisał(a):

Takie pliki generuje ISP Programmer, ale bez problemu powinien zrozumieć dłuższe czy krótsze linie (nie pamiętam teraz limitu, chyba max. 255 znaków w linii).

BTW: Przy konwersji na hex plików binarnych > 64KB zastosuj właściwy konwerter, dodający rekordy rozszerzonego adresowania. Stary dobry bin2hex.exe nie zdaje egzaminu, bardzo dobrze natomiast działa objcopy (wszystko jedno czy z kompilatora avr czyli avr-objcopy, czy z kompilatora arm czyli arm-elf-objcopy itp).

To ja się podepnę do wątku. Generuję sobie plik *hex, i uzupełniam go wartościami 0xFF do wielkości całego flasha za pomocą komend: --gap-fill

0xFF --pad-to 0x3800, jednak w pliku wynikowym powstają mi oto takie nieciągłości:

... :1017D000E199FECFBFBBAEBB0DBA11960FB6F89420 :1017E000E29AE19A0FBE0895F3DF012CF1DF112494 :0217F00008955A :0417F200010100876A :1017F600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 :10180600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 ...

Czy jest na to jakiś sposób? Chciałbym mieć wszystkie linie o takiej samej długości.

TIA, Antek

antek napisał(a):

Odpowiem sobie sam :) Wygląda na to, że każda sekcja zaczyna się od nowej linii. Zastosowałem następującą sztuczkę: najpierw tworze .bin a następnie konwertuję na .hex - wszelkie nieciąglości znikają. Może jednak ktoś zna bardziej elegancką metodę. Interesuje mnie też, czy da się w jakiś sposób ustawić długość linii tego hex-a np. 0x20 zamiast 0x10 itp.

antek napisał(a):

Bo? Nie podobają Ci się nierówne linie gdy je sobie wydrukujesz i powiesisz na ścianie? Przecież to nie ma żadnego znaczenia. Ważne, aby taki format pliku zrozumiał program czytający plik hex.

BTW: Zawsze możesz skonwertować na .bin i spowrotem na .hex.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required