logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jaka jest różnica między plikiem .bin a .hex który..

sygi 23 Kwi 2005 00:12 4091 13
REKLAMA
  • #1 1429187
    sygi
    Poziom 12  
    Posty: 82
    Pomógł: 1
    Ocena: 2
    Jaka jest różnica między plikiem .bin a .hex który ładujemy do pamięci mikrokontrolera.
  • REKLAMA
  • #2 1429223
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    Oba mozna zaladowac. Zalezy to od pragramatora i programu nim sterujacego. Przewaznie obslugiwane sa oba formaty.
    .bin jest "obrazem" pamieci 1:1
    .hex zawiera dodatkowe informacje jak np. bajt sumy kontrolnej CRC zeby ustrzec sie bledow.
    Pozdro
    Dexter
  • REKLAMA
  • #3 1429253
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Plik .hex jest plikiem tekstowym, który nie nadaje sie do bezpośredniego załadowania i zawsze ostatecznie jest tłumaczony (nawet "w locie") na .bin, najczęściej przez program sterujący programowaniem pamięci. Plik binarny jest już ostatecznym odwzorowaniem zawartości pamięci, a plik hex jest tekstowym odwzorowaniem tej zawartości w liczbach o podstawie 16 (heksadecymalnych), łącznie z adresami w pamięci i sumami kontrolnymi ~modulo 0xFF każdej linii. Pliki hex występują w wielu odmianach.
    Polecam link :
    http://semmix.pl/mipc/specyf/filehex/inhexop.htm
    http://www.google.pl/ też polecam... ;)
    Pozdrawiam, LightI
  • #4 1429511
    Jaca
    Poziom 32  
    Posty: 1332
    Pomógł: 239
    Ocena: 217
    Heksagonalnych ? A cóż to za system liczbowy ? Powinno być heksadecymalny.
  • #5 1429997
    kaseihome
    Poziom 14  
    Posty: 74
    Pomógł: 4
    Ocena: 9
    hexagon jak mi się zdaje to sześciokąt, a pentagon to budynek rządowy w USA. :)
  • #6 1432707
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    kaseihome napisał:
    hexagon jak mi się zdaje to sześciokąt, a pentagon to budynek rządowy w USA. :)
    No i co to ma do tematu ? Proponuję wykorzystać własny talent na forum matematyka-geometria, lub polityka-widziałem w TV. Rozumiem rzeczową uwagę, ze strony kolegi Jaca na temat mojej pomyłki, to się przyda w utrwaleniu różnicy pomiędzy pojęciami, ale to forum to chyba nie gra w skojarzenia ? Ma coś kolega do dodania na temat w/w formatów plików ?
    Light'I
  • #7 1434263
    kaseihome
    Poziom 14  
    Posty: 74
    Pomógł: 4
    Ocena: 9
    Cytat:
    No i co to ma do tematu ?

    Troszkę ma. Ale te nerwy u kolegi zupełnie niepotrzebne. Uwaga z mojej strony co prawda nieco uszczypliwa lecz skłaniająca do odpowiedzi. Za ten fakt przepraszam, lecz jednocześnie uważam, że należy starannie dobierać słowa w szczegołności odpowiadając osobom nie znającym tematu. Dla osoby już nieco zaznajomionej nie trudno jest wydedukować, że HEX to skrót od hexadecimal, a BIN to binary czyli format bezpośrednio akceptowany przez urządzenia cyfrowe (tu: np. µC).
    Dexter77 napisał:
    Cytat:
    Oba mozna zaladowac.

    Ano pewnie, że można. Tylko po załadowaniu "na siłę" HEX'a do µC nic z tego niego wyjdzie. Takie właśnie nieścisłości powtarzane później prowadzą do dużych niejasności.

    Pozdrowienia.Arek.
  • #8 1434378
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    W zasadzie nigdy nie laduje sie programu "bezposrednio" Zawsze do tego celu uzywa sie programu programujacego. Ten potrafi sobie sam po rozszerzeniu rozpoznac co ma z danym plikiem zrobic. .hex zdekoduje do postaci strawnej dla uC a .bin wrzuci "jak leci" Wiec nie widze tu zadnych niescislosci.
    Pozdro
    Dexter
  • REKLAMA
  • #9 1434379
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    kaseihome napisał:
    Cytat:
    No i co to ma do tematu ?

    Troszkę ma. Ale te nerwy u kolegi zupełnie niepotrzebne. Uwaga z mojej strony, co prawda nieco uszczypliwa, lecz skłaniająca do odpowiedzi. Za ten fakt przepraszam, lecz jednocześnie uważam, że należy starannie dobierać słowa, w szczegności odpowiadając osobom nie znającym tematu.
    Jak zauważam, nie tylko mi się zdarza coś pomylić... Gdzieś nawet w czeluściach elektrody organizują się ludzie gotowi do wytykania błędów ortograficznych :
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=1434042#1434042 ;)
    A do odpowiedzi wystarczająca była uwaga ze strony kolegi Jaca. Oczywiście nie biorę pod uwagę dłogotrwałej (3godz. i 44min. - 23 Kwi 2005 13:15) możliwości zastanawiania się nad treścią postu od czasu publikacji poprzedniego, wystarczającego do zareagowania przeze mnie (Jaca - 23 Kwi 2005 09:31). Przeprosiny przyjęte. Bardzo proszę na przyszłość nieco delikatniej "dobierać słowa", przesuwając raczej środek ciężkości na to jak być powinno, a nie na to że jest nie tak i haha... ;)
    Pozdrawiam, Daniel
  • #10 1457482
    sygi
    Poziom 12  
    Posty: 82
    Pomógł: 1
    Ocena: 2
    A wie może ktoś jak taki plik hex zamienić na bin przy pomocy programu napisanego w C. Jaki jest algorytm postępowania. Wykonałem własny programator pod LPT, program do niego też napisałem tylko z nastawieniem na obsługę plików .bin. Swoje programy pod mikroprocesor kompiluje programem SDCC a on "wypluwa" hexy i tu jest problem. :)
  • #11 1457595
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    Sa dostepne konwertery. Najblizsze ktore znam znajduja sie na serwerze EP. Prawdopodobnie na elektrodzie tez sa. Szukaj programu "hex2bin"
    Pozdro
    Dexter
  • REKLAMA
  • #12 1460151
    frohme
    Poziom 21  
    Posty: 421
    Pomógł: 25
    Ocena: 15
    Kiedyś sie w to bawiłem i znałem nawet dobrze odmiany rekordów w pliku .hex. W skrócie wygląda to tak: W rekordzie z danymi podawany jest adres(4 bajty), ilość bajtów danych w rekordzie(najczęściej 16), typ rekordu (00hex to dane), dane właściwe i na końcu suma kontrolna rekordu liczona chyba jako suma wszystkich poprzednich bajtów w rekordzie w kodzie U2. Nie jestem pewien wszystkiego, ale wystarczy porównać to z jakimś wygenerowanym plikiem hex i sprawdzić.
    Istnieją też pewne odmiany tego systemu zwanego zdaje się INTELHEX, ale ten jest bardzo powszechny.
  • #14 1982782
    sygi
    Poziom 12  
    Posty: 82
    Pomógł: 1
    Ocena: 2
    Dexter77 napisał:
    Sa dostepne konwertery. Najblizsze ktore znam znajduja sie na serwerze EP. Prawdopodobnie na elektrodzie tez sa. Szukaj programu "hex2bin"
    Pozdro
    Dexter


    Dzięki. Program "hex2bin" znalazłem gdzieś indziej. Znalazłem także kod
    zródłowy takiego programu http://www.koders.com/c/fid70A9349D5560C099369F470F30CC093E0BFA5166.aspx

