RTV forum PL | NewsGroups PL

Jak skonwertować plik .bin na .hex z 16-bajtową strukturą dla AT45DB161B?

Bin to Hex problem

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak skonwertować plik .bin na .hex z 16-bajtową strukturą dla AT45DB161B?

NoName
Guest

Wed Dec 13, 2006 8:25 pm   



Witam :)

Próbuje zaprogramować pamięć Flash Atmela (AT45DB161B). Znalazłem
w sieci i wykonałem stosowny programor:
http://www.amwaw.edu.pl/%7Eadybkows/elka/ispprog.html
Mam 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ść Smile i pomoc :)

pozdrawiam

Adam Dybkowski
Guest

Thu Dec 14, 2006 12:38 am   



NoName napisał(a):

Quote:
Próbuje zaprogramować pamięć Flash Atmela (AT45DB161B). Znalazłem
w sieci i wykonałem stosowny programor:
http://www.amwaw.edu.pl/%7Eadybkows/elka/ispprog.html
Mam 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

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).

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

antek
Guest

Thu Dec 14, 2006 6:30 pm   



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
Guest

Thu Dec 14, 2006 8:16 pm   



antek napisał(a):
Quote:
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.

Odpowiem sobie sam Smile
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.

Adam Dybkowski
Guest

Mon Dec 18, 2006 10:38 pm   



antek napisał(a):

Quote:
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.

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.

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

elektroda NewsGroups Forum Index - Elektronika Polska - Jak skonwertować plik .bin na .hex z 16-bajtową strukturą dla AT45DB161B?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map