Podsumowanie tematu

✨ Pliki .bin i .hex służą do programowania pamięci mikrokontrolerów, jednak różnią się formatem i zastosowaniem. Plik .bin to bezpośredni, binarny obraz pamięci, który można załadować "jak leci" do mikrokontrolera, natomiast plik .hex jest plikiem tekstowym w formacie heksadecymalnym zawierającym dodatkowe informacje, takie jak adresy pamięci i sumy kontrolne (np. CRC lub modulo 0xFF), co pomaga w wykrywaniu błędów. Pliki .hex są zwykle tłumaczone przez program sterujący programowaniem na format binarny przed załadowaniem do mikrokontrolera. Istnieje wiele odmian plików .hex, z których popularny jest format Intel HEX. Do konwersji plików .hex na .bin można użyć dostępnych narzędzi, np. programu "hex2bin". Algorytm konwersji polega na odczytaniu rekordów pliku .hex, które zawierają długość danych, adres, typ rekordu, dane i sumę kontrolną, a następnie przetworzeniu ich na ciąg bajtów binarnych odpowiadających zawartości pamięci mikrokontrolera. Kompilator SDCC generuje pliki .hex, co wymaga konwersji do .bin przy użyciu własnego programatora.
Wygenerowane przez model językowy.
REKLAMA